Re: TNN 1.78a Linux und dyndns.org


[ Follow Ups ] [ Post Followup ] [ www.nordlink.org Message Board ] [ FAQ ]

Posted by Oliver Kern on October 03, 2002 at 19:26:10:

In Reply to: TNN 1.78a Linux und dyndns.org posted by Daniel Parthey on September 16, 2002 at 02:27:17:

: Ich nutze die aktuelle Version TheNetNode 1.78a unter Linux.

: Meine AX25IP Linkpartner ohne feste IP-Adresse haben Dynamische
: IP-Adressen bei dyndns.org. Diese muss hin und wieder aufgeloest werden.

: TheNetNode aktualisiert jedoch die Routing-Tabelle nur beim Programmstart.
: Aendert jetzt ein Node seine IP-Adresse aufgrund neuer Interneteinwahl,
: steht in meiner TNN-AX25IP-Routing-Tabelle immer noch die alte IP-Adresse
: (von seiner vorherigen Online-Sitzung) und die Aenderung der IP-Adresse,
: die sich hinter noderufzeichen.dyndns.org verbirgt, wird nicht erkannt.

: Deshalb bricht der Link zu dieser Station zusammen, weil alle gesendeten
: UDP Pakete an die falsche (alte) IP-Adresse - und damit verloren - gehen.

: Ich habe einen Quick 'n' Dirty Hack programmiert, der fuer mich
: funktioniert, aber ich wuerde mich freuen, wenn ein Updater fuer mich
: funktioniert, aber ich wuerde mich freuen, wenn ein Updater fuer
: dynamisches DNS in einer der naechsten Versionen von TheNetNode integriert
: waere.

: Moeglich waere ja eine regelmaessige Ueberpruefung der im Routing
: eingetragenen IP-Adressen anhand der DNS-Hostnamen und einen entsprechende
: Anpassung der AX25IP-Routingtabelle.

: Mit freundlichen Gruessen,
: Daniel Parthey

Hallo Daniel,

füge folgende Zeilen in die AX25IP.C ein:

int ax25ip_config_read(void)
{
FILE *cf;
char buf[256], cbuf[256];
int errflag = 0;
int e = 0;
int lineno = 0;
char cfgfile[256];

route_del();
route_tbl_top = 0;

strcpy(cfgfile, confpath);
strcat(cfgfile, CONFIG_FILE);


if ((cf = fopen(cfgfile, "r")) == NULL)
{
#ifdef INIPATH
strcpy(cfgfile, INIPATH);
strcat(cfgfile, CONFIG_FILE);

if ((cf = fopen(cfgfile, "r")) == NULL)
{
#endif
xprintf("Config file %s not found or could not be opened\n",
CONFIG_FILE);
return(FALSE);
#ifdef INIPATH
}
#endif
}
while (fgets(buf, 255, cf) != NULL) {
(void)strcpy(cbuf, buf);
lineno++;
if ((e = ax25ip_parse_line(buf)) 0) my_udp = htons(i);
}
}
else return(-9);
return(0);

}
else if (strcmp(p, "socketoption") == 0)
{
q = strtok(NULL, " \t\n\r");
if (q == NULL)
return(-1);

if (strcmp(q, "SO_KEEPALIVE") == 0)
{
sockopt_keepalive = TRUE;
}
else if (strcmp(q, "IPTOS_THROUGHPUT") == 0)
{
sockopt_throughput = TRUE;
}
else return(-9);

return(0);

} else if (strcmp(p, "loglevel") == 0) {
q = strtok(NULL, " \t\n\r");
if (q == NULL) return(-1);
loglevel = atoi(q);
return(0);

} else if (strcmp(p, "route") == 0) {
uport = 0;
dfalt = 0;

q = strtok(NULL, " \t\n\r");
if (q == NULL) return(-1);
if (strcmp(q, "default") == 0) dfalt = 1;
else {
if (a_to_call(q, tcall) != 0) return(-2);
}

q = strtok(NULL, " \t\n\r");
if (q == NULL) return(-1);
he = gethostbyname(q);
if (he != NULL) {
memcpy(tip, he->h_addr_list[0], 4);
} else {
j = inet_addr(q);
if (j == -1) return(-5);
memcpy(tip, (char *)&j, 4);
}
q = strtok(NULL, " \t\n\r");
if (q != NULL) {
if (strcmp(q, "udp") == 0) {
uport = DEFAULT_UDP_PORT;
q = strtok(NULL, " \t\n\r");
if (q != NULL) {
i = atoi(q);
if (i > 0) uport = i;
}
}
}
route_add(tip, tcall, uport, dfalt); //route wird hier neu eingetragen
return(0);
}
return(-999);
}

static void route_del(void)
{
route_tbl_top--;
}


füge folgende Zeilen in die L7TIME.C ein, unter die funktion:
void timesrv(void)
{
static LONG Time100 = 0L;

dann folgendes einfügen UNTER
Time--10;:

if (Time100 <= 0L)
{
Time100 = 60; //aller 60 sec. wird die ax25ip_config_read();//funktion ax25ip_config_read
} //eingelesen, routen gelöscht
Time100--; //Routing-Tabelle auf 0 ge-
//setzt, Routen werden wieder
// neu eingelesen bzw. in die
// interne Routing-Tabelle
// abgespeichert

Viel Spass beim Basteln, wenn noch fragen
eMail daa531@gmx.de.

Viele Grüsse aus Glaubitz/Riesa, 73 de daa531 Olli.




Follow Ups:



Post a Followup

Name:
E-Mail:

Subject: Re: Re: TNN 1.78a Linux und dyndns.org

Comments:


[ Follow Ups ] [ Post Followup ] [ www.nordlink.org Message Board ] [ FAQ ]