diff --git a/ChangeLog b/ChangeLog index 89ca3023..eaf5e011 100644 --- a/ChangeLog +++ b/ChangeLog @@ -15,6 +15,8 @@ v0.37.00 26-Dec-2002. The settings to suppres some IP protocols (global and nodes) are removed, this behaviour can be set using nodelist flags configuration. + Debug logging for mail and news now have one setting, the M. + Nodelist debug logging now uses the N character. libs: The nodelist lookup functions are now in a separate library. @@ -22,6 +24,8 @@ v0.37.00 26-Dec-2002. and flags. Introduced a new file, ~/etc/nodelist.conf, this file will be used for nodelist lookup behaviour. + The current looked-up nodelist strcuture has an extra field, + the URL how that node must be contacted. mbcico: With binkp and EMSI sessions double received remote aka's are @@ -34,6 +38,9 @@ v0.37.00 26-Dec-2002. Prepared for more example translations. Added German template files made by Joachim Kuwan. + mbfile: + Move old files to another area failed, only the symbolic link + was moved. mbsetup: Removed global flags No-IBN, IFC and ITN from the setup. diff --git a/html/images/nodes3.png b/html/images/nodes3.png index f5aff85c..67f35973 100644 Binary files a/html/images/nodes3.png and b/html/images/nodes3.png differ diff --git a/html/setup/global.html b/html/setup/global.html index 46ad454d..458554c9 100644 --- a/html/setup/global.html +++ b/html/setup/global.html @@ -12,7 +12,7 @@
-+Last update 28-Oct-2002
Last update 31-Dec-2002
MBSE BBS Setup - Global Setup
@@ -390,7 +390,10 @@ These are the settings that affect the generation of newfiles and allfiles repor Note that you can't disable FTS-0001 sessions as that is a mandatory session protocol in Fidonet. There are 40 phonenumber translations present, this is for countries with lots of telephone operators with all kind of prefixes for -carrier select functions. +carrier select functions. The setting of TCP/IP flags is important too, this +gives the information what this system will do. If you only enter IBN as TCP/IP +flags then the system will only call IBN nodes (binkp). The default is +XX,IBN,IFC,ITN::60177
Mailer logl. The logging level for mailer sessions Default phone The default phonenumber for EMSI sessions @@ -406,9 +409,6 @@ carrier select functions. No Zmodem Disable zmodem protocol No Zedzap Disable zedzap protocol No Hydra Disable Hydra protocol -No TCP/IP IBN Disable TCP/IP IBN (binkp) protocol. -No TCP/IP IFC Disable TCP/IP IFC (ifcico) protocol. -No TCP/IP ITN Disable TCP/IP ITN (telnet) protocol. Phonetrans 1..40 Maximum 40 phone number translations Max. files Maximum files to request, 0 is unlimited Max. MBytes Maximum MBytes to request, 0 is unlimited diff --git a/html/setup/nodes.html b/html/setup/nodes.html index 82282fe0..bdc059df 100644 --- a/html/setup/nodes.html +++ b/html/setup/nodes.html @@ -12,7 +12,7 @@-+Last update 01-Dec-2002
Last update 31-Dec-2002
MBSE BBS Setup - Fidonet nodes.
@@ -83,7 +83,7 @@ In this screen you can setup 20 aka's for the node.
3. Edit node session
-In this screen you can setup the session defaults. Items 7 and 8 will be added later. +In this screen you can setup the session defaults.
@@ -99,7 +99,7 @@ phone number as mentioned in the nodelist. nodelist flags, the nodelist flags are completly ignored if you enter something here so make sure all flags you need are here. All aka's of this node will use the same flags. This can be usefull to force calling this node via the -internet. +internet and to force a certain protocol. Session passwd This is the mailer session password. protocol. Inet hostname The FQDN hostname or IP address of this node. This replaces the original system name from the nodelist and this is then used to make the internet TCP/IP connection. This can @@ -130,12 +130,6 @@ protocol. - No Hydra Disable Hydra protocol. - No TCP/IP IBN Disbale TCP/IP IBN -(binkp) protocol. - No TCP/IP IFC Disable TCP/IP IFC -(ifcico) protocol. No TCP/IP ITN Disable TCP/IP ITN -(telnet) protocol. diff --git a/lib/clcomm.c b/lib/clcomm.c index 0a11d39c..23da635e 100644 --- a/lib/clcomm.c +++ b/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); } diff --git a/lib/clcomm.h b/lib/clcomm.h index a6abfdf2..81602e3e 100644 --- a/lib/clcomm.h +++ b/lib/clcomm.h @@ -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 diff --git a/lib/common.h b/lib/common.h index 05e5edef..7836b625 100644 --- a/lib/common.h +++ b/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; diff --git a/lib/nodelist.c b/lib/nodelist.c index 4b31e8cc..cbd28a43 100644 --- a/lib/nodelist.c +++ b/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); } diff --git a/lib/nodelist.conf b/lib/nodelist.conf index 56babd16..958cbbdc 100644 --- a/lib/nodelist.conf +++ b/lib/nodelist.conf @@ -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 diff --git a/mbfido/mbfkill.c b/mbfido/mbfkill.c index f80de850..97e4389b 100644 --- a/mbfido/mbfkill.c +++ b/mbfido/mbfkill.c @@ -168,8 +168,8 @@ void Kill(void) if (area.MoveArea) { fseek(pAreas, ((area.MoveArea -1) * areahdr.recsize) + areahdr.hdrsize, SEEK_SET); fread(&darea, areahdr.recsize, 1, pAreas); - sprintf(from, "%s/%s", area.Path, file.LName); - sprintf(to, "%s/%s", darea.Path, file.LName); + sprintf(from, "%s/%s", area.Path, file.Name); + sprintf(to, "%s/%s", darea.Path, file.Name); if ((rc = file_mv(from, to)) == 0) { Syslog('+', "Move %s, area %d => %d", file.Name, i, area.MoveArea); sprintf(to, "%s/fdb/fdb%d.data", getenv("MBSE_ROOT"), area.MoveArea); @@ -179,13 +179,28 @@ void Kill(void) fwrite(&file, sizeof(file), 1, pDest); fclose(pDest); } + /* * Now again if there is a dotted version (thumbnail) of this file. */ - sprintf(from, "%s/.%s", area.Path, file.LName); - sprintf(to, "%s/.%s", darea.Path, file.LName); + sprintf(from, "%s/.%s", area.Path, file.Name); + sprintf(to, "%s/.%s", darea.Path, file.Name); if (file_exist(from, R_OK) == 0) file_mv(from, to); + + /* + * Unlink the old symbolic link + */ + sprintf(from, "%s/%s", area.Path, file.LName); + unlink(from); + + /* + * Create the new symbolic link + */ + sprintf(from, "%s/%s", darea.Path, file.Name); + sprintf(to, "%s/%s", darea.Path, file.LName); + symlink(from, to); + file.Deleted = TRUE; fseek(pFile, - sizeof(file), SEEK_CUR); fwrite(&file, sizeof(file), 1, pFile); diff --git a/mbfido/newspost.c b/mbfido/newspost.c index f2f5c377..4d820a3b 100644 --- a/mbfido/newspost.c +++ b/mbfido/newspost.c @@ -119,7 +119,7 @@ int newspost(void) * Create newsbatch file. */ if ((CFG.newsfeed == FEEDUUCP) || (CFG.newsfeed == FEEDRNEWS)) { - Syslog('n', "Building uncompressed batchfile"); + Syslog('m', "Building uncompressed batchfile"); sprintf(buf, "%s/tmp/newsbatch", getenv("MBSE_ROOT")); if ((ofp = fopen(buf, "w+")) == NULL) { WriteError("$Can't create %s", buf); diff --git a/mbfido/rfc2ftn.c b/mbfido/rfc2ftn.c index 73ba8765..14aa6783 100644 --- a/mbfido/rfc2ftn.c +++ b/mbfido/rfc2ftn.c @@ -255,7 +255,7 @@ int rfc2ftn(FILE *fp, faddr *recipient) if ((hdr((char *)"X-PGP-Signed",msg))) pgpsigned = TRUE; if (pgpsigned) - Syslog('n', "pgpsigned = %s", pgpsigned ? "True":"False"); + Syslog('m', "pgpsigned = %s", pgpsigned ? "True":"False"); q = hdr((char *)"Content-Transfer-Encoding",msg); if (q) @@ -298,14 +298,14 @@ int rfc2ftn(FILE *fp, faddr *recipient) removemime = TRUE; } if (removemime || qp_or_base64 || html_message) - Syslog('n', "removemime=%s, qp_or_base64 = %d, html_message=%s", removemime ? "True":"False", qp_or_base64, + Syslog('m', "removemime=%s, qp_or_base64 = %d, html_message=%s", removemime ? "True":"False", qp_or_base64, html_message ? "True":"False"); if ((p = hdr((char *)"Message-ID",msg))) { if (!removemsgid) removemsgid = chkftnmsgid(p); } - Syslog('n', "removemsgid = %s", removemsgid ? "True":"False"); + Syslog('m', "removemsgid = %s", removemsgid ? "True":"False"); if ((!removeref) && (p = hdr((char *)"References",msg))) { p = xstrcpy(p); @@ -315,12 +315,12 @@ int rfc2ftn(FILE *fp, faddr *recipient) free(p); } if (removeref) - Syslog('n', "removeref = %s", removeref ? "True":"False"); + Syslog('m', "removeref = %s", removeref ? "True":"False"); if ((p = hdr((char *)"Supersedes",msg))) removesupersedes = chkftnmsgid(p); if (removesupersedes) - Syslog('n', "removesupersedes = %s", removesupersedes ? "True":"False"); + Syslog('m', "removesupersedes = %s", removesupersedes ? "True":"False"); if ((p = hdr((char *)"Approved",msg))) { while (*p && isspace(*p)) @@ -333,7 +333,7 @@ int rfc2ftn(FILE *fp, faddr *recipient) *q='\n'; } if (removeapproved) - Syslog('n', "removeapproved = %s", removeapproved ? "True":"False"); + Syslog('m', "removeapproved = %s", removeapproved ? "True":"False"); if ((p = hdr((char *)"Reply-To",msg))) { removereplyto = FALSE; @@ -349,7 +349,7 @@ int rfc2ftn(FILE *fp, faddr *recipient) removereplyto = TRUE; } } - Syslog('n', "removereplyto = %s", removereplyto ? "True":"False"); + Syslog('m', "removereplyto = %s", removereplyto ? "True":"False"); if ((p = hdr((char *)"Return-Receipt-To",msg))) { removereturnto = FALSE; @@ -367,7 +367,7 @@ int rfc2ftn(FILE *fp, faddr *recipient) } } if (!removereturnto) - Syslog('n', "removereturnto = %s", removereturnto ? "True":"False"); + Syslog('m', "removereturnto = %s", removereturnto ? "True":"False"); p = ascfnode(fmsg->from,0x1f); i = 79-11-3-strlen(p); @@ -384,12 +384,12 @@ int rfc2ftn(FILE *fp, faddr *recipient) al long as X-FTN-Origin is used now */ p = ascfnode(fmsg->from,0x0f); - Syslog('n', "checkorigin 3"); + Syslog('m', "checkorigin 3"); i = 79-11-3-strlen(p); tinyorigin = TRUE; } if (tinyorigin) - Syslog('n', "tinyorigin = %s", tinyorigin ? "True":"False"); + Syslog('m', "tinyorigin = %s", tinyorigin ? "True":"False"); if ((fmsg->origin) && (strlen(fmsg->origin) > i)) fmsg->origin[i]='\0'; @@ -403,7 +403,7 @@ int rfc2ftn(FILE *fp, faddr *recipient) if (fmsg->to) hdrsize += (fmsg->to->name)?strlen(fmsg->to->name):0; do { - Syslog('n', "split loop, splitpart = %d", splitpart); + Syslog('m', "split loop, splitpart = %d", splitpart); datasize = 0; if (splitpart) { @@ -804,17 +804,17 @@ int rfc2ftn(FILE *fp, faddr *recipient) fflush(ofp); rewind(ofp); - Syslog('n', "========== Fido start"); + Syslog('m', "========== Fido start"); while (fgets(temp, 4096, ofp) != NULL) { /* * Only log kludges, skip the body */ if ((temp[0] == '\001') || !strncmp(temp, "AREA:", 5) || !strncmp(temp, "SEEN-BY", 7)) { Striplf(temp); - Syslogp('n', printable(temp, 0)); + Syslogp('m', printable(temp, 0)); } } - Syslog('n', "========== Fido end"); + Syslog('m', "========== Fido end"); if (newsmode) rc = postecho(NULL, fmsg->from, fmsg->to, origin, fmsg->subj, fmsg->date, fmsg->flags, 0, ofp, FALSE); diff --git a/mbfido/rnews.c b/mbfido/rnews.c index 76a0c96c..58b092c8 100644 --- a/mbfido/rnews.c +++ b/mbfido/rnews.c @@ -179,7 +179,7 @@ static int StartChild(int fd, char *path, char *argv[]) WriteError("$Cant fork %s -- spooling", path); return -1; } - Syslog('n', "Cant fork %s -- waiting", path); + Syslog('m', "Cant fork %s -- waiting", path); (void)sleep(60); } @@ -205,7 +205,7 @@ static int StartChild(int fd, char *path, char *argv[]) (void)close(pan[PIPE_WRITE]); } - Syslog('n', "execv %s %s", MBSE_SS(path), MBSE_SS(argv[1])); + Syslog('m', "execv %s %s", MBSE_SS(path), MBSE_SS(argv[1])); (void)execv(path, argv); WriteError("$Cant execv %s", path); _exit(MBERR_EXEC_FAILED); @@ -519,7 +519,7 @@ static int UnpackOne(int *fdp, int *countp) return FALSE; if (strcmp(buff, "#! cunbatch") == 0) { - Syslog('n', "Compressed newsbatch"); + Syslog('m', "Compressed newsbatch"); if (SawCunbatch) { WriteError("Nested_cunbatch"); return FALSE; @@ -592,7 +592,7 @@ void ProcessOne(FILE *fp) strtok(buf, " "); while ((group = strtok(NULL, ",\n"))) { if (SearchMsgsNews(group)) { - Syslog('n', "Add group %s (%s)", msgs.Newsgroup, msgs.Tag); + Syslog('m', "Add group %s (%s)", msgs.Newsgroup, msgs.Tag); groups[nrofgroups] = xstrcpy(group); nrofgroups++; } else { @@ -606,7 +606,7 @@ void ProcessOne(FILE *fp) */ mbuf = xstrcpy(buf+13); mbuf[strlen(mbuf)-2] = '\0'; - Syslog('n', "Message ID \"%s\"", printable(mbuf, 0)); + Syslog('m', "Message ID \"%s\"", printable(mbuf, 0)); } } @@ -617,7 +617,7 @@ void ProcessOne(FILE *fp) } else { IsDoing("Article %d", (news_in + 1)); for (i = 0; i < nrofgroups; i++) { - Syslog('n', "Process %s", groups[i]); + Syslog('m', "Process %s", groups[i]); p = xstrcpy(mbuf); p = xstrcat(p, groups[i]); crc = str_crc32(p); diff --git a/mbfido/scannews.c b/mbfido/scannews.c index 327283d1..ba8f4453 100644 --- a/mbfido/scannews.c +++ b/mbfido/scannews.c @@ -111,7 +111,7 @@ void fill_artlist(List **fdp, char *id, long nr, int dupe) { List **tmp; - Syslog('N', "Fill %s %ld %s", id, nr, dupe ? "Dupe":"New msg"); + Syslog('M', "Fill %s %ld %s", id, nr, dupe ? "Dupe":"New msg"); for (tmp = fdp; *tmp; tmp = &((*tmp)->next)); *tmp = (List *)malloc(sizeof(List)); @@ -217,7 +217,7 @@ void ScanNews(void) Syslog('+', "Detected upsalarm semafore, aborting newsscan"); break; } - Syslog('n', "Scan newsgroup: %s", Msgs.Newsgroup); + Syslog('m', "Scan newsgroup: %s", Msgs.Newsgroup); if (!do_quiet) { colour(3, 0); printf("\r%-40s", Msgs.Newsgroup); @@ -257,7 +257,7 @@ int do_one_group(List **art, char *grpname, char *ftntag, int maxarticles) int retval, fetched = 0; long total, start, end; - Syslog('N', "do_one_group(%s, %s)", grpname, ftntag); + Syslog('M', "do_one_group(%s, %s)", grpname, ftntag); IsDoing((char *)"Scan %s", grpname); sprintf(temp, "GROUP %s\r\n", grpname); nntp_send(temp); @@ -275,14 +275,14 @@ int do_one_group(List **art, char *grpname, char *ftntag, int maxarticles) total = atol(strtok(NULL, " ")); start = atol(strtok(NULL, " ")); end = atol(strtok(NULL, " '\0'")); - Syslog('n', "GROUP total %d, start %d, end %d, max %d", total, start, end, maxarticles); + Syslog('m', "GROUP total %d, start %d, end %d, max %d", total, start, end, maxarticles); if ((maxarticles) && (total > maxarticles)) { start = end - maxarticles; total = maxarticles; - Syslog('n', "NEW: total %d, start %d, end %d", total, start, end); + Syslog('m', "NEW: total %d, start %d, end %d", total, start, end); } if (!total) { - Syslog('N', "No articles"); + Syslog('M', "No articles"); return RETVAL_NOARTICLES; } @@ -321,7 +321,7 @@ int get_article(char *msgid, char *ftntag) FILE *fp = NULL, *dp; char dpath[PATH_MAX]; - Syslog('n', "Get article %s, %s", msgid, ftntag); + Syslog('m', "Get article %s, %s", msgid, ftntag); if (!SearchMsgs(ftntag)) { WriteError("Search message area %s failed", ftntag); return RETVAL_ERROR; @@ -392,7 +392,7 @@ int get_xover(char *grpname, long startnr, long endnr, List **art) WriteError("Permission denied"); return RETVAL_NOXOVER; case 420: - Syslog('n', "No articles in group %s", grpname); + Syslog('m', "No articles in group %s", grpname); return RETVAL_OK; } } @@ -470,7 +470,7 @@ int get_xoverview(void) char *resp; POverview tmp, curptr = NULL; - Syslog('n', "Getting overview format list"); + Syslog('m', "Getting overview format list"); if ((retval = nntp_cmd((char *)"LIST overview.fmt\r\n", 215)) == 0) { while (done == FALSE) { resp = nntp_receive(); @@ -512,10 +512,10 @@ int get_xoverview(void) } if ((tmp = xoverview) != NULL) { - Syslog('N', "--Xoverview.fmt list"); + Syslog('M', "--Xoverview.fmt list"); while (tmp != NULL) { if (tmp->header != NULL) { - Syslog('N', "item = %s -- full = %s", tmp->header, tmp->full ? "True":"False"); + Syslog('M', "item = %s -- full = %s", tmp->header, tmp->full ? "True":"False"); } tmp = tmp->next; } diff --git a/mbsetup/ledit.c b/mbsetup/ledit.c index 3b28ff12..29c055a2 100644 --- a/mbsetup/ledit.c +++ b/mbsetup/ledit.c @@ -922,33 +922,33 @@ int edit_bool(int y, int x, int val, char *help) char *getloglevel(long val) { - char *p; + char *p; - p = xstrcpy((char *)"?"); + p = xstrcpy((char *)"?"); - if (val & DLOG_ATTENT) p = xstrcat(p, (char *)"!"); - if (val & DLOG_NORMAL) p = xstrcat(p, (char *)"+"); - if (val & DLOG_VERBOSE) p = xstrcat(p, (char *)"-"); - if (val & DLOG_TCP) p = xstrcat(p, (char *)"A"); - if (val & DLOG_BBS) p = xstrcat(p, (char *)"B"); - if (val & DLOG_CHAT) p = xstrcat(p, (char *)"C"); - if (val & DLOG_DEVIO) p = xstrcat(p, (char *)"D"); - if (val & DLOG_EXEC) p = xstrcat(p, (char *)"E"); - if (val & DLOG_FILEFWD) p = xstrcat(p, (char *)"F"); - if (val & DLOG_HYDRA) p = xstrcat(p, (char *)"H"); - if (val & DLOG_IEMSI) p = xstrcat(p, (char *)"I"); - if (val & DLOG_LOCK) p = xstrcat(p, (char *)"L"); - if (val & DLOG_MAIL) p = xstrcat(p, (char *)"M"); - if (val & DLOG_NEWS) p = xstrcat(p, (char *)"N"); - if (val & DLOG_OUTSCAN) p = xstrcat(p, (char *)"O"); - if (val & DLOG_PACK) p = xstrcat(p, (char *)"P"); - if (val & DLOG_ROUTE) p = xstrcat(p, (char *)"R"); - if (val & DLOG_SESSION) p = xstrcat(p, (char *)"S"); - if (val & DLOG_TTY) p = xstrcat(p, (char *)"T"); - if (val & DLOG_XMODEM) p = xstrcat(p, (char *)"X"); - if (val & DLOG_ZMODEM) p = xstrcat(p, (char *)"Z"); + if (val & DLOG_ATTENT) p = xstrcat(p, (char *)"!"); + if (val & DLOG_NORMAL) p = xstrcat(p, (char *)"+"); + if (val & DLOG_VERBOSE) p = xstrcat(p, (char *)"-"); + if (val & DLOG_TCP) p = xstrcat(p, (char *)"A"); + if (val & DLOG_BBS) p = xstrcat(p, (char *)"B"); + if (val & DLOG_CHAT) p = xstrcat(p, (char *)"C"); + if (val & DLOG_DEVIO) p = xstrcat(p, (char *)"D"); + if (val & DLOG_EXEC) p = xstrcat(p, (char *)"E"); + if (val & DLOG_FILEFWD) p = xstrcat(p, (char *)"F"); + if (val & DLOG_HYDRA) p = xstrcat(p, (char *)"H"); + if (val & DLOG_IEMSI) p = xstrcat(p, (char *)"I"); + if (val & DLOG_LOCK) p = xstrcat(p, (char *)"L"); + if (val & DLOG_MAIL) p = xstrcat(p, (char *)"M"); + if (val & DLOG_NODELIST) p = xstrcat(p, (char *)"N"); + if (val & DLOG_OUTSCAN) p = xstrcat(p, (char *)"O"); + if (val & DLOG_PACK) p = xstrcat(p, (char *)"P"); + if (val & DLOG_ROUTE) p = xstrcat(p, (char *)"R"); + if (val & DLOG_SESSION) p = xstrcat(p, (char *)"S"); + if (val & DLOG_TTY) p = xstrcat(p, (char *)"T"); + if (val & DLOG_XMODEM) p = xstrcat(p, (char *)"X"); + if (val & DLOG_ZMODEM) p = xstrcat(p, (char *)"Z"); - return p; + return p; } @@ -984,8 +984,8 @@ long edit_logl(long val, char *txt) mvprintw(16, 5, "10. H Hydra debug"); mvprintw(17, 5, "11. I EMSI debug"); mvprintw( 7,45, "12. L Locking"); - mvprintw( 8,45, "13. M Mail debug"); - mvprintw( 9,45, "14. N News debug"); + mvprintw( 8,45, "13. M Mail/News"); + mvprintw( 9,45, "14. N Nodelist"); mvprintw(10,45, "15. O Outboundscan"); mvprintw(11,45, "16. P Packing"); mvprintw(12,45, "17. R Routing"); @@ -1010,7 +1010,7 @@ long edit_logl(long val, char *txt) show_lbit(17,24, val, DLOG_IEMSI); show_lbit( 7,64, val, DLOG_LOCK); show_lbit( 8,64, val, DLOG_MAIL); - show_lbit( 9,64, val, DLOG_NEWS); + show_lbit( 9,64, val, DLOG_NODELIST); show_lbit(10,64, val, DLOG_OUTSCAN); show_lbit(11,64, val, DLOG_PACK); show_lbit(12,64, val, DLOG_ROUTE); @@ -1034,7 +1034,7 @@ long edit_logl(long val, char *txt) case 11:val ^= DLOG_IEMSI; break; case 12:val ^= DLOG_LOCK; break; case 13:val ^= DLOG_MAIL; break; - case 14:val ^= DLOG_NEWS; break; + case 14:val ^= DLOG_NODELIST; break; case 15:val ^= DLOG_OUTSCAN; break; case 16:val ^= DLOG_PACK; break; case 17:val ^= DLOG_ROUTE; break; diff --git a/mbsetup/m_global.c b/mbsetup/m_global.c index 0f0ac9d8..4f93d6a8 100644 --- a/mbsetup/m_global.c +++ b/mbsetup/m_global.c @@ -1348,9 +1348,9 @@ void s_mailer(void) mvprintw(16, 2, "10. No EMSI session"); mvprintw(17, 2, "11. No Yooho/2U2"); - mvprintw(12,31, "12. No Zmodem"); - mvprintw(13,31, "13. No Zedzap"); - mvprintw(14,31, "14. No Hydra"); + mvprintw(15,31, "12. No Zmodem"); + mvprintw(16,31, "13. No Zedzap"); + mvprintw(17,31, "14. No Hydra"); mvprintw(12,59, "18. Phonetrans 1-10"); mvprintw(13,59, "19. Phonetrans 11-20"); @@ -1412,9 +1412,9 @@ void e_mailer(void) show_bool(16,23, CFG.NoEMSI); show_bool(17,23, CFG.NoWazoo); - show_bool(12,52, CFG.NoZmodem); - show_bool(13,52, CFG.NoZedzap); - show_bool(14,52, CFG.NoHydra); + show_bool(15,52, CFG.NoZmodem); + show_bool(16,52, CFG.NoZedzap); + show_bool(17,52, CFG.NoHydra); show_int( 16,75, CFG.Req_Files); show_int( 17,75, CFG.Req_MBytes); @@ -1433,9 +1433,9 @@ void e_mailer(void) case 10:E_BOOL(16,23, CFG.NoEMSI, "If set then ^EMSI handshake^ is diabled") case 11:E_BOOL(17,23, CFG.NoWazoo, "If set then ^YooHoo/2U2^ (FTSC-0006) is disabled") - case 12:E_BOOL(12,52, CFG.NoZmodem, "If set then the ^Zmodem^ protocol is disabled") - case 13:E_BOOL(13,52, CFG.NoZedzap, "If set then the ^Zedzap^ protocol is disabled") - case 14:E_BOOL(14,52, CFG.NoHydra, "If set then the ^Hydra^ protocol is disabled") + case 12:E_BOOL(15,52, CFG.NoZmodem, "If set then the ^Zmodem^ protocol is disabled") + case 13:E_BOOL(16,52, CFG.NoZedzap, "If set then the ^Zedzap^ protocol is disabled") + case 14:E_BOOL(17,52, CFG.NoHydra, "If set then the ^Hydra^ protocol is disabled") case 18:e_trans(0); break; diff --git a/mbsetup/m_node.c b/mbsetup/m_node.c index ab4d563c..d1d035f6 100644 --- a/mbsetup/m_node.c +++ b/mbsetup/m_node.c @@ -796,12 +796,12 @@ void SessionScreen(void) mvprintw(15, 6, "9. No EMSI"); mvprintw(16, 6, "10. No YooHoo/2U2"); mvprintw(17, 6, "11. No Filerequest"); - mvprintw(18, 6, "12. Don't call"); - mvprintw(19, 6, "13. 8.3 names"); - mvprintw(14,41, "14. No Zmodem"); - mvprintw(15,41, "15. No Zedzap"); - mvprintw(16,41, "16. No Hydra"); + mvprintw(13,41, "12. Don't call"); + mvprintw(14,41, "13. 8.3 names"); + mvprintw(15,41, "14. No Zmodem"); + mvprintw(16,41, "15. No Zedzap"); + mvprintw(17,41, "16. No Hydra"); } @@ -824,12 +824,12 @@ void SessionEdit(void) show_bool(15,26, nodes.NoEMSI); show_bool(16,26, nodes.NoWaZOO); show_bool(17,26, nodes.NoFreqs); - show_bool(18,26, nodes.NoCall); - show_bool(19,26, nodes.FNC); - show_bool(14,61, nodes.NoZmodem); - show_bool(15,61, nodes.NoZedzap); - show_bool(16,61, nodes.NoHydra); + show_bool(13,61, nodes.NoCall); + show_bool(14,61, nodes.FNC); + show_bool(15,61, nodes.NoZmodem); + show_bool(16,61, nodes.NoZedzap); + show_bool(17,61, nodes.NoHydra); switch(select_menu(16)) { case 0: return; @@ -846,12 +846,12 @@ void SessionEdit(void) case 9: E_BOOL(15,26, nodes.NoEMSI, "Disable ^EMSI handshake^ with this node") case 10:E_BOOL(16,26, nodes.NoWaZOO, "Disable ^YooHoo/2U2 handshake^ (FTSC-0006) with this node") case 11:E_BOOL(17,26, nodes.NoFreqs, "Disallow ^file requests^ from this node") - case 12:E_BOOL(18,26, nodes.NoCall, "Don't ^call^ this node") - case 13:E_BOOL(19,26, nodes.FNC, "Node needs ^DOS 8.3^ filenames") - case 14:E_BOOL(14,61, nodes.NoZmodem, "Disable ^Zmodem^ protocol with this node") - case 15:E_BOOL(15,61, nodes.NoZedzap, "Disable ^Zedzap^ protocol with this node") - case 16:E_BOOL(16,61, nodes.NoHydra, "Disable ^Hydra^ protocol with this node") + case 12:E_BOOL(13,61, nodes.NoCall, "Don't ^call^ this node") + case 13:E_BOOL(14,61, nodes.FNC, "Node needs ^DOS 8.3^ filenames") + case 14:E_BOOL(15,61, nodes.NoZmodem, "Disable ^Zmodem^ protocol with this node") + case 15:E_BOOL(16,61, nodes.NoZedzap, "Disable ^Zedzap^ protocol with this node") + case 16:E_BOOL(17,61, nodes.NoHydra, "Disable ^Hydra^ protocol with this node") } } } diff --git a/mbtask/mbtask.c b/mbtask/mbtask.c index 53b9f22d..db357018 100644 --- a/mbtask/mbtask.c +++ b/mbtask/mbtask.c @@ -357,7 +357,7 @@ void load_maincfg(void) sprintf(CFG.phonetrans[2].repl, "00"); CFG.Speed = 9600; CFG.dialdelay = 60; - sprintf(CFG.Flags, "CM,XX,IBN,IFC,ITN"); + sprintf(CFG.Flags, "CM,XX,IBN,IFC,ITN::60177"); CFG.cico_loglevel = DLOG_ALLWAYS | DLOG_ERROR | DLOG_ATTENT | DLOG_NORMAL | DLOG_VERBOSE; /* @@ -1031,11 +1031,15 @@ void scheduler(void) if (file_time(tcfgfn) != tcfg_time) { Syslog('+', "Task configuration changed, reloading"); load_taskcfg(); + deinitnl(); + initnl(); sem_set((char *)"scanout", TRUE); } if (file_time(cfgfn) != cfg_time) { Syslog('+', "Main configuration changed, reloading"); load_maincfg(); + deinitnl(); + initnl(); sem_set((char *)"scanout", TRUE); } if (file_time(ttyfn) != tty_time) {