v1.0.4 Release - 2014-09-05 - Andrew Leary.
- Added Binkp CRC support (FSP-1020). - Changed the "No Binkp/1.1" setting for nodes to only be effective on outgoing calls. It was causing issues for other mailers (including BinkD) on incoming calls because mbcico was reporting Binkp/1.1 in the VER string but then falling back to Binkp/1.0. - Updated the Internet Rex Binkp/1.1 bug workaround to reflect that versions 2.31 and 2.67 are also affected.
This commit is contained in:
parent
4e4431f755
commit
880eb115d4
4
AUTHORS
4
AUTHORS
@ -40,7 +40,7 @@ NERvOus nervous@nervous.it
|
||||
Bobby Cabral bobbyc@digitelone.com
|
||||
Johannes Beekhuizen 2:280/1018@fidonet
|
||||
Lukas De Groen 2:280/1027@fidonet
|
||||
Vince Coen 2:257/609@fidonet
|
||||
Vincent Coen vbcoen@gmail.com 2:250/1@fidonet
|
||||
Joachim Kuwan 2:249/591@fidonet
|
||||
Greek greek@voyager.nnov.ru
|
||||
Sergey Nechaev 2:5015/53@fidonet
|
||||
@ -57,4 +57,4 @@ val khokhlov 2:550/180@fidonet
|
||||
Robert Wolfe 1:2613/4307@fidonet
|
||||
Alan Ianson
|
||||
Simon Voortman 2:280/1049.1@fidonet
|
||||
|
||||
Andrew Leary 1:320/219@fidonet
|
||||
|
109
ChangeLog
109
ChangeLog
@ -1,8 +1,109 @@
|
||||
v1.0.1
|
||||
Fixed packaging and compiling the correct ftscprod.012
|
||||
file.
|
||||
v1.0.4 03-Sep-2014 - Andrew Leary
|
||||
|
||||
v1.0.0
|
||||
1. Reverted Vince Coen's packaging changes until an upgrade
|
||||
script can be written and tested.
|
||||
2. Added Binkp CRC support (FSP-1020) to mbcico.
|
||||
3. Changed the No Binkp/1.1 setting for nodes to be
|
||||
effective on outbound calls only. It was causing issues
|
||||
with other mailers (including BinkD) on inbound calls,
|
||||
because mbcico was reporting binkp/1.1 in the VER string and
|
||||
then downshifting to binkp/1.0.
|
||||
4. Updated the Internet Rex binkp/1.1 bug workaround to
|
||||
reflect that versions 2.31 and 2.67 are also affected.
|
||||
|
||||
v1.0.3 13-Jun-2014 - Vincent Coen
|
||||
|
||||
1. Changed unix/mbuseradd.c
|
||||
Added extra arg to useradd -p 12345 to avoid a locked
|
||||
record under Mageia v4 that prevents the password
|
||||
adding a record due to a file busy may be: Lets see.
|
||||
No it is not so reverted back.
|
||||
|
||||
2. Still looking for cause of bug.
|
||||
|
||||
v1.0.2 14-Mar-2014 - Vincent Coen
|
||||
|
||||
Changed packaging to use /home/mbse instead of /opt/mbse
|
||||
to suit users with a seperate / and a /home partitions.
|
||||
|
||||
IT DOES NOT CHANGE THE RESULTS FOR AN EXISTING INSTALL
|
||||
WHERE mbse & bbs users are set up to use /opt/mbse.
|
||||
|
||||
YOU WILL HAVE TO DO THIS MANUALLY.
|
||||
The supplied INSTALL script has been changed.
|
||||
|
||||
To do this you will need to change:
|
||||
1. Users mbse, bbs and all bbs users to reflect the change
|
||||
of home directory from /opt/mbse to /home/mbse using your
|
||||
distro's graphic system editing tool for users or if not
|
||||
available use usermod via sudo etc:
|
||||
usermod -m -d /home/mbse mbse
|
||||
usermod -m -d /home/mbse/home/bbs bbs
|
||||
usermod -m -d /home/mbse/home/user-name bbs user-name
|
||||
|
||||
Note that the '-m' option in usermod option is to move the
|
||||
contents from the existing to the new location.
|
||||
|
||||
You can see the list of bbs users by running:
|
||||
ls -la /opt/mbse/home
|
||||
|
||||
|
||||
2. Using your favourite editor Change
|
||||
/etc/services and
|
||||
/etc/xinetd.d/mbsebbs
|
||||
|
||||
Replacing all instances of /opt/mbse with
|
||||
/home/mbse
|
||||
|
||||
3. Now do the same with http and ftp config files in
|
||||
/etc/httpd/conf/httpd.conf and
|
||||
/etc/proftpd/proftpd.conf (or whatever ftp & web service
|
||||
you use.
|
||||
|
||||
4. Having installed/upgraded the mbse system you must
|
||||
reboot the system or stop and start mbse, xinetd, ftp,
|
||||
httpd etc
|
||||
services. It is easier just shuting down and starting
|
||||
the system.
|
||||
|
||||
5. As su run cp -ap /opt/mbse /home
|
||||
|
||||
6. If not already done so, build the system using the usual
|
||||
./configure & make and now run make install as su or if
|
||||
not available do, sudo bash then su then make install
|
||||
|
||||
7. Change all crontab processes that deal with mbse both as
|
||||
user mbse and root to reflect new directory using:
|
||||
crontab -l to see what is current and then as crontab -e
|
||||
to edit.
|
||||
|
||||
8. After rebooting the system check everything is working
|
||||
Then I would suggest renaming /opt/mbse say from /opt/mbse
|
||||
/opt/old-mbse and leave it a few days before deleting when
|
||||
you are SURE that all is working.
|
||||
|
||||
9. Now when you change the /boot partition or install a new
|
||||
version of your distro you can continue to use your /home
|
||||
as is but do not forget to recreate the crontab, xinetd,
|
||||
rc.d/init.d/mbseb etc as needed by using cp -vp from the
|
||||
old partition to the new or failing that create a modified
|
||||
version of SETUP.sh as needed and run it.
|
||||
|
||||
...........NOW READ THE ABOVE, AGAIN..................
|
||||
|
||||
lib/
|
||||
libmbse.a:
|
||||
Replaced ftscprod.014 with ftscprod.016
|
||||
|
||||
|
||||
v1.0.1 Dec 2013 - Vincent Coen
|
||||
|
||||
lib/
|
||||
libmbse.a:
|
||||
Fixed packaging and compiling the correct ftscprod
|
||||
file to ftscprod.014.
|
||||
|
||||
v1.0.0 Dec 2013?
|
||||
This is the last version of mbsebbs submitted by me,
|
||||
Michiel.
|
||||
|
||||
|
@ -17,8 +17,8 @@ Internal mail format is JAM (c) messagebase.
|
||||
Full tic file support, including extended
|
||||
tic files.
|
||||
OS: GNU/Linux and *BSD, 32/64 bit versions.
|
||||
Originating sites 2:280/2802@fidonet and
|
||||
http://www.mbse.eu/
|
||||
http://sourceforge.net/projects/mbsebbs
|
||||
Copyright by Michiel Broek.
|
||||
Released under the terms of the GNU Public
|
||||
License.
|
||||
|
||||
|
6
configure
vendored
6
configure
vendored
@ -2309,10 +2309,10 @@ SUBDIRS="lib mbcico mbfido mbmon mbsebbs mbutils mbnntp mbtask mbsetup unix lang
|
||||
PACKAGE="mbsebbs"
|
||||
MAJOR="1"
|
||||
MINOR="0"
|
||||
REVISION="1"
|
||||
REVISION="4"
|
||||
VERSION="$MAJOR.$MINOR.$REVISION"
|
||||
COPYRIGHT="Copyright (C) 1997-2013 Michiel Broek, All Rights Reserved"
|
||||
SHORTRIGHT="Copyright (C) 1997-2013 M. Broek"
|
||||
COPYRIGHT="Copyright (C) 1997-2014 Michiel Broek, All Rights Reserved"
|
||||
SHORTRIGHT="Copyright (C) 1997-2014 M. Broek"
|
||||
GROUP="bbs"
|
||||
OWNER="mbse"
|
||||
ROWNER="`id -un root`"
|
||||
|
@ -12,10 +12,10 @@ AC_SUBST(SUBDIRS)
|
||||
PACKAGE="mbsebbs"
|
||||
MAJOR="1"
|
||||
MINOR="0"
|
||||
REVISION="1"
|
||||
REVISION="4"
|
||||
VERSION="$MAJOR.$MINOR.$REVISION"
|
||||
COPYRIGHT="Copyright (C) 1997-2013 Michiel Broek, All Rights Reserved"
|
||||
SHORTRIGHT="Copyright (C) 1997-2013 M. Broek"
|
||||
COPYRIGHT="Copyright (C) 1997-2014 Michiel Broek, All Rights Reserved"
|
||||
SHORTRIGHT="Copyright (C) 1997-2014 M. Broek"
|
||||
GROUP="bbs"
|
||||
OWNER="mbse"
|
||||
ROWNER="`id -un root`"
|
||||
|
@ -296,3 +296,7 @@
|
||||
16FF,RNtrack,Linux/BSD/AIX/Solaris/MacOSX/OS2/DOS/Win32,Packer,Alex_Soukhotine,2:5030/1157,20050115
|
||||
17FF,Msg2Pkt,DOS/OS2/Win32,Packer/Tools/ClpLib,Ulrich_Schroeter,2:244/1120,20080607
|
||||
18FF,Marena,DOS,Repacker/Echotag_renamer,Michiel_van_der_Vlist,2:280/5555,20080608
|
||||
19FF,jNode,Java_Virtual_Machine,Binkp_mailer/tosser/tracker,Ivan_Agarkov,2:5020/848,20120921
|
||||
1AFF,mfreq,Linux,File_Request_Processor,Markus_Reschke,2:240/1661,20131116
|
||||
1BFF,AfterShock,Android_>=V2.3,Binkp_Mailer/Tosser/Editor,Anatoly_Vdovichev,2:5000/26.180,20131128
|
||||
1CFF,FTN::Packet,Perl,Tosser,Robert_James_Clay,1:120/419,20131219
|
@ -1188,7 +1188,7 @@ struct sysconfig {
|
||||
unsigned NoFreqs : 1; /* Don't allow requests */
|
||||
unsigned NoCall : 1; /* Don't call */
|
||||
unsigned NoMD5 : 1; /* Don't do MD5 */
|
||||
unsigned xNoCRC32 : 1;
|
||||
unsigned NoCRC32 : 1; /* Don't do Binkp CRC32 */
|
||||
unsigned NoEMSI : 1; /* Don't do EMSI */
|
||||
unsigned NoWazoo : 1; /* Don't do Yooho/2U2 */
|
||||
unsigned NoZmodem : 1; /* Don't do Zmodem */
|
||||
@ -1737,6 +1737,7 @@ struct _nodes {
|
||||
unsigned Dir_in_waitclr : 1; /* Inbound wait for clear */
|
||||
unsigned Dir_in_mklck : 1; /* Inbound create lock */
|
||||
unsigned Tic4d : 1; /* 4d addresses in ticfile */
|
||||
unsigned DoCRC : 1; /* Enable Binkp CRC check */
|
||||
|
||||
/* FTP transfers */
|
||||
char FTP_site[65]; /* Site name or IP address */
|
||||
|
@ -11,7 +11,7 @@ SRCS = zmmisc.c zmrle.c zmrecv.c zmsend.c binkp.c md5b.c \
|
||||
recvbark.c respfreq.c sendbark.c tcp.c tcpproto.c wazoo.c \
|
||||
filetime.c ftsc.c atoul.c portsel.c telnet.c bopenfile.c \
|
||||
ttyio.c lutil.c scanout.c emsi.c ulock.c dirlock.c \
|
||||
callstat.c session.c call.c mbcico.c \
|
||||
callstat.c session.c call.c htoul.c mbcico.c \
|
||||
outstat.c nlinfo.c mbout.c
|
||||
HDRS = zmodem.h binkp.h config.h statetbl.h md5b.h \
|
||||
xmsend.h xmrecv.h m7recv.h m7send.h hydra.h inbound.h \
|
||||
@ -20,7 +20,7 @@ HDRS = zmodem.h binkp.h config.h statetbl.h md5b.h \
|
||||
recvbark.h respfreq.h sendbark.h tcp.h tcpproto.h wazoo.h \
|
||||
filetime.h ftsc.h atoul.h portsel.h telnet.h bopenfile.h \
|
||||
ttyio.h lutil.h scanout.h emsi.h ulock.h dirlock.h \
|
||||
callstat.h session.h call.h mbcico.h \
|
||||
callstat.h session.h call.h htoul.h mbcico.h \
|
||||
outstat.h nlinfo.h
|
||||
MBCICO_OBJS = zmmisc.o zmrle.o zmrecv.o zmsend.o binkp.o md5b.o \
|
||||
xmsend.o xmrecv.o m7recv.o m7send.o hydra.o inbound.o \
|
||||
@ -29,7 +29,7 @@ MBCICO_OBJS = zmmisc.o zmrle.o zmrecv.o zmsend.o binkp.o md5b.o \
|
||||
recvbark.o respfreq.o sendbark.o tcp.o tcpproto.o wazoo.o \
|
||||
filetime.o ftsc.o atoul.o portsel.o telnet.o bopenfile.o \
|
||||
ttyio.o lutil.o scanout.o emsi.o ulock.o dirlock.o \
|
||||
callstat.o session.o call.o mbcico.o
|
||||
callstat.o session.o call.o htoul.o mbcico.o
|
||||
MBOUT_OBJS = outstat.o nlinfo.o mbout.o scanout.o callstat.o
|
||||
SLIBS = ../lib/libmbse.a ../lib/libmsgbase.a ../lib/libdbase.a ../lib/libnodelist.a
|
||||
OTHER = Makefile README
|
||||
@ -130,6 +130,7 @@ dirlock.o: ../config.h ../lib/mbselib.h dirlock.h
|
||||
callstat.o: ../config.h ../lib/mbselib.h callstat.h
|
||||
session.o: ../config.h ../lib/mbselib.h ../lib/nodelist.h ttyio.h statetbl.h emsi.h ftsc.h session.h yoohoo.h mbcico.h binkp.h callstat.h inbound.h opentcp.h telnet.h
|
||||
call.o: ../config.h ../lib/mbselib.h ../lib/users.h ../lib/nodelist.h ../lib/mbsedb.h session.h callstat.h call.h config.h dial.h lutil.h portsel.h openport.h opentcp.h rdoptions.h inbound.h
|
||||
htoul.o: ../config.h ../lib/mbselib.h htoul.h
|
||||
mbcico.o: ../config.h ../lib/mbselib.h ../lib/nodelist.h ../lib/users.h ../lib/mbsedb.h config.h answer.h call.h lutil.h mbcico.h session.h binkp.h
|
||||
outstat.o: ../config.h ../lib/mbselib.h ../lib/nodelist.h ../lib/users.h ../lib/mbsedb.h scanout.h callstat.h outstat.h
|
||||
nlinfo.o: ../config.h ../lib/mbselib.h ../lib/nodelist.h nlinfo.h
|
||||
|
102
mbcico/binkp.c
102
mbcico/binkp.c
@ -161,6 +161,8 @@ struct binkprec {
|
||||
int rxcompressed; /* Receiver compressed bytes */
|
||||
char *ropts; /* Receiver M_FILE optional args */
|
||||
int rmode; /* Receiver compression mode */
|
||||
int rcrc32; /* Receiver file crc32 */
|
||||
int rcrcerr; /* Receiver CRC error count */
|
||||
|
||||
struct timezone tz; /* Timezone */
|
||||
|
||||
@ -197,12 +199,15 @@ struct binkprec {
|
||||
int BZ2we; /* BZ2 compression flag */
|
||||
int BZ2they;
|
||||
#endif
|
||||
|
||||
int NRwe; /* NR mode */
|
||||
int NRthey;
|
||||
int NDwe; /* ND mode */
|
||||
int NDthey;
|
||||
int NDAwe; /* NDA mode */
|
||||
int NDAthey;
|
||||
int CRCwe; /* CRC mode */
|
||||
int CRCthey;
|
||||
};
|
||||
|
||||
|
||||
@ -236,7 +241,7 @@ char *binkp2unix(char *); /* Unix -> Binkp escape */
|
||||
void fill_binkp_list(binkp_list **, file_list *, off_t); /* Build pending files */
|
||||
int binkp_pendingfiles(void); /* Count pending files */
|
||||
void binkp_clear_filelist(int); /* Clear current filelist */
|
||||
|
||||
unsigned int htoul(char *); /* Convert ASCII hex to uns int */
|
||||
static int orgbinkp(void); /* Originate session state */
|
||||
static int ansbinkp(void); /* Answer session state */
|
||||
static int file_transfer(void); /* File transfer state */
|
||||
@ -264,6 +269,7 @@ int binkp(int role)
|
||||
bp.txbuf = calloc(MAX_BLKSIZE + 3, sizeof(unsigned char));
|
||||
bp.rname = calloc(512, sizeof(char));
|
||||
bp.ropts = calloc(512, sizeof(char));
|
||||
bp.rcrcerr = 0;
|
||||
bp.rxfp = NULL;
|
||||
bp.local_EOB = FALSE;
|
||||
bp.remote_EOB = FALSE;
|
||||
@ -300,6 +306,10 @@ int binkp(int role)
|
||||
bp.NRwe = Can;
|
||||
else
|
||||
bp.NRwe = Want;
|
||||
if (localoptions & NOCRC)
|
||||
bp.CRCthey = bp.CRCwe = No;
|
||||
else
|
||||
bp.CRCthey = bp.CRCwe = Can;
|
||||
bp.NRthey = Can;
|
||||
bp.NDwe = No;
|
||||
bp.NDthey = No;
|
||||
@ -321,7 +331,7 @@ int binkp(int role)
|
||||
goto binkpend;
|
||||
}
|
||||
|
||||
if (((Loaded && nodes.NoBinkp11) || bp.buggyIrex) && (bp.Major == 1) && (bp.Minor != 0)) {
|
||||
if ((bp.buggyIrex) && (bp.Major == 1) && (bp.Minor != 0)) {
|
||||
Syslog('+', "Binkp: forcing downgrade to binkp/1.0 protocol");
|
||||
bp.Major = 1;
|
||||
bp.Minor = 0;
|
||||
@ -705,6 +715,14 @@ SM_STATE(WaitConn)
|
||||
}
|
||||
}
|
||||
|
||||
if (!CFG.NoCRC32) {
|
||||
char s[8]; /* Send OPT CRC if it's not disabled. */
|
||||
strcpy(s, "OPT CRC");
|
||||
if ((rc = binkp_send_command(MM_NUL, "%s", s))) {
|
||||
SM_ERROR;
|
||||
}
|
||||
}
|
||||
|
||||
if ((rc = binkp_banner(FALSE))) {
|
||||
SM_ERROR;
|
||||
}
|
||||
@ -935,6 +953,10 @@ SM_STATE(Opts)
|
||||
Syslog('b', "Binkp: no PLZ compression for this node");
|
||||
}
|
||||
#endif
|
||||
if (localoptions & NOCRC) {
|
||||
bp.CRCwe = bp.CRCthey = No;
|
||||
Syslog('b', "Binkp: no CRC mode for this node");
|
||||
}
|
||||
|
||||
binkp_send_comp_opts(FALSE);
|
||||
binkp_set_comp_state();
|
||||
@ -1061,6 +1083,7 @@ TrType binkp_receiver(void)
|
||||
off_t rxbytes;
|
||||
int bcmd, rc = 0;
|
||||
int rc1 = 0, nget = bp.blklen, zavail, nput;
|
||||
int rc2 = 0;
|
||||
char zbuf[ZBLKSIZE];
|
||||
char *buf = bp.rxbuf;
|
||||
|
||||
@ -1148,6 +1171,13 @@ TrType binkp_receiver(void)
|
||||
bp.rmode = CompGZ;
|
||||
else if (strcmp((char *)"BZ2", bp.ropts) == 0)
|
||||
bp.rmode = CompBZ2;
|
||||
if (bp.CRCthey == Active) {
|
||||
bp.rcrc32 = htoul(bp.ropts);
|
||||
if (bp.rcrc32 == 0xffffffff) {
|
||||
Syslog('b', "Binkp: No CRC in M_FILE - disabling CRC check");
|
||||
bp.CRCthey = bp.CRCwe = No;
|
||||
}
|
||||
}
|
||||
} else {
|
||||
/*
|
||||
* Corrupted command, in case this was serious, send the M_GOT back so it's
|
||||
@ -1219,7 +1249,7 @@ TrType binkp_receiver(void)
|
||||
if ((bp.rsize / (sfs.f_bsize + 1)) >= sfs.f_bfree) {
|
||||
Syslog('!', "Binkp: only %u blocks free (need %u) in %s for this file", sfs.f_bfree,
|
||||
(unsigned int)(bp.rsize / (sfs.f_bsize + 1)), tempinbound);
|
||||
bclosefile(FALSE);
|
||||
bclosefile(FALSE, FALSE, 0);
|
||||
bp.rxfp = NULL; /* Force SKIP command */
|
||||
}
|
||||
}
|
||||
@ -1290,7 +1320,7 @@ TrType binkp_receiver(void)
|
||||
return Ok;
|
||||
} else if (bcmd == MM_FILE) {
|
||||
Syslog('+', "Binkp: partial received file, saving");
|
||||
bclosefile(FALSE);
|
||||
bclosefile(FALSE, FALSE, 0);
|
||||
bp.rxfp = NULL;
|
||||
bp.RxState = RxAccF;
|
||||
return Continue;
|
||||
@ -1378,8 +1408,28 @@ TrType binkp_receiver(void)
|
||||
bp.rxpos += written;
|
||||
|
||||
if (bp.rxpos == bp.rsize) {
|
||||
rc2 = bclosefile(TRUE, (bp.CRCwe == Active), bp.rcrc32);
|
||||
if (rc2) {
|
||||
if (rc2 == 2) {
|
||||
bp.rcrcerr++;
|
||||
if (bp.rcrcerr == 1) {
|
||||
/* First CRC error */
|
||||
rc = binkp_send_command(MM_SKIP, "%s %ld %ld", bp.rname, bp.rsize, bp.rtime);
|
||||
bp.RxState = RxWaitF;
|
||||
if (rc)
|
||||
return Failure;
|
||||
else
|
||||
return Ok;
|
||||
} else {
|
||||
rc = binkp_send_command(MM_ERR, "Too many CRC errors - session aborted.");
|
||||
bp.RxState = RxDone;
|
||||
bp.rxfp = NULL;
|
||||
bp.rc = MBERR_FTRANSFER;
|
||||
return Failure;
|
||||
}
|
||||
}
|
||||
}
|
||||
rc = binkp_send_command(MM_GOT, "%s %ld %ld", bp.rname, bp.rsize, bp.rtime);
|
||||
bclosefile(TRUE);
|
||||
bp.rxpos = bp.rxpos - bp.rxbytes;
|
||||
gettimeofday(&rxtvend, &bp.tz);
|
||||
#if defined(HAVE_ZLIB_H) || defined(HAVE_BZLIB_H)
|
||||
@ -1536,7 +1586,9 @@ TrType binkp_transmitter(void)
|
||||
|
||||
bp.tmode = CompNone;
|
||||
extra = (char *)"";
|
||||
|
||||
if ((bp.CRCwe == Active)) {
|
||||
Syslog('b', "Binkp: CRC mode active - GZ/BZ2 compression disabled");
|
||||
} else {
|
||||
if ((tmp->compress == CompGZ) || (tmp->compress == CompBZ2)) {
|
||||
bp.tmode = tmp->compress;
|
||||
Syslog('b', "Binkp: compress_init start");
|
||||
@ -1552,6 +1604,7 @@ TrType binkp_transmitter(void)
|
||||
Syslog('b', "Binkp: compress_init ok, extra=%s", extra);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
bp.txpos = bp.txcpos = bp.stxpos = tmp->offset;
|
||||
bp.txcompressed = 0;
|
||||
@ -1559,8 +1612,13 @@ TrType binkp_transmitter(void)
|
||||
Syslog('+', "Binkp: send \"%s\" as \"%s\"", MBSE_SS(tmp->local), MBSE_SS(tmp->remote));
|
||||
Syslog('+', "Binkp: size %u bytes, dated %s, comp %s",
|
||||
(unsigned int)tmp->size, date(tmp->date), cpstate[bp.tmode]);
|
||||
if ((bp.CRCwe == Active)) {
|
||||
Syslog('b', "Binkp: CRC active - file %s CRC %x", MBSE_SS(tmp->local), (int)tmp->crc32);
|
||||
rc = binkp_send_command(MM_FILE, "%s %u %d %d %x", MBSE_SS(tmp->remote), (unsigned int)tmp->size, (int)tmp->date, (unsigned int)tmp->offset, (int)tmp->crc32);
|
||||
} else {
|
||||
rc = binkp_send_command(MM_FILE, "%s %u %d %d%s", MBSE_SS(tmp->remote),
|
||||
(unsigned int)tmp->size, (int)tmp->date, (unsigned int)tmp->offset, extra);
|
||||
}
|
||||
if (rc) {
|
||||
bp.TxState = TxDone;
|
||||
return Failure;
|
||||
@ -2014,15 +2072,12 @@ int binkp_banner(int originate)
|
||||
return rc;
|
||||
}
|
||||
|
||||
|
||||
|
||||
/*
|
||||
* Send compression options
|
||||
*/
|
||||
int binkp_send_comp_opts(int originate)
|
||||
{
|
||||
int rc = 0, nr = FALSE;
|
||||
#if defined(HAVE_ZLIB_H) || defined(HAVE_BZLIB_H)
|
||||
int rc = 0, nr = FALSE, crc = FALSE;
|
||||
int plz = FALSE, gz = FALSE, bz2 = FALSE;
|
||||
char *p = NULL;
|
||||
|
||||
@ -2046,6 +2101,11 @@ int binkp_send_comp_opts(int originate)
|
||||
}
|
||||
#endif
|
||||
|
||||
if ((bp.CRCwe == Can) || (bp.CRCthey == Can) || (bp.CRCthey == Want)) {
|
||||
crc = TRUE;
|
||||
bp.CRCwe = Want;
|
||||
}
|
||||
|
||||
Syslog('b', "Binkp: binkp_send_comp_opts(%s) NRwe=%s NRthey=%s",
|
||||
originate ?"TRUE":"FALSE", opstate[bp.NRwe], opstate[bp.NRthey]);
|
||||
if (originate) {
|
||||
@ -2061,7 +2121,7 @@ int binkp_send_comp_opts(int originate)
|
||||
}
|
||||
}
|
||||
|
||||
if (plz || gz || bz2 || nr) {
|
||||
if (plz || gz || bz2 || nr || crc) {
|
||||
p = xstrcpy((char *)"OPT");
|
||||
if (bz2 || gz) {
|
||||
bp.EXTCMDwe = Want;
|
||||
@ -2075,10 +2135,11 @@ int binkp_send_comp_opts(int originate)
|
||||
p = xstrcat(p, (char *)" PLZ");
|
||||
if (nr)
|
||||
p = xstrcat(p, (char *)" NR");
|
||||
if (crc)
|
||||
p = xstrcat(p, (char *)" CRC");
|
||||
rc = binkp_send_command(MM_NUL,"%s", p);
|
||||
free(p);
|
||||
}
|
||||
#endif
|
||||
|
||||
return rc;
|
||||
}
|
||||
@ -2123,6 +2184,11 @@ void binkp_set_comp_state(void)
|
||||
bp.NRwe = bp.NRthey = Active;
|
||||
Syslog('+', "Binkp: NR mode active");
|
||||
}
|
||||
Syslog('b', "Binkp: CRC they=%s we=%s", opstate[bp.CRCthey], opstate[bp.CRCwe]);
|
||||
if ((bp.CRCthey == Want) && (bp.CRCwe == Want)) {
|
||||
bp.CRCwe = bp.CRCthey = Active;
|
||||
Syslog ('+', "Binkp: CRC mode active");
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@ -2203,13 +2269,13 @@ void parse_m_nul(char *msg)
|
||||
bp.Minor = atoi(q + 1);
|
||||
}
|
||||
/*
|
||||
* Irex 2.24 upto 2.29 claims binkp/1.1 while it is binkp/1.0
|
||||
* Irex 2.24 upto 2.67 claims binkp/1.1 while it is binkp/1.0
|
||||
* Set a flag so we can activate a workaround. This only works
|
||||
* for incoming sessions.
|
||||
*/
|
||||
if ((p = strstr(msg+4, "Internet Rex 2."))) {
|
||||
q = strtok(p + 15, (char *)" \0");
|
||||
if ((atoi(q) >= 24) && (atoi(q) <= 29)) {
|
||||
if ((atoi(q) >= 24) && (atoi(q) <= 67)) {
|
||||
Syslog('b', " : Irex bug detected, workaround activated");
|
||||
bp.buggyIrex = TRUE;
|
||||
}
|
||||
@ -2280,9 +2346,16 @@ void parse_m_nul(char *msg)
|
||||
} else if (strcmp(q, (char *)"ND") == 0) {
|
||||
Syslog('b', "Binkp: remote wants ND mode, NOT SUPPORTED HERE YET");
|
||||
bp.NDthey = Want;
|
||||
} else if (strcmp(q, (char *)"CRC") == 0) {
|
||||
Syslog('b', "Binkp: remote requests CRC mode");
|
||||
if (bp.CRCthey == Can) {
|
||||
bp.CRCthey = Want;
|
||||
binkp_set_comp_state();
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
} else {
|
||||
Syslog('+', "Binkp: M_NUL \"%s\"", msg);
|
||||
}
|
||||
@ -2761,6 +2834,7 @@ void fill_binkp_list(binkp_list **bkll, file_list *fal, off_t offs)
|
||||
(*tmpl)->size = tstat.st_size;
|
||||
(*tmpl)->date = tstat.st_mtime;
|
||||
(*tmpl)->compress = CompNone;
|
||||
(*tmpl)->crc32 = file_crc(fal->local, FALSE);
|
||||
|
||||
/*
|
||||
* Search compression method, but only if GZ or BZ2 compression is active.
|
||||
|
@ -81,6 +81,7 @@ typedef struct _binkp_list {
|
||||
time_t date; /* File date & time */
|
||||
off_t offset; /* Start offset */
|
||||
int compress; /* Compression state */
|
||||
int crc32; /* File CRC32 checksum */
|
||||
} binkp_list;
|
||||
|
||||
|
||||
|
@ -127,16 +127,17 @@ FILE *bopenfile(char *fname, time_t remtime, off_t remsize, off_t *resofs)
|
||||
* file so that in a next session we know we must append to that file instead of
|
||||
* trying to get the file again.
|
||||
*/
|
||||
int bclosefile(int success)
|
||||
int bclosefile(int success, int CRCflag, int crc)
|
||||
{
|
||||
int rc = 0;
|
||||
int tmpcrc;
|
||||
struct utimbuf ut;
|
||||
char *temp;
|
||||
|
||||
Syslog('b', "Binkp: closefile(), for file \"%s\"", MBSE_SS(infpath));
|
||||
|
||||
if ((infp == NULL) || (infpath == NULL)) {
|
||||
Syslog('+', "Binkp: closefile(), nothing to close");
|
||||
Syslog('+', "Binkp: bclosefile(), nothing to close");
|
||||
return 1;
|
||||
}
|
||||
|
||||
@ -169,9 +170,24 @@ int bclosefile(int success)
|
||||
else
|
||||
Syslog('b', "Binkp: unlinked %s", temp);
|
||||
|
||||
/* If CRC mode is active, check the CRC of the received file. */
|
||||
|
||||
if (CRCflag) {
|
||||
tmpcrc = file_crc(infpath, FALSE);
|
||||
if (tmpcrc != crc) { /* CRC check failed. */
|
||||
Syslog('!', "Binkp: CRC error %s Expected %x Got %x", infpath, crc, tmpcrc);
|
||||
unlink(infpath); /* Remove file with incorrect CRC. */
|
||||
isfreq = FALSE;
|
||||
free(infpath);
|
||||
infpath = NULL;
|
||||
return 2;
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
* Move file from extra tmp to normal tempinbound.
|
||||
*/
|
||||
|
||||
snprintf(temp, PATH_MAX, "%s/%s", tempinbound, basename(infpath));
|
||||
|
||||
if (rc == 0) {
|
||||
|
@ -4,6 +4,6 @@
|
||||
#define _BOPENFILE_H
|
||||
|
||||
FILE *bopenfile(char *, time_t, off_t, off_t *);
|
||||
int bclosefile(int);
|
||||
int bclosefile(int, int, int);
|
||||
|
||||
#endif
|
||||
|
44
mbcico/htoul.c
Normal file
44
mbcico/htoul.c
Normal file
@ -0,0 +1,44 @@
|
||||
/*****************************************************************************
|
||||
*
|
||||
* $Id: htoul.c,v 1.6 2005/10/11 20:49:46 mbse Exp $
|
||||
* Purpose ...............: Fidonet mailer
|
||||
*
|
||||
*****************************************************************************
|
||||
* Copyright (C) 1997-2005
|
||||
*
|
||||
* Michiel Broek FIDO: 2:280/2802
|
||||
* Beekmansbos 10
|
||||
* 1971 BV IJmuiden
|
||||
* the Netherlands
|
||||
*
|
||||
* This file is part of MBSE BBS.
|
||||
*
|
||||
* This BBS is free software; you can redistribute it and/or modify it
|
||||
* under the terms of the GNU General Public License as published by the
|
||||
* Free Software Foundation; either version 2, or (at your option) any
|
||||
* later version.
|
||||
*
|
||||
* MBSE BBS is distributed in the hope that it will be useful, but
|
||||
* WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
* General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with MBSE BBS; see the file COPYING. If not, write to the Free
|
||||
* Software Foundation, 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA.
|
||||
*****************************************************************************/
|
||||
|
||||
#include "../config.h"
|
||||
#include "../lib/mbselib.h"
|
||||
#include "htoul.h"
|
||||
|
||||
|
||||
unsigned int htoul(char *str)
|
||||
{
|
||||
unsigned int x;
|
||||
|
||||
if (sscanf(str,"%x",&x) == 1)
|
||||
return x;
|
||||
else return 0xffffffff;
|
||||
}
|
||||
|
9
mbcico/htoul.h
Normal file
9
mbcico/htoul.h
Normal file
@ -0,0 +1,9 @@
|
||||
#ifndef _HTOUL_H
|
||||
#define _HTOUL_H
|
||||
|
||||
/* $Id: htoul.h,v 1.2 2005/10/11 20:49:46 mbse Exp $ */
|
||||
|
||||
unsigned int htoul(char *);
|
||||
|
||||
#endif
|
||||
|
@ -53,6 +53,7 @@ static struct _ktab {
|
||||
{(char *)"PLZ", NOPLZ},
|
||||
{(char *)"GZ/BZ2", NOGZBZ2},
|
||||
{(char *)"NR", NONR},
|
||||
{(char *)"CRC", NOCRC},
|
||||
{NULL, 0}
|
||||
};
|
||||
|
||||
@ -93,6 +94,8 @@ void rdoptions(int Loaded)
|
||||
localoptions |= NOZEDZAP;
|
||||
if (CFG.NoHydra)
|
||||
localoptions |= NOHYDRA;
|
||||
if (CFG.NoCRC32)
|
||||
localoptions |= NOCRC;
|
||||
localoptions |= NONR;
|
||||
|
||||
#ifndef HAVE_ZLIB_H
|
||||
@ -131,6 +134,8 @@ void rdoptions(int Loaded)
|
||||
localoptions |= NOGZBZ2;
|
||||
if (nodes.DoNR)
|
||||
localoptions &= ~NONR;
|
||||
if (nodes.DoCRC)
|
||||
localoptions &= ~NOCRC;
|
||||
|
||||
logoptions();
|
||||
}
|
||||
|
@ -67,6 +67,7 @@ extern int localoptions;
|
||||
#define NOPLZ 0x0400
|
||||
#define NOGZBZ2 0x0800
|
||||
#define NONR 0x1000
|
||||
#define NOCRC 0x2000
|
||||
|
||||
struct _history history; /* History record for sessions */
|
||||
|
||||
|
@ -54,7 +54,7 @@ void ProgName(void)
|
||||
return;
|
||||
|
||||
mbse_colour(WHITE, BLACK);
|
||||
printf("\nMBAFF: MBSE BBS %s Announce new files and FileFind\n", VERSION);
|
||||
printf("\nMBAFF: MBSE BBS %s Announce New Files and FileFind\n", VERSION);
|
||||
mbse_colour(YELLOW, BLACK);
|
||||
printf(" %s\n", COPYRIGHT);
|
||||
}
|
||||
|
@ -59,7 +59,7 @@ void ProgName(void)
|
||||
return;
|
||||
|
||||
mbse_colour(WHITE, BLACK);
|
||||
printf("\nMBDIFF: MBSE BBS %s Nodelist diff processor\n", VERSION);
|
||||
printf("\nMBDIFF: MBSE BBS %s Nodelist Diff Processor\n", VERSION);
|
||||
mbse_colour(YELLOW, BLACK);
|
||||
printf(" %s\n", COPYRIGHT);
|
||||
}
|
||||
|
@ -157,7 +157,7 @@ void ProgName(void)
|
||||
return;
|
||||
|
||||
mbse_colour(WHITE, BLACK);
|
||||
printf("\nMBFIDO: MBSE BBS %s - Fidonet File and Mail processor\n", VERSION);
|
||||
printf("\nMBFIDO: MBSE BBS %s - Fidonet File and Mail Processor\n", VERSION);
|
||||
mbse_colour(YELLOW, BLACK);
|
||||
printf(" %s\n", COPYRIGHT);
|
||||
}
|
||||
|
@ -52,7 +52,7 @@ void ProgName(void)
|
||||
return;
|
||||
|
||||
mbse_colour(WHITE, BLACK);
|
||||
printf("\nMBFILE: MBSE BBS %s File maintenance utility\n", VERSION);
|
||||
printf("\nMBFILE: MBSE BBS %s File Maintenance Utility\n", VERSION);
|
||||
mbse_colour(YELLOW, BLACK);
|
||||
printf(" %s\n", COPYRIGHT);
|
||||
}
|
||||
|
@ -1302,19 +1302,19 @@ void s_mailer(void)
|
||||
mbse_mvprintw(15, 2, "9. No callout");
|
||||
mbse_mvprintw(16, 2, "10. No EMSI session");
|
||||
mbse_mvprintw(17, 2, "11. No Yooho/2U2");
|
||||
mbse_mvprintw(12,31, "12. No CRC");
|
||||
mbse_mvprintw(13,31, "13. No Zmodem");
|
||||
mbse_mvprintw(14,31, "14. No Zedzap");
|
||||
mbse_mvprintw(15,31, "15. No Hydra");
|
||||
mbse_mvprintw(16,31, "16. No MD5");
|
||||
mbse_mvprintw(17,31, "17. Zero Locks OK");
|
||||
|
||||
mbse_mvprintw(13,31, "12. No Zmodem");
|
||||
mbse_mvprintw(14,31, "13. No Zedzap");
|
||||
mbse_mvprintw(15,31, "14. No Hydra");
|
||||
mbse_mvprintw(16,31, "15. No MD5");
|
||||
mbse_mvprintw(17,31, "16. Zero Locks OK");
|
||||
|
||||
mbse_mvprintw(12,59, "17. Phonetrans 1-10");
|
||||
mbse_mvprintw(13,59, "18. Phonetrans 11-20");
|
||||
mbse_mvprintw(14,59, "19. Phonetrans 21-30");
|
||||
mbse_mvprintw(15,59, "20. Phonetrans 31-40");
|
||||
mbse_mvprintw(16,59, "21. Max. files");
|
||||
mbse_mvprintw(17,59, "22. Max. MB.");
|
||||
mbse_mvprintw(12,59, "18. Phonetrans 1-10");
|
||||
mbse_mvprintw(13,59, "19. Phonetrans 11-20");
|
||||
mbse_mvprintw(14,59, "20. Phonetrans 21-30");
|
||||
mbse_mvprintw(15,59, "21. Phonetrans 31-40");
|
||||
mbse_mvprintw(16,59, "22. Max. files");
|
||||
mbse_mvprintw(17,59, "23. Max. MB.");
|
||||
}
|
||||
|
||||
|
||||
@ -1368,7 +1368,7 @@ void e_mailer(void)
|
||||
show_bool(15,23, CFG.NoCall);
|
||||
show_bool(16,23, CFG.NoEMSI);
|
||||
show_bool(17,23, CFG.NoWazoo);
|
||||
|
||||
show_bool(12,52, CFG.NoCRC32);
|
||||
show_bool(13,52, CFG.NoZmodem);
|
||||
show_bool(14,52, CFG.NoZedzap);
|
||||
show_bool(15,52, CFG.NoHydra);
|
||||
@ -1378,7 +1378,7 @@ void e_mailer(void)
|
||||
show_int( 16,75, CFG.Req_Files);
|
||||
show_int( 17,75, CFG.Req_MBytes);
|
||||
|
||||
switch(select_menu(22)) {
|
||||
switch(select_menu(23)) {
|
||||
case 0: return;
|
||||
case 1: E_LOGL(CFG.cico_loglevel, "1.14.1", s_mailer)
|
||||
case 2: E_STR( 8,23,20,CFG.IP_Phone, "The mailer ^TCP/IP \"phone\" number^ for this system, empty is no TCP/IP")
|
||||
@ -1389,21 +1389,21 @@ void e_mailer(void)
|
||||
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 10:E_BOOL(16,23, CFG.NoEMSI, "If set then ^EMSI handshake^ is disabled")
|
||||
case 11:E_BOOL(17,23, CFG.NoWazoo, "If set then ^YooHoo/2U2^ (FTSC-0006) is disabled")
|
||||
case 12:E_BOOL(12,52, CFG.NoCRC32, "If set then ^CRC32^ in binkp sessions is disabled")
|
||||
case 13:E_BOOL(13,52, CFG.NoZmodem, "If set then the ^Zmodem^ protocol is disabled")
|
||||
case 14:E_BOOL(14,52, CFG.NoZedzap, "If set then the ^Zedzap^ protocol is disabled")
|
||||
case 15:E_BOOL(15,52, CFG.NoHydra, "If set then the ^Hydra^ protocol is disabled")
|
||||
case 16:E_BOOL(16,52, CFG.NoMD5, "Disable ^MD5 crypted^ passwords with binkp sessions")
|
||||
case 17:E_BOOL(17,52, CFG.ZeroLocks, "Allow ^zero byte node lockfiles^ created by another OS")
|
||||
|
||||
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.ZeroLocks, "Allow ^zero byte node lockfiles^ created by another OS")
|
||||
|
||||
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")
|
||||
case 18:e_trans(0, 17); break;
|
||||
case 19:e_trans(10, 18); break;
|
||||
case 20:e_trans(20, 19); break;
|
||||
case 21:e_trans(30, 20); break;
|
||||
case 22:E_INT(16,75, CFG.Req_Files, "Maximum ^files^ to request, 0 is unlimited")
|
||||
case 23:E_INT(17,75, CFG.Req_MBytes, "Maximum ^MBytes^ to request, 0 is unlimited")
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -2270,6 +2270,7 @@ int global_doc(FILE *fp, FILE *toc, int page)
|
||||
add_webtable(wp, (char *)"No Calls", getboolean(CFG.NoCall));
|
||||
add_webtable(wp, (char *)"No EMSI", getboolean(CFG.NoEMSI));
|
||||
add_webtable(wp, (char *)"No YooHoo/2U2", getboolean(CFG.NoWazoo));
|
||||
add_webtable(wp, (char *)"No CRC32", getboolean(CFG.NoCRC32));
|
||||
add_webtable(wp, (char *)"No Zmodem", getboolean(CFG.NoZmodem));
|
||||
add_webtable(wp, (char *)"No Zedzap", getboolean(CFG.NoZedzap));
|
||||
add_webtable(wp, (char *)"No Hydra", getboolean(CFG.NoHydra));
|
||||
@ -2294,6 +2295,7 @@ int global_doc(FILE *fp, FILE *toc, int page)
|
||||
fprintf(fp, " No Calls %s\n", getboolean(CFG.NoCall));
|
||||
fprintf(fp, " No EMSI %s\n", getboolean(CFG.NoEMSI));
|
||||
fprintf(fp, " No YooHoo/2U2 %s\n", getboolean(CFG.NoWazoo));
|
||||
fprintf(fp, " No CRC32 %s\n", getboolean(CFG.NoCRC32));
|
||||
fprintf(fp, " No Zmodem %s\n", getboolean(CFG.NoZmodem));
|
||||
fprintf(fp, " No Zedzap %s\n", getboolean(CFG.NoZedzap));
|
||||
fprintf(fp, " No Hydra %s\n", getboolean(CFG.NoHydra));
|
||||
|
118
mbsetup/m_node.c
118
mbsetup/m_node.c
@ -807,32 +807,32 @@ void SessionScreen(void)
|
||||
{
|
||||
clr_index();
|
||||
set_color(WHITE, BLACK);
|
||||
mbse_mvprintw( 5, 6, "7.3 EDIT NODE SESSION");
|
||||
mbse_mvprintw( 5, 2, "7.3 EDIT NODE SESSION");
|
||||
set_color(CYAN, BLACK);
|
||||
|
||||
mbse_mvprintw( 7, 6, "1. Session passwd");
|
||||
mbse_mvprintw( 8, 6, "2. Dial command");
|
||||
mbse_mvprintw( 9, 6, "3. Phone number 1");
|
||||
mbse_mvprintw(10, 6, "4. Phone number 2");
|
||||
mbse_mvprintw(11, 6, "5. Nodelist flags");
|
||||
mbse_mvprintw(12, 6, "6. Inet hostname");
|
||||
mbse_mvprintw(13, 6, "7. Outbound sess.");
|
||||
mbse_mvprintw(14, 6, "8. Inbound sess.");
|
||||
mbse_mvprintw(15, 6, "9. No EMSI");
|
||||
mbse_mvprintw(16, 6, "10. No YooHoo/2U2");
|
||||
mbse_mvprintw(17, 6, "11. No Filerequest");
|
||||
mbse_mvprintw(18, 6, "12. Don't call");
|
||||
mbse_mvprintw(19, 6, "13. 8.3 names");
|
||||
mbse_mvprintw(20, 6, "14. NR mode");
|
||||
|
||||
mbse_mvprintw(13,41, "15. No PLZ");
|
||||
mbse_mvprintw(14,41, "16. No GZ/BZ2");
|
||||
mbse_mvprintw(15,41, "17. No Zmodem");
|
||||
mbse_mvprintw(16,41, "18. No Zedzap");
|
||||
mbse_mvprintw(17,41, "19. No Hydra");
|
||||
mbse_mvprintw(18,41, "20. Binkp old esc");
|
||||
mbse_mvprintw(19,41, "21. No binkp/1.1");
|
||||
mbse_mvprintw(20,41, "22. Ign. Hold");
|
||||
mbse_mvprintw( 7, 2, "1. Session passwd");
|
||||
mbse_mvprintw( 8, 2, "2. Dial command");
|
||||
mbse_mvprintw( 9, 2, "3. Phone number 1");
|
||||
mbse_mvprintw(10, 2, "4. Phone number 2");
|
||||
mbse_mvprintw(11, 2, "5. Nodelist flags");
|
||||
mbse_mvprintw(12, 2, "6. Inet hostname");
|
||||
mbse_mvprintw(13, 2, "7. Outbound sess.");
|
||||
mbse_mvprintw(14, 2, "8. Inbound sess.");
|
||||
mbse_mvprintw(15, 2, "9. No EMSI");
|
||||
mbse_mvprintw(16, 2, "10. No YooHoo/2U2");
|
||||
mbse_mvprintw(17, 2, "11. No Filerequest");
|
||||
mbse_mvprintw(18, 2, "12. Don't call");
|
||||
mbse_mvprintw(19, 2, "13. 8.3 names");
|
||||
mbse_mvprintw(13,33, "14. NR mode");
|
||||
mbse_mvprintw(14,33, "15. CRC mode");
|
||||
mbse_mvprintw(15,33, "16. No PLZ");
|
||||
mbse_mvprintw(16,33, "17. No GZ/BZ2");
|
||||
mbse_mvprintw(17,33, "18. No Zmodem");
|
||||
mbse_mvprintw(18,33, "19. No Zedzap");
|
||||
mbse_mvprintw(19,33, "20. No Hydra");
|
||||
mbse_mvprintw(17,57, "21. Binkp old esc");
|
||||
mbse_mvprintw(18,57, "22. No binkp/1.1");
|
||||
mbse_mvprintw(19,57, "23. Ign. Hold");
|
||||
}
|
||||
|
||||
|
||||
@ -850,25 +850,25 @@ void SessionEdit(void)
|
||||
show_str( 10,26,20, nodes.phone[1]);
|
||||
show_str( 11,26,54, nodes.Nl_flags);
|
||||
show_str( 12,26,40, nodes.Nl_hostname);
|
||||
show_sessiontype(13,26,nodes.Session_out);
|
||||
show_sessiontype(14,26,nodes.Session_in);
|
||||
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(20,26, nodes.DoNR);
|
||||
show_sessiontype(13,23,nodes.Session_out);
|
||||
show_sessiontype(14,23,nodes.Session_in);
|
||||
show_bool(15,23, nodes.NoEMSI);
|
||||
show_bool(16,23, nodes.NoWaZOO);
|
||||
show_bool(17,23, nodes.NoFreqs);
|
||||
show_bool(18,23, nodes.NoCall);
|
||||
show_bool(19,23, nodes.FNC);
|
||||
show_bool(13,52, nodes.DoNR);
|
||||
show_bool(14,52, nodes.DoCRC);
|
||||
show_bool(15,52, nodes.NoPLZ);
|
||||
show_bool(16,52, nodes.NoGZ);
|
||||
show_bool(17,52, nodes.NoZmodem);
|
||||
show_bool(18,52, nodes.NoZedzap);
|
||||
show_bool(19,52, nodes.NoHydra);
|
||||
show_bool(17,76, nodes.WrongEscape);
|
||||
show_bool(18,76, nodes.NoBinkp11);
|
||||
show_bool(19,76, nodes.IgnHold);
|
||||
|
||||
show_bool(13,61, nodes.NoPLZ);
|
||||
show_bool(14,61, nodes.NoGZ);
|
||||
show_bool(15,61, nodes.NoZmodem);
|
||||
show_bool(16,61, nodes.NoZedzap);
|
||||
show_bool(17,61, nodes.NoHydra);
|
||||
show_bool(18,61, nodes.WrongEscape);
|
||||
show_bool(19,61, nodes.NoBinkp11);
|
||||
show_bool(20,61, nodes.IgnHold);
|
||||
|
||||
switch(select_menu(22)) {
|
||||
switch(select_menu(23)) {
|
||||
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")
|
||||
@ -876,25 +876,25 @@ void SessionEdit(void)
|
||||
case 4: E_STR( 10,26,20, nodes.phone[1], "Enter ^phone number^ to override the nodelist")
|
||||
case 5: E_STR( 11,26,54, nodes.Nl_flags, "^Nodelist flags^ override")
|
||||
case 6: E_STR( 12,26,40, nodes.Nl_hostname, "Node internet ^hostname/IP address^ override")
|
||||
case 7: nodes.Session_out = edit_sessiontype(13,26, nodes.Session_out);
|
||||
case 7: nodes.Session_out = edit_sessiontype(13,23, nodes.Session_out);
|
||||
break;
|
||||
case 8: nodes.Session_in = edit_sessiontype(14,26, nodes.Session_in);
|
||||
case 8: nodes.Session_in = edit_sessiontype(14,23, nodes.Session_in);
|
||||
break;
|
||||
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(20,26, nodes.DoNR, "Use ^NR-mode^ in outgoing binkp sessions")
|
||||
|
||||
case 15:E_BOOL(13,61, nodes.NoPLZ, "Disable ^Binkp PLZ^ compression with this node")
|
||||
case 16:E_BOOL(14,61, nodes.NoGZ, "Disable ^Binkp GZ and BZ2^ compression with this node")
|
||||
case 17:E_BOOL(15,61, nodes.NoZmodem, "Disable ^Zmodem^ protocol with this node")
|
||||
case 18:E_BOOL(16,61, nodes.NoZedzap, "Disable ^Zedzap^ protocol with this node")
|
||||
case 19:E_BOOL(17,61, nodes.NoHydra, "Disable ^Hydra^ protocol with this node")
|
||||
case 20:E_BOOL(18,61, nodes.WrongEscape, "Use the ^old escape^ for long filenames (Argus, Irex)")
|
||||
case 21:E_BOOL(19,61, nodes.NoBinkp11, "Disable ^binkp/1.1^ (fallback to binkp/1.0) mode for this node")
|
||||
case 22:E_BOOL(20,61, nodes.IgnHold, "Ignore node ^Hold or Down^ nodelist status")
|
||||
case 9: E_BOOL(15,23, nodes.NoEMSI, "Disable ^EMSI handshake^ with this node")
|
||||
case 10:E_BOOL(16,23, nodes.NoWaZOO, "Disable ^YooHoo/2U2 handshake^ (FTSC-0006) with this node")
|
||||
case 11:E_BOOL(17,23, nodes.NoFreqs, "Disallow ^file requests^ from this node")
|
||||
case 12:E_BOOL(18,23, nodes.NoCall, "Don't ^call^ this node")
|
||||
case 13:E_BOOL(19,23, nodes.FNC, "Node needs ^DOS 8.3^ filenames")
|
||||
case 14:E_BOOL(13,52, nodes.DoNR, "Use ^NR-mode^ in outgoing binkp sessions")
|
||||
case 15:E_BOOL(14,52, nodes.DoCRC, "Use ^Binkp CRC^ error checking")
|
||||
case 16:E_BOOL(15,52, nodes.NoPLZ, "Disable ^Binkp PLZ^ compression with this node")
|
||||
case 17:E_BOOL(16,52, nodes.NoGZ, "Disable ^Binkp GZ and BZ2^ compression with this node")
|
||||
case 18:E_BOOL(17,52, nodes.NoZmodem, "Disable ^Zmodem^ protocol with this node")
|
||||
case 19:E_BOOL(18,52, nodes.NoZedzap, "Disable ^Zedzap^ protocol with this node")
|
||||
case 20:E_BOOL(19,52, nodes.NoHydra, "Disable ^Hydra^ protocol with this node")
|
||||
case 21:E_BOOL(17,76, nodes.WrongEscape, "Use the ^old escape^ for long filenames (Argus, Irex)")
|
||||
case 22:E_BOOL(18,76, nodes.NoBinkp11, "Disable ^binkp/1.1^ (fallback to binkp/1.0) mode for this node")
|
||||
case 23:E_BOOL(19,76, nodes.IgnHold, "Ignore node ^Hold or Down^ nodelist status")
|
||||
}
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user