Implemented nodelist fields8 search for FQDN
This commit is contained in:
122
lib/clcomm.c
122
lib/clcomm.c
@@ -261,71 +261,71 @@ void Syslog(int level, const char *format, ...)
|
||||
*/
|
||||
void Syslogp(int level, char *outstr)
|
||||
{
|
||||
long mask = 0;
|
||||
int i, upper;
|
||||
long mask = 0;
|
||||
int i, upper;
|
||||
|
||||
upper = isupper(level);
|
||||
switch(tolower(level)) {
|
||||
case ' ' : mask = DLOG_ALLWAYS; break;
|
||||
case '?' : mask = DLOG_ERROR; break;
|
||||
case '!' : mask = DLOG_ATTENT; break;
|
||||
case '+' : mask = DLOG_NORMAL; break;
|
||||
case '-' : mask = DLOG_VERBOSE; break;
|
||||
case 'a' : mask = DLOG_TCP; break;
|
||||
case 'b' : mask = DLOG_BBS; break;
|
||||
case 'c' : mask = DLOG_CHAT; break;
|
||||
case 'd' : mask = DLOG_DEVIO; break;
|
||||
case 'e' : mask = DLOG_EXEC; break;
|
||||
case 'f' : mask = DLOG_FILEFWD; break;
|
||||
case 'h' : mask = DLOG_HYDRA; break;
|
||||
case 'i' : mask = DLOG_IEMSI; break;
|
||||
case 'l' : mask = DLOG_LOCK; break;
|
||||
case 'm' : mask = DLOG_MAIL; break;
|
||||
case 'n' : mask = DLOG_NEWS; break;
|
||||
case 'o' : mask = DLOG_OUTSCAN; break;
|
||||
case 'p' : mask = DLOG_PACK; break;
|
||||
case 'r' : mask = DLOG_ROUTE; break;
|
||||
case 's' : mask = DLOG_SESSION; break;
|
||||
case 't' : mask = DLOG_TTY; break;
|
||||
case 'x' : mask = DLOG_XMODEM; break;
|
||||
case 'z' : mask = DLOG_ZMODEM; break;
|
||||
upper = isupper(level);
|
||||
switch(tolower(level)) {
|
||||
case ' ' : mask = DLOG_ALLWAYS; break;
|
||||
case '?' : mask = DLOG_ERROR; break;
|
||||
case '!' : mask = DLOG_ATTENT; break;
|
||||
case '+' : mask = DLOG_NORMAL; break;
|
||||
case '-' : mask = DLOG_VERBOSE; break;
|
||||
case 'a' : mask = DLOG_TCP; break;
|
||||
case 'b' : mask = DLOG_BBS; break;
|
||||
case 'c' : mask = DLOG_CHAT; break;
|
||||
case 'd' : mask = DLOG_DEVIO; break;
|
||||
case 'e' : mask = DLOG_EXEC; break;
|
||||
case 'f' : mask = DLOG_FILEFWD; break;
|
||||
case 'h' : mask = DLOG_HYDRA; break;
|
||||
case 'i' : mask = DLOG_IEMSI; break;
|
||||
case 'l' : mask = DLOG_LOCK; break;
|
||||
case 'm' : mask = DLOG_MAIL; break;
|
||||
case 'n' : mask = DLOG_NODELIST; break;
|
||||
case 'o' : mask = DLOG_OUTSCAN; break;
|
||||
case 'p' : mask = DLOG_PACK; break;
|
||||
case 'r' : mask = DLOG_ROUTE; break;
|
||||
case 's' : mask = DLOG_SESSION; break;
|
||||
case 't' : mask = DLOG_TTY; break;
|
||||
case 'x' : mask = DLOG_XMODEM; break;
|
||||
case 'z' : mask = DLOG_ZMODEM; break;
|
||||
}
|
||||
|
||||
if (((loggrade | DLOG_ALLWAYS | DLOG_ERROR) & mask) == 0)
|
||||
return;
|
||||
|
||||
/*
|
||||
* Don't log uppercase debug levels when most_debug is FALSE
|
||||
*/
|
||||
if (upper && !most_debug)
|
||||
return;
|
||||
|
||||
for (i = 0; i < strlen(outstr); i++)
|
||||
if (outstr[i] == '\r' || outstr[i] == '\n')
|
||||
outstr[i] = ' ';
|
||||
if (strlen(outstr) > (SS_BUFSIZE - 64))
|
||||
outstr[SS_BUFSIZE - 64] = '\0';
|
||||
|
||||
tcrc = StringCRC32(outstr);
|
||||
if (tcrc == lcrc) {
|
||||
lcnt++;
|
||||
return;
|
||||
} else {
|
||||
lcrc = tcrc;
|
||||
if (lcnt) {
|
||||
lcnt++;
|
||||
SockS("ALOG:5,%s,%s,%d,%c,Last message repeated %d times;", logfile, progname, mypid, level, lcnt);
|
||||
}
|
||||
lcnt = 0;
|
||||
}
|
||||
|
||||
if (((loggrade | DLOG_ALLWAYS | DLOG_ERROR) & mask) == 0)
|
||||
return;
|
||||
if (show_log)
|
||||
printf("%c %s\n", level, outstr);
|
||||
|
||||
/*
|
||||
* Don't log uppercase debug levels when most_debug is FALSE
|
||||
*/
|
||||
if (upper && !most_debug)
|
||||
return;
|
||||
|
||||
for (i = 0; i < strlen(outstr); i++)
|
||||
if (outstr[i] == '\r' || outstr[i] == '\n')
|
||||
outstr[i] = ' ';
|
||||
if (strlen(outstr) > (SS_BUFSIZE - 64))
|
||||
outstr[SS_BUFSIZE - 64] = '\0';
|
||||
|
||||
tcrc = StringCRC32(outstr);
|
||||
if (tcrc == lcrc) {
|
||||
lcnt++;
|
||||
return;
|
||||
} else {
|
||||
lcrc = tcrc;
|
||||
if (lcnt) {
|
||||
lcnt++;
|
||||
SockS("ALOG:5,%s,%s,%d,%c,Last message repeated %d times;", logfile, progname, mypid, level, lcnt);
|
||||
}
|
||||
lcnt = 0;
|
||||
}
|
||||
|
||||
if (show_log)
|
||||
printf("%c %s\n", level, outstr);
|
||||
|
||||
if (*outstr == '$')
|
||||
SockS("ALOG:5,%s,%s,%d,%c,%s: %s;", logfile, progname, mypid, level, outstr+1, strerror(errno));
|
||||
else
|
||||
SockS("ALOG:5,%s,%s,%d,%c,%s;", logfile, progname, mypid, level, outstr);
|
||||
if (*outstr == '$')
|
||||
SockS("ALOG:5,%s,%s,%d,%c,%s: %s;", logfile, progname, mypid, level, outstr+1, strerror(errno));
|
||||
else
|
||||
SockS("ALOG:5,%s,%s,%d,%c,%s;", logfile, progname, mypid, level, outstr);
|
||||
}
|
||||
|
||||
|
||||
|
@@ -1,6 +1,8 @@
|
||||
#ifndef _CLCOMM_H
|
||||
#define _CLCOMM_H
|
||||
|
||||
/* $Id$ */
|
||||
|
||||
|
||||
#pragma pack(1)
|
||||
|
||||
@@ -31,7 +33,7 @@
|
||||
#define DLOG_IEMSI 0x00002000
|
||||
#define DLOG_LOCK 0x00010000
|
||||
#define DLOG_MAIL 0x00020000
|
||||
#define DLOG_NEWS 0x00040000
|
||||
#define DLOG_NODELIST 0x00040000
|
||||
#define DLOG_OUTSCAN 0x00080000
|
||||
#define DLOG_PACK 0x00100000
|
||||
#define DLOG_ROUTE 0x00400000
|
||||
|
20
lib/common.h
20
lib/common.h
@@ -101,26 +101,6 @@
|
||||
#define MSGTYPE 2
|
||||
|
||||
|
||||
/*
|
||||
#define FLG_PVT 0x0001
|
||||
#define FLG_CRS 0x0002
|
||||
#define FLG_RCV 0x0004
|
||||
#define FLG_SNT 0x0008
|
||||
#define FLG_ATT 0x0010
|
||||
#define FLG_TRN 0x0020
|
||||
#define FLG_ORP 0x0040
|
||||
#define FLG_K_S 0x0080
|
||||
#define FLG_LOC 0x0100
|
||||
#define FLG_HLD 0x0200
|
||||
#define FLG_RSV 0x0400
|
||||
#define FLG_FRQ 0x0800
|
||||
#define FLG_RRQ 0x1000
|
||||
#define FLG_RRC 0x2000
|
||||
#define FLG_ARQ 0x4000
|
||||
#define FLG_FUP 0x8000
|
||||
*/
|
||||
|
||||
|
||||
typedef struct _parsedaddr {
|
||||
char *target;
|
||||
char *remainder;
|
||||
|
159
lib/nodelist.c
159
lib/nodelist.c
@@ -118,7 +118,7 @@ static int getkwd(char **dest)
|
||||
(*tmpm)->name = xstrcpy(v);
|
||||
tmp = strtoul(p, NULL, 0);
|
||||
(*tmpm)->value = tmp;
|
||||
// Syslog('s', "getkwd: %s(%d): \"%s\" \"%s\" \"%08x\"", nlpath, linecnt, MBSE_SS(k), (*tmpm)->name, (*tmpm)->value);
|
||||
// Syslog('n', "getkwd: %s(%d): \"%s\" \"%s\" \"%08x\"", nlpath, linecnt, MBSE_SS(k), (*tmpm)->name, (*tmpm)->value);
|
||||
|
||||
return 0;
|
||||
}
|
||||
@@ -162,7 +162,7 @@ static int getmdm(char **dest)
|
||||
tmp2 = strtoul(q, NULL, 0);
|
||||
(*tmpm)->mask = tmp1;
|
||||
(*tmpm)->value = tmp2;
|
||||
// Syslog('s', "getmdm: %s(%d): \"%s\" \"%s\" \"%08x\" \"%08x\"", nlpath, linecnt, MBSE_SS(k),
|
||||
// Syslog('n', "getmdm: %s(%d): \"%s\" \"%s\" \"%08x\" \"%08x\"", nlpath, linecnt, MBSE_SS(k),
|
||||
// (*tmpm)->name, (*tmpm)->mask, (*tmpm)->value);
|
||||
|
||||
return 0;
|
||||
@@ -186,7 +186,7 @@ static int getarr(char **dest)
|
||||
(*tmpm) = (nodelist_array *) xmalloc(sizeof(nodelist_array));
|
||||
(*tmpm)->next = NULL;
|
||||
(*tmpm)->name = xstrcpy(v);
|
||||
// Syslog('s', "getarr: %s(%d): \"%s\" \"%s\"", nlpath, linecnt, MBSE_SS(k), (*tmpm)->name);
|
||||
// Syslog('n', "getarr: %s(%d): \"%s\" \"%s\"", nlpath, linecnt, MBSE_SS(k), (*tmpm)->name);
|
||||
return 0;
|
||||
}
|
||||
|
||||
@@ -217,7 +217,7 @@ static int getdom(char **dest)
|
||||
tmp = strtod(v, NULL);
|
||||
(*tmpm)->zone = tmp;
|
||||
(*tmpm)->name = xstrcpy(p);
|
||||
// Syslog('s', "getdom: %s(%d): \"%s\" \"%d\" \"%s\"", nlpath, linecnt, MBSE_SS(k), (*tmpm)->zone, (*tmpm)->name);
|
||||
// Syslog('n', "getdom: %s(%d): \"%s\" \"%d\" \"%s\"", nlpath, linecnt, MBSE_SS(k), (*tmpm)->zone, (*tmpm)->name);
|
||||
|
||||
return 0;
|
||||
}
|
||||
@@ -260,7 +260,7 @@ static int getsrv(char **dest)
|
||||
(*tmpm)->service = xstrcpy(p);
|
||||
tmp = strtoul(q, NULL, 0);
|
||||
(*tmpm)->port = tmp;
|
||||
// Syslog('s', "getsrv: %s(%d): \"%s\" \"%s\" \"%s\" \"%d\"", nlpath, linecnt, MBSE_SS(k),
|
||||
// Syslog('n', "getsrv: %s(%d): \"%s\" \"%s\" \"%s\" \"%d\"", nlpath, linecnt, MBSE_SS(k),
|
||||
// (*tmpm)->flag, (*tmpm)->service, (*tmpm)->port);
|
||||
return 0;
|
||||
}
|
||||
@@ -357,7 +357,7 @@ void deinitnl(void)
|
||||
if (!nlinitdone)
|
||||
return;
|
||||
|
||||
Syslog('s', "De-init nodelists");
|
||||
Syslog('n', "De-init nodelists");
|
||||
|
||||
tidy_nl_flag(&nl_online);
|
||||
tidy_nl_flag(&nl_request);
|
||||
@@ -370,7 +370,7 @@ void deinitnl(void)
|
||||
tidy_nl_domsuf(&nl_domsuffix);
|
||||
tidy_nl_service(&nl_service);
|
||||
|
||||
Syslog('s', "De-init done");
|
||||
Syslog('n', "De-init done");
|
||||
nlinitdone = FALSE;
|
||||
}
|
||||
|
||||
@@ -537,8 +537,8 @@ int initnl(void)
|
||||
}
|
||||
|
||||
free(nlpath);
|
||||
Syslog('s', "mypots %08x myisdn %08x mytcpip %08x", mypots, myisdn, mytcpip);
|
||||
Syslog('s', "Nodelists initialize complete, rc=%d", rc);
|
||||
Syslog('n', "mypots %08x myisdn %08x mytcpip %08x", mypots, myisdn, mytcpip);
|
||||
Syslog('n', "Nodelists initialize complete, rc=%d", rc);
|
||||
nlinitdone = TRUE;
|
||||
return rc;
|
||||
}
|
||||
@@ -567,7 +567,7 @@ node *getnlent(faddr *addr)
|
||||
static char buf[2048], ebuf[2048], *p, *q, tbuf[256];
|
||||
struct _ixentry xaddr;
|
||||
int i, Found = FALSE, ixflag, stdflag, ndrecord = FALSE;
|
||||
char *mydomain, *path;
|
||||
char *mydomain, *path, *r;
|
||||
struct _nlfil fdx;
|
||||
struct _nlidx ndx;
|
||||
long lowest, highest, current;
|
||||
@@ -577,9 +577,10 @@ node *getnlent(faddr *addr)
|
||||
nodelist_flag **tmpf;
|
||||
nodelist_service **tmps;
|
||||
nodelist_array **tmpa;
|
||||
nodelist_domsuf **tmpd;
|
||||
unsigned long tport = 0;
|
||||
|
||||
Syslog('s', "getnlent: %s", ascfnode(addr,0xff));
|
||||
Syslog('n', "getnlent: %s", ascfnode(addr,0xff));
|
||||
|
||||
mydomain = xstrcpy(CFG.aka[0].domain);
|
||||
if (mydomain == NULL)
|
||||
@@ -705,7 +706,7 @@ node *getnlent(faddr *addr)
|
||||
fclose(fp);
|
||||
goto retdummy;
|
||||
}
|
||||
Syslog('s', "getnlent: %s", buf);
|
||||
Syslog('n', "getnlent: %s", buf);
|
||||
|
||||
/*
|
||||
* Load noderecord if this node has one, if there is one then
|
||||
@@ -722,7 +723,7 @@ node *getnlent(faddr *addr)
|
||||
if ((addr->zone == nd.Aka[i].zone) && (addr->net == nd.Aka[i].net) &&
|
||||
(addr->node == nd.Aka[i].node) && (addr->point == nd.Aka[i].point)) {
|
||||
ndrecord = TRUE;
|
||||
Syslog('s', "getnlent: node record is present");
|
||||
Syslog('n', "getnlent: node record is present");
|
||||
break;
|
||||
}
|
||||
}
|
||||
@@ -770,7 +771,7 @@ node *getnlent(faddr *addr)
|
||||
if ((q=strchr(p,',')))
|
||||
*q++ = '\0';
|
||||
if (ndrecord && strlen(nd.Nl_hostname)) {
|
||||
Syslog('s', "getnlent: system name override with %s", nd.Nl_hostname);
|
||||
Syslog('n', "getnlent: system name override with %s", nd.Nl_hostname);
|
||||
nodebuf.name = nd.Nl_hostname;
|
||||
} else
|
||||
nodebuf.name = p;
|
||||
@@ -830,7 +831,7 @@ node *getnlent(faddr *addr)
|
||||
* Process the nodelist flags.
|
||||
*/
|
||||
if (ndrecord && strlen(nd.Nl_flags)) {
|
||||
Syslog('s', "getnlent: flags override %s", nd.Nl_flags);
|
||||
Syslog('n', "getnlent: flags override %s", nd.Nl_flags);
|
||||
q = nd.Nl_flags;
|
||||
}
|
||||
ixflag = 0;
|
||||
@@ -893,9 +894,8 @@ node *getnlent(faddr *addr)
|
||||
break;
|
||||
if (strncmp(ebuf, (char *)";E", 2))
|
||||
break;
|
||||
Syslog('s', "ESLF: \"%s\"", printable(ebuf, 0));
|
||||
Syslog('n', "ESLF: \"%s\"", printable(ebuf, 0));
|
||||
}
|
||||
fclose(fp);
|
||||
|
||||
/*
|
||||
* Build the connection URL
|
||||
@@ -903,15 +903,16 @@ node *getnlent(faddr *addr)
|
||||
* If the node has some IP flags and we allow TCP, then search the best protocol.
|
||||
*/
|
||||
if (nodebuf.iflags & mytcpip) {
|
||||
Syslog('s', "node iflags %08x, mytcpip %08x", nodebuf.iflags, mytcpip);
|
||||
memset(&tbuf, 0, sizeof(tbuf));
|
||||
Syslog('n', "node iflags %08x, mytcpip %08x", nodebuf.iflags, mytcpip);
|
||||
for (tmpm = &nl_tcpip; *tmpm; tmpm=&((*tmpm)->next)) {
|
||||
if ((*tmpm)->mask & nodebuf.iflags) {
|
||||
Syslog('s', "Setting %s", (*tmpm)->name);
|
||||
Syslog('n', "Setting %s", (*tmpm)->name);
|
||||
for (tmps = &nl_service; *tmps; tmps=&((*tmps)->next)) {
|
||||
if (strcmp((*tmps)->flag, (*tmpm)->name) == 0) {
|
||||
sprintf(tbuf, "%s", (*tmps)->service);
|
||||
tport = (*tmps)->port;
|
||||
Syslog('s', "Setting %s %d", (*tmps)->service, (*tmps)->port);
|
||||
Syslog('n', "Setting %s %d", (*tmps)->service, (*tmps)->port);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -929,44 +930,132 @@ node *getnlent(faddr *addr)
|
||||
*/
|
||||
memset(&tbuf, 0, sizeof(tbuf));
|
||||
if (ndrecord && strlen(nd.Nl_hostname)) {
|
||||
Syslog('s', "Using override %s for FQDN", nd.Nl_hostname);
|
||||
Syslog('n', "Using override %s for FQDN", nd.Nl_hostname);
|
||||
sprintf(tbuf, nodebuf.name);
|
||||
nodebuf.url = xstrcat(nodebuf.url, tbuf);
|
||||
} else {
|
||||
for (tmpa = &nl_search; *tmpa; tmpa=&((*tmpa)->next)) {
|
||||
Syslog('s', "Search FQDN method %s", (*tmpa)->name);
|
||||
Syslog('n', "Search FQDN method %s", (*tmpa)->name);
|
||||
if (strcasecmp((*tmpa)->name, "field3") == 0) {
|
||||
sprintf(tbuf, nodebuf.name);
|
||||
if (strchr(tbuf, '.')) {
|
||||
/*
|
||||
* Okay, there are dots, this can be a FQDN or IP address.
|
||||
*/
|
||||
Syslog('s', "Using field3 \"%s\"", tbuf);
|
||||
Syslog('n', "Using field3 \"%s\"", tbuf);
|
||||
nodebuf.url = xstrcat(nodebuf.url, tbuf);
|
||||
break;
|
||||
} else {
|
||||
memset(&tbuf, 0, sizeof(tbuf));
|
||||
Syslog('n', "Field3 is not usable");
|
||||
}
|
||||
} else if (strcasecmp((*tmpa)->name, "field6") == 0) {
|
||||
if (nodebuf.phone && strncmp(nodebuf.phone, "000-", 4) == 0) {
|
||||
Syslog('s', "Found 000- prefix");
|
||||
Syslog('n', "Found 000- prefix");
|
||||
sprintf(tbuf, "%s", nodebuf.phone+4);
|
||||
for (i = 0; i < strlen(tbuf); i++)
|
||||
if (tbuf[i] == '-')
|
||||
tbuf[i] = '.';
|
||||
Syslog('s', "Using field6 \"%s\"", tbuf);
|
||||
Syslog('n', "Using field6 \"%s\"", tbuf);
|
||||
nodebuf.url = xstrcat(nodebuf.url, tbuf);
|
||||
break;
|
||||
} else {
|
||||
memset(&tbuf, 0, sizeof(tbuf));
|
||||
Syslog('n', "Field6 is not usable");
|
||||
}
|
||||
} else if (strcasecmp((*tmpa)->name, "field8") == 0) {
|
||||
/*
|
||||
* Read nodelist line again in another buffer, the original
|
||||
* buffer is divided into pieces by all previous actions.
|
||||
*/
|
||||
memset(&tbuf, 0, sizeof(tbuf));
|
||||
if (fseek(fp, ndx.offset, SEEK_SET) != 0) {
|
||||
WriteError("$Seek failed for nodelist entry");
|
||||
fclose(fp);
|
||||
goto retdummy;
|
||||
}
|
||||
if (fgets(ebuf, sizeof(ebuf)-1, fp) == NULL) {
|
||||
WriteError("$fgets failed for nodelist entry");
|
||||
fclose(fp);
|
||||
goto retdummy;
|
||||
}
|
||||
if (*(p = ebuf + strlen(ebuf) -1) == '\n')
|
||||
*p = '\0';
|
||||
if (*(p = ebuf + strlen(ebuf) -1) == '\r')
|
||||
*p = '\0';
|
||||
p = ebuf;
|
||||
/*
|
||||
* Shift to field 8
|
||||
*/
|
||||
for (i = 0; i < 7; i++) {
|
||||
if ((q = strchr(p,',')))
|
||||
*q++ = '\0';
|
||||
p = q;
|
||||
if (p == NULL) {
|
||||
fclose(fp);
|
||||
goto badsyntax;
|
||||
}
|
||||
}
|
||||
for (p = q; p; p = q) {
|
||||
if ((q = strchr(p, ',')))
|
||||
*q++ = '\0';
|
||||
Syslog('n', "\"%s\"", MBSE_SS(p));
|
||||
if ((r = strchr(p, ':'))) {
|
||||
r++;
|
||||
/*
|
||||
* If there is a user@domain then strip the userpart.
|
||||
*/
|
||||
if (strchr(r, '@')) {
|
||||
r = strchr(r, '@');
|
||||
r++;
|
||||
}
|
||||
if (*r == '*') {
|
||||
Syslog('n', "Possible default domain marking \"%s\"", MBSE_SS(r));
|
||||
for (tmpd = &nl_domsuffix; *tmpd; tmpd=&((*tmpd)->next)) {
|
||||
if ((*tmpd)->zone == nodebuf.addr.zone) {
|
||||
if (*r++ == '\0')
|
||||
sprintf(tbuf, "f%d.n%d.z%d.%s", nodebuf.addr.node, nodebuf.addr.net,
|
||||
nodebuf.addr.zone, (*tmpd)->name);
|
||||
else
|
||||
sprintf(tbuf, "f%d.n%d.z%d.%s%s", nodebuf.addr.node, nodebuf.addr.net,
|
||||
nodebuf.addr.zone, (*tmpd)->name, r);
|
||||
Syslog('n', "Will try default domain \"%s\"", tbuf);
|
||||
nodebuf.url = xstrcat(nodebuf.url, tbuf);
|
||||
break;
|
||||
}
|
||||
}
|
||||
if (strlen(tbuf))
|
||||
break;
|
||||
Syslog('n', "No matching default domain found for zone %d", nodebuf.addr.zone);
|
||||
}
|
||||
if (strchr(r, '.')) {
|
||||
Syslog('n', "Found a FQDN \"%s\"", MBSE_SS(r));
|
||||
sprintf(tbuf, "%s", r);
|
||||
nodebuf.url = xstrcat(nodebuf.url, tbuf);
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
if (strlen(tbuf))
|
||||
break;
|
||||
Syslog('n', "Field8 is not usable");
|
||||
}
|
||||
}
|
||||
}
|
||||
fclose(fp);
|
||||
|
||||
if (strchr(tbuf, ':') == NULL) {
|
||||
if (strlen(tbuf) == 0) {
|
||||
Syslog('n', "No FQDN found, cannot call");
|
||||
if (nodebuf.url)
|
||||
free(nodebuf.url);
|
||||
nodebuf.url = NULL;
|
||||
} else if (strchr(tbuf, ':') == NULL) {
|
||||
/*
|
||||
* No optional port number, add one from the default
|
||||
* for this protocol.
|
||||
*/
|
||||
sprintf(tbuf, ":%lu", tport);
|
||||
Syslog('s', "Adding default port %s", tbuf);
|
||||
Syslog('n', "Adding default port %s", tbuf);
|
||||
nodebuf.url = xstrcat(nodebuf.url, tbuf);
|
||||
}
|
||||
|
||||
@@ -986,9 +1075,9 @@ node *getnlent(faddr *addr)
|
||||
if (addr->domain == NULL)
|
||||
addr->domain = xstrcpy(nodebuf.addr.domain);
|
||||
|
||||
Syslog('s', "getnlent: system %s, %s", nodebuf.name, nodebuf.location);
|
||||
Syslog('s', "getnlent: sysop %s, %s", nodebuf.sysop, nodebuf.phone);
|
||||
Syslog('s', "getnlent: URL %s", printable(nodebuf.url, 0));
|
||||
Syslog('n', "getnlent: system %s, %s", nodebuf.name, nodebuf.location);
|
||||
Syslog('n', "getnlent: sysop %s, %s", nodebuf.sysop, nodebuf.phone);
|
||||
Syslog('n', "getnlent: URL %s", printable(nodebuf.url, 0));
|
||||
moflags(nodebuf.mflags);
|
||||
diflags(nodebuf.dflags);
|
||||
ipflags(nodebuf.iflags);
|
||||
@@ -1030,7 +1119,7 @@ void olflags(unsigned long flags)
|
||||
t = xstrcat(t, (*tmpm)->name);
|
||||
}
|
||||
}
|
||||
Syslog('s', "%s", t);
|
||||
Syslog('n', "%s", t);
|
||||
free(t);
|
||||
}
|
||||
|
||||
@@ -1055,7 +1144,7 @@ void rqflags(unsigned long flags)
|
||||
t = xstrcat(t, (char *)")");
|
||||
}
|
||||
}
|
||||
Syslog('s', "%s", t);
|
||||
Syslog('n', "%s", t);
|
||||
free(t);
|
||||
}
|
||||
|
||||
@@ -1075,7 +1164,7 @@ void moflags(unsigned long flags)
|
||||
t = xstrcat(t, (*tmpm)->name);
|
||||
}
|
||||
}
|
||||
Syslog('s', "%s", t);
|
||||
Syslog('n', "%s", t);
|
||||
free(t);
|
||||
}
|
||||
|
||||
@@ -1095,7 +1184,7 @@ void diflags(unsigned long flags)
|
||||
t = xstrcat(t, (*tmpm)->name);
|
||||
}
|
||||
}
|
||||
Syslog('s', "%s", t);
|
||||
Syslog('n', "%s", t);
|
||||
free(t);
|
||||
}
|
||||
|
||||
@@ -1115,7 +1204,7 @@ void ipflags(unsigned long flags)
|
||||
t = xstrcat(t, (*tmpm)->name);
|
||||
}
|
||||
}
|
||||
Syslog('s', "%s", t);
|
||||
Syslog('n', "%s", t);
|
||||
free(t);
|
||||
}
|
||||
|
||||
|
@@ -28,7 +28,8 @@
|
||||
# Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||
#############################################################################
|
||||
|
||||
# WARNING: This file will be taken in use during development of v0.37.xx
|
||||
# WARNING: This file is needed from v0.37.00 and later. The format of this
|
||||
# file is under development.
|
||||
# It will implement some new features that will become FTSC standards
|
||||
# during 2003
|
||||
#
|
||||
@@ -144,8 +145,13 @@ tcpip IBN 0x00000004 0x00000004
|
||||
# field6 - Search the phone field for 000- prefix, may be a IP
|
||||
# or a FQDN with or without a :port suffix.
|
||||
# 000-192-168-1-40:1234 or 000-ntbox.mbse.ym:5678 are valid.
|
||||
# ina - Search INA:fqdn (NOT YET AVAILABLE)
|
||||
# firstflag - First IP flag (NOT YET AVAILABLE)
|
||||
# field8 - Search in the flags for a FQDN. Valid flags are like:
|
||||
# IBN:domain.com Standard
|
||||
# IFC:domain.com:port Standard
|
||||
# IBN:1.2.3.5 Standard
|
||||
# ITN:1.2.3.4:port Standard
|
||||
# IBN:* Proposed, use default domain
|
||||
# IBN:*:port Not yet proposed
|
||||
# eslf - Extended St. Louis Format fields (NOT YET AVAILABLE)
|
||||
# defdomain - Asume default domain (NOT YET AVAILABLE)
|
||||
#
|
||||
@@ -154,11 +160,14 @@ tcpip IBN 0x00000004 0x00000004
|
||||
#
|
||||
search field3
|
||||
search field6
|
||||
search field8
|
||||
|
||||
# The default searchdomain, will be prefixed with f1.n2 (NOT YET AVAILABLE)
|
||||
|
||||
# The default searchdomain, will be prefixed with f1.n2.z3.
|
||||
#
|
||||
# Zone Suffix
|
||||
domsuffix 1 .z1.fidonet.net
|
||||
domsuffix 2 .z2.fidonet.net
|
||||
domsuffix 3 .z3.fidonet.net
|
||||
domsuffix 1 fidonet.net
|
||||
domsuffix 2 fidonet.net
|
||||
domsuffix 3 fidonet.net
|
||||
domsuffix 92 bibnet.ym
|
||||
|
||||
|
Reference in New Issue
Block a user