diff --git a/ChangeLog b/ChangeLog index a2cf66bf..37fe9826 100644 --- a/ChangeLog +++ b/ChangeLog @@ -10,12 +10,17 @@ v0.37.5 12-Jul-2003 upgrade: Check settings menu 1.5.21 for maximum allowed logins. + global: + Added switches for binkp CRC mode in global and node records. + common.a: Node locking tests for non-stale lockfiles older then 6 hours. Added general code for prgram locking. mbcico: Implemented CRAM rev.4 change in binkp driver. + Binkp now reports binkp 1.1, we were 1.1 compatible for a long + time already. mbsebbs: Added check for maximum simultaneous logins. @@ -29,6 +34,10 @@ v0.37.5 12-Jul-2003 Added menu entry 1.5.21 for setting maximum allowed logins. Added program locking, only one mbsetup can run at the same time. + In menu 1.14 added global switch to disable binkp CRC32 file + transfers. + In menu 7.x.3 added a switch to enable binkp CRC32 file + transfers with this node. mbtask: On new installations sets max logins to 1. diff --git a/lib/structs.h b/lib/structs.h index 5bea43e7..8a0c9951 100644 --- a/lib/structs.h +++ b/lib/structs.h @@ -718,7 +718,7 @@ struct sysconfig { unsigned NoFreqs : 1; /* Don't allow requests */ unsigned NoCall : 1; /* Don't call */ unsigned NoMD5 : 1; /* Don't do MD5 */ - unsigned xNoPUA : 1; + unsigned NoCRC32 : 1; /* Don't do CRC32 */ unsigned NoEMSI : 1; /* Don't do EMSI */ unsigned NoWazoo : 1; /* Don't do Yooho/2U2 */ unsigned NoZmodem : 1; /* Don't do Zmodem */ @@ -1183,7 +1183,7 @@ struct _nodes { unsigned xNoJanus : 1; /* Don't use Janus */ unsigned NoHydra : 1; /* Don't use Hydra */ - unsigned xNoIBN : 1; + unsigned CRC32 : 1; /* Allow binkp CRC32 */ unsigned PackNetmail : 1; /* Pack netmail */ unsigned ARCmailCompat : 1; /* ARCmail Compatibility */ unsigned ARCmailAlpha : 1; /* Allow a..z ARCmail name */ diff --git a/mbcico/binkp.c b/mbcico/binkp.c index 81f0deb0..7dfc476d 100644 --- a/mbcico/binkp.c +++ b/mbcico/binkp.c @@ -425,7 +425,7 @@ void b_banner(void) binkp_send_control(MM_NUL,"NDL %s", CFG.Flags); t = time(NULL); binkp_send_control(MM_NUL,"TIME %s", rfcdate(t)); - binkp_send_control(MM_NUL,"VER mbcico/%s/%s-%s binkp/1.0", VERSION, OsName(), OsCPU()); + binkp_send_control(MM_NUL,"VER mbcico/%s/%s-%s binkp/1.1", VERSION, OsName(), OsCPU()); if (strlen(CFG.Phone)) binkp_send_control(MM_NUL,"PHN %s", CFG.Phone); if (strlen(CFG.comment)) @@ -481,7 +481,7 @@ void b_nul(char *msg) } if (strstr(msg, (char *)"CRC") != NULL) { CRCflag = TRUE; - Syslog('+', "Switching to CRC32 mode"); + Syslog('+', "Remote supports CRC32 mode"); } } else Syslog('+', "M_NUL \"%s\"", msg); @@ -832,7 +832,8 @@ SM_STATE(waitaddr) } if (CRCflag) { Syslog('b', "Remote supports CRC32"); - binkp_send_control(MM_NUL,"OPT CRC"); + if (Loaded && nodes.CRC32) + binkp_send_control(MM_NUL,"OPT CRC"); } history.aka.zone = remote->addr->zone; diff --git a/mbsetup/m_global.c b/mbsetup/m_global.c index 25c82374..932a30d7 100644 --- a/mbsetup/m_global.c +++ b/mbsetup/m_global.c @@ -1225,29 +1225,30 @@ void s_mailer(void) mvprintw(16, 2, "10. No EMSI session"); mvprintw(17, 2, "11. No Yooho/2U2"); - mvprintw(14,31, "12. No Zmodem"); - mvprintw(15,31, "13. No Zedzap"); - mvprintw(16,31, "14. No Hydra"); - mvprintw(17,31, "15. No MD5"); + mvprintw(13,31, "12. No Zmodem"); + mvprintw(14,31, "13. No Zedzap"); + mvprintw(15,31, "14. No Hydra"); + mvprintw(16,31, "15. No MD5"); + mvprintw(17,31, "16. No CRC32"); - mvprintw(12,59, "16. Phonetrans 1-10"); - mvprintw(13,59, "17. Phonetrans 11-20"); - mvprintw(14,59, "18. Phonetrans 21-30"); - mvprintw(15,59, "19. Phonetrans 31-40"); - mvprintw(16,59, "20. Max. files"); - mvprintw(17,59, "21. Max. MB."); + mvprintw(12,59, "17. Phonetrans 1-10"); + mvprintw(13,59, "18. Phonetrans 11-20"); + mvprintw(14,59, "19. Phonetrans 21-30"); + mvprintw(15,59, "20. Phonetrans 31-40"); + mvprintw(16,59, "21. Max. files"); + mvprintw(17,59, "22. Max. MB."); } -void e_trans(int start) +void e_trans(int start, int item) { int i, j; char temp[21]; clr_index(); set_color(WHITE, BLACK); - mvprintw( 5, 6, "1.14 EDIT PHONE TRANSLATION"); + mvprintw( 5, 6, "1.14.%d EDIT PHONE TRANSLATION", item); set_color(CYAN, BLACK); mvprintw( 7, 12, "String to match String to replace"); for (i = 0; i < 10; i++) { @@ -1275,60 +1276,58 @@ void e_trans(int start) void e_mailer(void) { - s_mailer(); - for (;;) { - set_color(WHITE, BLACK); - show_logl( 7,23, CFG.cico_loglevel); - show_str( 8,23,20,CFG.Phone); - show_str( 9,23,30,CFG.Flags); - show_int( 10,23, CFG.Speed); - show_int( 11,23, CFG.timeoutreset); - show_int( 12,23, CFG.timeoutconnect); - show_int( 13,23, CFG.dialdelay); - show_bool(14,23, CFG.NoFreqs); - show_bool(15,23, CFG.NoCall); - show_bool(16,23, CFG.NoEMSI); - show_bool(17,23, CFG.NoWazoo); + s_mailer(); + for (;;) { + set_color(WHITE, BLACK); + show_logl( 7,23, CFG.cico_loglevel); + show_str( 8,23,20,CFG.Phone); + show_str( 9,23,30,CFG.Flags); + show_int( 10,23, CFG.Speed); + show_int( 11,23, CFG.timeoutreset); + show_int( 12,23, CFG.timeoutconnect); + show_int( 13,23, CFG.dialdelay); + show_bool(14,23, CFG.NoFreqs); + show_bool(15,23, CFG.NoCall); + show_bool(16,23, CFG.NoEMSI); + show_bool(17,23, CFG.NoWazoo); - show_bool(14,52, CFG.NoZmodem); - show_bool(15,52, CFG.NoZedzap); - show_bool(16,52, CFG.NoHydra); - show_bool(17,52, CFG.NoMD5); + show_bool(13,52, CFG.NoZmodem); + show_bool(14,52, CFG.NoZedzap); + show_bool(15,52, CFG.NoHydra); + show_bool(16,52, CFG.NoMD5); + show_bool(17,52, CFG.NoCRC32); - show_int( 16,75, CFG.Req_Files); - show_int( 17,75, CFG.Req_MBytes); + show_int( 16,75, CFG.Req_Files); + show_int( 17,75, CFG.Req_MBytes); - switch(select_menu(21)) { - case 0: return; - case 1: E_LOGL(CFG.cico_loglevel, "1.14.1", s_mailer) - case 2: E_STR( 8,23,20,CFG.Phone, "The mailer default ^phone number^ for this system") - case 3: E_STR( 9,23,30,CFG.Flags, "The mailer ^TCP/IP capability flags^ for this system") - case 4: E_INT( 10,23, CFG.Speed, "The mailer ^default linespeed^ for this system") - case 5: E_INT( 11,23, CFG.timeoutreset, "The modem ^reset timeout^ in seconds") - case 6: E_INT( 12,23, CFG.timeoutconnect, "The modem ^wait for connect timeout^ in seconds") - case 7: E_INT( 13,23, CFG.dialdelay, "The ^random dialdelay^ in seconds ((^n^ <= delay) and (^n^ > (delay / 10)))") - case 8: E_BOOL(14,23, CFG.NoFreqs, "Set to true if ^No Filerequests^ are allowed") - case 9: E_BOOL(15,23, CFG.NoCall, "Set to true if ^No Calls^ are allowed") - 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") + switch(select_menu(22)) { + case 0: return; + case 1: E_LOGL(CFG.cico_loglevel, "1.14.1", s_mailer) + case 2: E_STR( 8,23,20,CFG.Phone, "The mailer default ^phone number^ for this system") + case 3: E_STR( 9,23,30,CFG.Flags, "The mailer ^TCP/IP capability flags^ for this system") + case 4: E_INT( 10,23, CFG.Speed, "The mailer ^default linespeed^ for this system") + case 5: E_INT( 11,23, CFG.timeoutreset, "The modem ^reset timeout^ in seconds") + case 6: E_INT( 12,23, CFG.timeoutconnect, "The modem ^wait for connect timeout^ in seconds") + case 7: E_INT( 13,23, CFG.dialdelay, "The ^random dialdelay^ in seconds ((^n^ <= delay) and (^n^ > (delay / 10)))") + case 8: E_BOOL(14,23, CFG.NoFreqs, "Set to true if ^No Filerequests^ are allowed") + case 9: E_BOOL(15,23, CFG.NoCall, "Set to true if ^No Calls^ are allowed") + 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(14,52, CFG.NoZmodem, "If set then the ^Zmodem^ protocol is disabled") - case 13:E_BOOL(15,52, CFG.NoZedzap, "If set then the ^Zedzap^ protocol is disabled") - case 14:E_BOOL(16,52, CFG.NoHydra, "If set then the ^Hydra^ protocol is disabled") - case 15:E_BOOL(17,52, CFG.NoMD5, "If set then no ^MD5 crypted^ passwords are used with binkp sessions") + case 12:E_BOOL(13,52, CFG.NoZmodem, "If set then the ^Zmodem^ protocol is disabled") + case 13:E_BOOL(14,52, CFG.NoZedzap, "If set then the ^Zedzap^ protocol is disabled") + case 14:E_BOOL(15,52, CFG.NoHydra, "If set then the ^Hydra^ protocol is disabled") + case 15:E_BOOL(16,52, CFG.NoMD5, "Disable ^MD5 crypted^ passwords with binkp sessions") + case 16:E_BOOL(17,52, CFG.NoCRC32, "Disable ^CRC32^ file transfers with binkp sessions") - case 16:e_trans(0); - break; - case 17:e_trans(10); - break; - case 18:e_trans(20); - break; - case 19:e_trans(30); - break; - case 20:E_INT(16,75, CFG.Req_Files, "Maximum ^files^ to request, 0 is unlimited") - case 21:E_INT(17,75, CFG.Req_MBytes, "Maximum ^MBytes^ to request, 0 is unlimited") - } - }; + case 17:e_trans(0, 17); break; + case 18:e_trans(10, 18); break; + case 19:e_trans(20, 19); break; + case 20:e_trans(30, 20); break; + case 21:E_INT(16,75, CFG.Req_Files, "Maximum ^files^ to request, 0 is unlimited") + case 22:E_INT(17,75, CFG.Req_MBytes, "Maximum ^MBytes^ to request, 0 is unlimited") + } + } } @@ -1912,6 +1911,7 @@ int global_doc(FILE *fp, FILE *toc, int page) fprintf(fp, " No Zedzap %s\n", getboolean(CFG.NoZedzap)); fprintf(fp, " No Hydra %s\n", getboolean(CFG.NoHydra)); fprintf(fp, " No MD5 passwords %s\n", getboolean(CFG.NoMD5)); + fprintf(fp, " No CRC32 transfers %s\n", getboolean(CFG.NoCRC32)); fprintf(fp, " Max request files %d\n", CFG.Req_Files); fprintf(fp, " Max request MBytes %d\n", CFG.Req_MBytes); diff --git a/mbsetup/m_node.c b/mbsetup/m_node.c index 379324a2..b285ceb7 100644 --- a/mbsetup/m_node.c +++ b/mbsetup/m_node.c @@ -795,12 +795,13 @@ 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(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"); + mvprintw(18,41, "17. binkp CRC32"); } @@ -823,14 +824,15 @@ void SessionEdit(void) show_bool(15,26, nodes.NoEMSI); show_bool(16,26, nodes.NoWaZOO); show_bool(17,26, nodes.NoFreqs); - - show_bool(13,61, nodes.NoCall); + 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); - switch(select_menu(16)) { + switch(select_menu(17)) { 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") @@ -845,12 +847,13 @@ 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 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") + case 17:E_BOOL(18,61, nodes.CRC32, "Enable ^binkp CRC32^ file transfers with this node") } } } @@ -1480,18 +1483,19 @@ int node_doc(FILE *fp, FILE *toc, int page) fprintf(fp, " No Zmodem %s\n", getboolean(nodes.NoZmodem)); fprintf(fp, " No Zedzap %s", getboolean(nodes.NoZedzap)); fprintf(fp, " No Hydra %s", getboolean(nodes.NoHydra)); - fprintf(fp, " Mail forward %s\n", getboolean(nodes.MailFwd)); + fprintf(fp, " binkp CRC32 %s\n", getboolean(nodes.CRC32)); + fprintf(fp, " Mail forward %s", getboolean(nodes.MailFwd)); fprintf(fp, " Check mailpwd %s", getboolean(nodes.MailPwdCheck)); - fprintf(fp, " ARCmail comp. %s", getboolean(nodes.ARCmailCompat)); - fprintf(fp, " ACRmail a..z %s\n", getboolean(nodes.ARCmailAlpha)); + fprintf(fp, " ARCmail comp. %s\n", 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", getboolean(nodes.Tic)); - fprintf(fp, " File forward %s\n", getboolean(nodes.FileFwd)); + fprintf(fp, " Send .TIC %s\n", getboolean(nodes.Tic)); + fprintf(fp, " File forward %s", getboolean(nodes.FileFwd)); fprintf(fp, " Advanced TIC %s", getboolean(nodes.AdvTic)); - fprintf(fp, " Advanded SB %s", getboolean(nodes.TIC_AdvSB)); - fprintf(fp, " Sent To lines %s\n", getboolean(nodes.TIC_To)); + fprintf(fp, " Advanded SB %s\n", 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", getboolean(nodes.BillDirect)); + fprintf(fp, " Bill direct %s\n", 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));