Added binkp escape switch
This commit is contained in:
parent
008604d8d6
commit
1442a4babc
12
ChangeLog
12
ChangeLog
@ -26,6 +26,11 @@ v0.37.6 10-Aug-2003
|
||||
Changed the address of the FSF in all sources.
|
||||
Removed memwatch debugger.
|
||||
Changed all gif and jpg images to png images.
|
||||
Added a setup switch for the nodes for selecting the wrong
|
||||
binkp long filenames escape method for Argus and Irex nodes.
|
||||
|
||||
nodelist.a:
|
||||
Removed some of the debug logging.
|
||||
|
||||
mbcico:
|
||||
Completly changed the files inbound receive, all files are now
|
||||
@ -35,7 +40,8 @@ v0.37.6 10-Aug-2003
|
||||
resync problems.
|
||||
The other goodie is that this is more safe on busy multiline
|
||||
systems.
|
||||
Fixed the binkp escape sequence which is wrong in the FSP.
|
||||
Fixed the binkp escape sequence which is wrong in the FSP, this
|
||||
is selectable in the nodes setup.
|
||||
A light improvement in session handshake setup timers.
|
||||
Added EMSI handshake timers, this gives a more relaxed EMSI
|
||||
handshake.
|
||||
@ -43,6 +49,10 @@ v0.37.6 10-Aug-2003
|
||||
now even accept buggy maindoor sessions and still display a
|
||||
banner.
|
||||
|
||||
mbsetup:
|
||||
In the nodes setup a switch is added to fallback to the wrong
|
||||
binkp escape method.
|
||||
|
||||
|
||||
v0.37.5 12-Jul-2003 - 10-Aug-2003
|
||||
|
||||
|
@ -349,8 +349,6 @@ void deinitnl(void)
|
||||
if (!nlinitdone)
|
||||
return;
|
||||
|
||||
Syslog('n', "De-init nodelists");
|
||||
|
||||
tidy_nl_flag(&nl_online);
|
||||
tidy_nl_flag(&nl_request);
|
||||
tidy_nl_flag(&nl_reqbits);
|
||||
@ -362,7 +360,7 @@ void deinitnl(void)
|
||||
tidy_nl_domsuf(&nl_domsuffix);
|
||||
tidy_nl_service(&nl_service);
|
||||
|
||||
Syslog('n', "De-init done");
|
||||
Syslog('n', "De-init nodelists done");
|
||||
nlinitdone = FALSE;
|
||||
}
|
||||
|
||||
@ -526,8 +524,6 @@ int initnl(void)
|
||||
}
|
||||
|
||||
free(nlpath);
|
||||
Syslog('n', "mypots %08x myisdn %08x mytcpip %08x", mypots, myisdn, mytcpip);
|
||||
Syslog('n', "Nodelists initialize complete, rc=%d", rc);
|
||||
nlinitdone = TRUE;
|
||||
return rc;
|
||||
}
|
||||
@ -912,15 +908,15 @@ node *getnlent(faddr *addr)
|
||||
*/
|
||||
if (nodebuf.iflags & mytcpip) {
|
||||
memset(&tbuf, 0, sizeof(tbuf));
|
||||
Syslog('n', "node iflags %08x, mytcpip %08x", nodebuf.iflags, mytcpip);
|
||||
Syslog('n', "getnlent: node iflags %08x, mytcpip %08x", nodebuf.iflags, mytcpip);
|
||||
for (tmpm = &nl_tcpip; *tmpm; tmpm=&((*tmpm)->next)) {
|
||||
if ((*tmpm)->mask & nodebuf.iflags) {
|
||||
Syslog('n', "Setting %s", (*tmpm)->name);
|
||||
Syslog('n', "getnlent: best flag is %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('n', "Setting %s %d", (*tmps)->service, (*tmps)->port);
|
||||
Syslog('n', "getnlent: protocol %s at port %d", (*tmps)->service, (*tmps)->port);
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -938,38 +934,36 @@ node *getnlent(faddr *addr)
|
||||
*/
|
||||
memset(&tbuf, 0, sizeof(tbuf));
|
||||
if (ndrecord && strlen(nd.Nl_hostname)) {
|
||||
Syslog('n', "Using override %s for FQDN", nd.Nl_hostname);
|
||||
Syslog('n', "getnlent: 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('n', "Search FQDN method %s", (*tmpa)->name);
|
||||
Syslog('n', "getnlent: 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('n', "Using field3 \"%s\"", tbuf);
|
||||
Syslog('n', "getnlent: 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('n', "Found 000- prefix");
|
||||
Syslog('n', "getnlent: found 000- prefix");
|
||||
sprintf(tbuf, "%s", nodebuf.phone+4);
|
||||
for (i = 0; i < strlen(tbuf); i++)
|
||||
if (tbuf[i] == '-')
|
||||
tbuf[i] = '.';
|
||||
Syslog('n', "Using field6 \"%s\"", tbuf);
|
||||
Syslog('n', "getnlent: 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) {
|
||||
/*
|
||||
@ -1017,7 +1011,7 @@ node *getnlent(faddr *addr)
|
||||
r++;
|
||||
}
|
||||
if (*r == '*') {
|
||||
Syslog('n', "Possible default domain marking \"%s\"", MBSE_SS(r));
|
||||
Syslog('n', "getnlent: 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')
|
||||
@ -1026,17 +1020,17 @@ node *getnlent(faddr *addr)
|
||||
else
|
||||
sprintf(tbuf, "f%d.n%d.z%d.%s.%s%s", nodebuf.addr.node, nodebuf.addr.net,
|
||||
nodebuf.addr.zone, nodebuf.addr.domain, (*tmpd)->name, r);
|
||||
Syslog('n', "Will try default domain \"%s\"", tbuf);
|
||||
Syslog('n', "getnlent: 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);
|
||||
Syslog('n', "getnlent: no matching default domain found for zone %d", nodebuf.addr.zone);
|
||||
}
|
||||
if (strchr(r, '.')) {
|
||||
Syslog('n', "Found a FQDN \"%s\"", MBSE_SS(r));
|
||||
Syslog('n', "getnlent: found a FQDN \"%s\"", MBSE_SS(r));
|
||||
sprintf(tbuf, "%s", r);
|
||||
nodebuf.url = xstrcat(nodebuf.url, tbuf);
|
||||
break;
|
||||
@ -1045,16 +1039,15 @@ node *getnlent(faddr *addr)
|
||||
}
|
||||
if (strlen(tbuf))
|
||||
break;
|
||||
Syslog('n', "Field8 is not usable");
|
||||
memset(&tbuf, 0, sizeof(tbuf));
|
||||
} else if (strcasecmp((*tmpa)->name, "defdomain") == 0) {
|
||||
Syslog('n', "Trying default domain");
|
||||
Syslog('n', "getnlent: trying default domain");
|
||||
if (nodebuf.addr.domain) {
|
||||
for (tmpd = &nl_domsuffix; *tmpd; tmpd=&((*tmpd)->next)) {
|
||||
if ((*tmpd)->zone == nodebuf.addr.zone) {
|
||||
sprintf(tbuf, "f%d.n%d.z%d.%s.%s", nodebuf.addr.node, nodebuf.addr.net,
|
||||
nodebuf.addr.zone, nodebuf.addr.domain, (*tmpd)->name);
|
||||
Syslog('n', "Will try default domain \"%s\"", tbuf);
|
||||
Syslog('n', "getnlent: will try default domain \"%s\"", tbuf);
|
||||
nodebuf.url = xstrcat(nodebuf.url, tbuf);
|
||||
break;
|
||||
}
|
||||
@ -1064,14 +1057,14 @@ node *getnlent(faddr *addr)
|
||||
}
|
||||
if (strlen(tbuf))
|
||||
break;
|
||||
Syslog('n', "No matching default domain found for zone %d", nodebuf.addr.zone);
|
||||
Syslog('n', "getnlent: no matching default domain found for zone %d", nodebuf.addr.zone);
|
||||
memset(&tbuf, 0, sizeof(tbuf));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (strlen(tbuf) == 0) {
|
||||
Syslog('n', "No FQDN found, cannot call");
|
||||
Syslog('+', "getnlent: no FQDN found, cannot call");
|
||||
if (nodebuf.url)
|
||||
free(nodebuf.url);
|
||||
nodebuf.url = NULL;
|
||||
@ -1081,7 +1074,7 @@ node *getnlent(faddr *addr)
|
||||
* for this protocol.
|
||||
*/
|
||||
sprintf(tbuf, ":%lu", tport);
|
||||
Syslog('n', "Adding default port %s", tbuf);
|
||||
Syslog('n', "getnlent: adding default port %s", tbuf);
|
||||
nodebuf.url = xstrcat(nodebuf.url, tbuf);
|
||||
}
|
||||
|
||||
@ -1105,11 +1098,11 @@ node *getnlent(faddr *addr)
|
||||
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);
|
||||
olflags(nodebuf.oflags);
|
||||
rqflags(nodebuf.xflags);
|
||||
// moflags(nodebuf.mflags);
|
||||
// diflags(nodebuf.dflags);
|
||||
// ipflags(nodebuf.iflags);
|
||||
// olflags(nodebuf.oflags);
|
||||
// rqflags(nodebuf.xflags);
|
||||
free(mydomain);
|
||||
|
||||
return &nodebuf;
|
||||
|
@ -1188,7 +1188,7 @@ struct _nodes {
|
||||
unsigned ARCmailCompat : 1; /* ARCmail Compatibility */
|
||||
unsigned ARCmailAlpha : 1; /* Allow a..z ARCmail name */
|
||||
unsigned FNC : 1; /* Node needs 8.3 filenames */
|
||||
unsigned xNoITN : 1;
|
||||
unsigned WrongEscape : 1; /* Binkp wrong escape */
|
||||
unsigned xNoIFC : 1;
|
||||
|
||||
char xExtra[94];
|
||||
|
@ -244,9 +244,13 @@ char *unix2binkp(char *fn)
|
||||
if (strspn(p, (char *)BNKCHARS)) {
|
||||
*q++ = *p;
|
||||
*q = '\0';
|
||||
} else {
|
||||
if (nodes.WrongEscape) {
|
||||
sprintf(q, "\\%2x", p[0]);
|
||||
} else {
|
||||
sprintf(q, "\\x%2x", p[0]);
|
||||
}
|
||||
}
|
||||
while (*q)
|
||||
q++;
|
||||
p++;
|
||||
@ -283,7 +287,7 @@ char *binkp2unix(char *fn)
|
||||
} else {
|
||||
/*
|
||||
* If remote sends \x0a method instead of \0a, eat the x character.
|
||||
* Remotes should send the x character, But some (Argus) don't.
|
||||
* Remotes should send the x character, But some (Argus and Irex) don't.
|
||||
*/
|
||||
if ((*p == 'x') || (*p == 'X'))
|
||||
p++;
|
||||
|
@ -796,11 +796,12 @@ void SessionScreen(void)
|
||||
mvprintw(17, 6, "11. No Filerequest");
|
||||
mvprintw(18, 6, "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");
|
||||
mvprintw(18,41, "17. binkp CRC32");
|
||||
mvprintw(13,41, "13. 8.3 names");
|
||||
mvprintw(14,41, "14. No Zmodem");
|
||||
mvprintw(15,41, "15. No Zedzap");
|
||||
mvprintw(16,41, "16. No Hydra");
|
||||
mvprintw(17,41, "17. binkp CRC32");
|
||||
mvprintw(18,41, "18. binkp old esc");
|
||||
}
|
||||
|
||||
|
||||
@ -825,13 +826,14 @@ void SessionEdit(void)
|
||||
show_bool(17,26, nodes.NoFreqs);
|
||||
show_bool(18,26, 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);
|
||||
show_bool(18,61, nodes.CRC32);
|
||||
show_bool(13,61, nodes.FNC);
|
||||
show_bool(14,61, nodes.NoZmodem);
|
||||
show_bool(15,61, nodes.NoZedzap);
|
||||
show_bool(16,61, nodes.NoHydra);
|
||||
show_bool(17,61, nodes.CRC32);
|
||||
show_bool(18,61, nodes.WrongEscape);
|
||||
|
||||
switch(select_menu(17)) {
|
||||
switch(select_menu(18)) {
|
||||
case 0: return;
|
||||
case 1: E_STR( 7,26,15, nodes.Spasswd, "The ^Session password^ for this node")
|
||||
case 2: E_STR( 8,26,40, nodes.dial, "If needed, give a special modem ^dial command^ for this node")
|
||||
@ -848,11 +850,12 @@ void SessionEdit(void)
|
||||
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(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")
|
||||
case 17:E_BOOL(18,61, nodes.CRC32, "Enable ^binkp CRC32^ file transfers with this node")
|
||||
case 13:E_BOOL(13,61, 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 17:E_BOOL(17,61, nodes.CRC32, "Enable ^binkp CRC32^ file transfers with this node")
|
||||
case 18:E_BOOL(18,61, nodes.WrongEscape, "Use the ^old escape^ for long filenames (Argus, Irex)")
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -1483,18 +1486,19 @@ int node_doc(FILE *fp, FILE *toc, int page)
|
||||
fprintf(fp, " No Zedzap %s", getboolean(nodes.NoZedzap));
|
||||
fprintf(fp, " No Hydra %s", getboolean(nodes.NoHydra));
|
||||
fprintf(fp, " binkp CRC32 %s\n", getboolean(nodes.CRC32));
|
||||
fprintf(fp, " binkp old esc %s", getboolean(nodes.WrongEscape));
|
||||
fprintf(fp, " Mail forward %s", getboolean(nodes.MailFwd));
|
||||
fprintf(fp, " Check mailpwd %s", getboolean(nodes.MailPwdCheck));
|
||||
fprintf(fp, " ARCmail comp. %s\n", getboolean(nodes.ARCmailCompat));
|
||||
fprintf(fp, " Check mailpwd %s\n", getboolean(nodes.MailPwdCheck));
|
||||
fprintf(fp, " ARCmail comp. %s", getboolean(nodes.ARCmailCompat));
|
||||
fprintf(fp, " ACRmail a..z %s", getboolean(nodes.ARCmailAlpha));
|
||||
fprintf(fp, " Send message %s", getboolean(nodes.Message));
|
||||
fprintf(fp, " Send .TIC %s\n", getboolean(nodes.Tic));
|
||||
fprintf(fp, " Send message %s\n", getboolean(nodes.Message));
|
||||
fprintf(fp, " Send .TIC %s", getboolean(nodes.Tic));
|
||||
fprintf(fp, " File forward %s", getboolean(nodes.FileFwd));
|
||||
fprintf(fp, " Advanced TIC %s", getboolean(nodes.AdvTic));
|
||||
fprintf(fp, " Advanded SB %s\n", getboolean(nodes.TIC_AdvSB));
|
||||
fprintf(fp, " Advanced TIC %s\n", getboolean(nodes.AdvTic));
|
||||
fprintf(fp, " Advanded SB %s", getboolean(nodes.TIC_AdvSB));
|
||||
fprintf(fp, " Sent To lines %s", getboolean(nodes.TIC_To));
|
||||
fprintf(fp, " Billing %s", getboolean(nodes.Billing));
|
||||
fprintf(fp, " Bill direct %s\n", getboolean(nodes.BillDirect));
|
||||
fprintf(fp, " Billing %s\n", getboolean(nodes.Billing));
|
||||
fprintf(fp, " Bill direct %s", getboolean(nodes.BillDirect));
|
||||
fprintf(fp, " Uplink add + %s\n", getboolean(nodes.AddPlus));
|
||||
fprintf(fp, " Security flags %s\n\n", getflag(nodes.Security.flags, nodes.Security.notflags));
|
||||
|
||||
|
Reference in New Issue
Block a user