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
|
Bobby Cabral bobbyc@digitelone.com
|
||||||
Johannes Beekhuizen 2:280/1018@fidonet
|
Johannes Beekhuizen 2:280/1018@fidonet
|
||||||
Lukas De Groen 2:280/1027@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
|
Joachim Kuwan 2:249/591@fidonet
|
||||||
Greek greek@voyager.nnov.ru
|
Greek greek@voyager.nnov.ru
|
||||||
Sergey Nechaev 2:5015/53@fidonet
|
Sergey Nechaev 2:5015/53@fidonet
|
||||||
@ -57,4 +57,4 @@ val khokhlov 2:550/180@fidonet
|
|||||||
Robert Wolfe 1:2613/4307@fidonet
|
Robert Wolfe 1:2613/4307@fidonet
|
||||||
Alan Ianson
|
Alan Ianson
|
||||||
Simon Voortman 2:280/1049.1@fidonet
|
Simon Voortman 2:280/1049.1@fidonet
|
||||||
|
Andrew Leary 1:320/219@fidonet
|
||||||
|
109
ChangeLog
109
ChangeLog
@ -1,8 +1,109 @@
|
|||||||
v1.0.1
|
v1.0.4 03-Sep-2014 - Andrew Leary
|
||||||
Fixed packaging and compiling the correct ftscprod.012
|
|
||||||
file.
|
|
||||||
|
|
||||||
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,
|
This is the last version of mbsebbs submitted by me,
|
||||||
Michiel.
|
Michiel.
|
||||||
|
|
||||||
|
@ -17,8 +17,8 @@ Internal mail format is JAM (c) messagebase.
|
|||||||
Full tic file support, including extended
|
Full tic file support, including extended
|
||||||
tic files.
|
tic files.
|
||||||
OS: GNU/Linux and *BSD, 32/64 bit versions.
|
OS: GNU/Linux and *BSD, 32/64 bit versions.
|
||||||
Originating sites 2:280/2802@fidonet and
|
http://sourceforge.net/projects/mbsebbs
|
||||||
http://www.mbse.eu/
|
|
||||||
Copyright by Michiel Broek.
|
Copyright by Michiel Broek.
|
||||||
Released under the terms of the GNU Public
|
Released under the terms of the GNU Public
|
||||||
License.
|
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"
|
PACKAGE="mbsebbs"
|
||||||
MAJOR="1"
|
MAJOR="1"
|
||||||
MINOR="0"
|
MINOR="0"
|
||||||
REVISION="1"
|
REVISION="4"
|
||||||
VERSION="$MAJOR.$MINOR.$REVISION"
|
VERSION="$MAJOR.$MINOR.$REVISION"
|
||||||
COPYRIGHT="Copyright (C) 1997-2013 Michiel Broek, All Rights Reserved"
|
COPYRIGHT="Copyright (C) 1997-2014 Michiel Broek, All Rights Reserved"
|
||||||
SHORTRIGHT="Copyright (C) 1997-2013 M. Broek"
|
SHORTRIGHT="Copyright (C) 1997-2014 M. Broek"
|
||||||
GROUP="bbs"
|
GROUP="bbs"
|
||||||
OWNER="mbse"
|
OWNER="mbse"
|
||||||
ROWNER="`id -un root`"
|
ROWNER="`id -un root`"
|
||||||
|
@ -12,10 +12,10 @@ AC_SUBST(SUBDIRS)
|
|||||||
PACKAGE="mbsebbs"
|
PACKAGE="mbsebbs"
|
||||||
MAJOR="1"
|
MAJOR="1"
|
||||||
MINOR="0"
|
MINOR="0"
|
||||||
REVISION="1"
|
REVISION="4"
|
||||||
VERSION="$MAJOR.$MINOR.$REVISION"
|
VERSION="$MAJOR.$MINOR.$REVISION"
|
||||||
COPYRIGHT="Copyright (C) 1997-2013 Michiel Broek, All Rights Reserved"
|
COPYRIGHT="Copyright (C) 1997-2014 Michiel Broek, All Rights Reserved"
|
||||||
SHORTRIGHT="Copyright (C) 1997-2013 M. Broek"
|
SHORTRIGHT="Copyright (C) 1997-2014 M. Broek"
|
||||||
GROUP="bbs"
|
GROUP="bbs"
|
||||||
OWNER="mbse"
|
OWNER="mbse"
|
||||||
ROWNER="`id -un root`"
|
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
|
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
|
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
|
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 NoFreqs : 1; /* Don't allow requests */
|
||||||
unsigned NoCall : 1; /* Don't call */
|
unsigned NoCall : 1; /* Don't call */
|
||||||
unsigned NoMD5 : 1; /* Don't do MD5 */
|
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 NoEMSI : 1; /* Don't do EMSI */
|
||||||
unsigned NoWazoo : 1; /* Don't do Yooho/2U2 */
|
unsigned NoWazoo : 1; /* Don't do Yooho/2U2 */
|
||||||
unsigned NoZmodem : 1; /* Don't do Zmodem */
|
unsigned NoZmodem : 1; /* Don't do Zmodem */
|
||||||
@ -1699,7 +1699,7 @@ struct _nodes {
|
|||||||
unsigned WrongEscape : 1; /* Binkp wrong escape */
|
unsigned WrongEscape : 1; /* Binkp wrong escape */
|
||||||
unsigned NoBinkp11 : 1; /* No binkp/1.1 mode */
|
unsigned NoBinkp11 : 1; /* No binkp/1.1 mode */
|
||||||
unsigned IgnHold : 1; /* Ignore Hold/Down status */
|
unsigned IgnHold : 1; /* Ignore Hold/Down status */
|
||||||
|
|
||||||
char xExtra[94];
|
char xExtra[94];
|
||||||
int32_t StartDate; /* Node start date */
|
int32_t StartDate; /* Node start date */
|
||||||
int32_t LastDate; /* Last action date */
|
int32_t LastDate; /* Last action date */
|
||||||
@ -1737,6 +1737,7 @@ struct _nodes {
|
|||||||
unsigned Dir_in_waitclr : 1; /* Inbound wait for clear */
|
unsigned Dir_in_waitclr : 1; /* Inbound wait for clear */
|
||||||
unsigned Dir_in_mklck : 1; /* Inbound create lock */
|
unsigned Dir_in_mklck : 1; /* Inbound create lock */
|
||||||
unsigned Tic4d : 1; /* 4d addresses in ticfile */
|
unsigned Tic4d : 1; /* 4d addresses in ticfile */
|
||||||
|
unsigned DoCRC : 1; /* Enable Binkp CRC check */
|
||||||
|
|
||||||
/* FTP transfers */
|
/* FTP transfers */
|
||||||
char FTP_site[65]; /* Site name or IP address */
|
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 \
|
recvbark.c respfreq.c sendbark.c tcp.c tcpproto.c wazoo.c \
|
||||||
filetime.c ftsc.c atoul.c portsel.c telnet.c bopenfile.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 \
|
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
|
outstat.c nlinfo.c mbout.c
|
||||||
HDRS = zmodem.h binkp.h config.h statetbl.h md5b.h \
|
HDRS = zmodem.h binkp.h config.h statetbl.h md5b.h \
|
||||||
xmsend.h xmrecv.h m7recv.h m7send.h hydra.h inbound.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 \
|
recvbark.h respfreq.h sendbark.h tcp.h tcpproto.h wazoo.h \
|
||||||
filetime.h ftsc.h atoul.h portsel.h telnet.h bopenfile.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 \
|
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
|
outstat.h nlinfo.h
|
||||||
MBCICO_OBJS = zmmisc.o zmrle.o zmrecv.o zmsend.o binkp.o md5b.o \
|
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 \
|
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 \
|
recvbark.o respfreq.o sendbark.o tcp.o tcpproto.o wazoo.o \
|
||||||
filetime.o ftsc.o atoul.o portsel.o telnet.o bopenfile.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 \
|
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
|
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
|
SLIBS = ../lib/libmbse.a ../lib/libmsgbase.a ../lib/libdbase.a ../lib/libnodelist.a
|
||||||
OTHER = Makefile README
|
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
|
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
|
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
|
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
|
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
|
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
|
nlinfo.o: ../config.h ../lib/mbselib.h ../lib/nodelist.h nlinfo.h
|
||||||
|
148
mbcico/binkp.c
148
mbcico/binkp.c
@ -161,6 +161,8 @@ struct binkprec {
|
|||||||
int rxcompressed; /* Receiver compressed bytes */
|
int rxcompressed; /* Receiver compressed bytes */
|
||||||
char *ropts; /* Receiver M_FILE optional args */
|
char *ropts; /* Receiver M_FILE optional args */
|
||||||
int rmode; /* Receiver compression mode */
|
int rmode; /* Receiver compression mode */
|
||||||
|
int rcrc32; /* Receiver file crc32 */
|
||||||
|
int rcrcerr; /* Receiver CRC error count */
|
||||||
|
|
||||||
struct timezone tz; /* Timezone */
|
struct timezone tz; /* Timezone */
|
||||||
|
|
||||||
@ -197,12 +199,15 @@ struct binkprec {
|
|||||||
int BZ2we; /* BZ2 compression flag */
|
int BZ2we; /* BZ2 compression flag */
|
||||||
int BZ2they;
|
int BZ2they;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
int NRwe; /* NR mode */
|
int NRwe; /* NR mode */
|
||||||
int NRthey;
|
int NRthey;
|
||||||
int NDwe; /* ND mode */
|
int NDwe; /* ND mode */
|
||||||
int NDthey;
|
int NDthey;
|
||||||
int NDAwe; /* NDA mode */
|
int NDAwe; /* NDA mode */
|
||||||
int NDAthey;
|
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 */
|
void fill_binkp_list(binkp_list **, file_list *, off_t); /* Build pending files */
|
||||||
int binkp_pendingfiles(void); /* Count pending files */
|
int binkp_pendingfiles(void); /* Count pending files */
|
||||||
void binkp_clear_filelist(int); /* Clear current filelist */
|
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 orgbinkp(void); /* Originate session state */
|
||||||
static int ansbinkp(void); /* Answer session state */
|
static int ansbinkp(void); /* Answer session state */
|
||||||
static int file_transfer(void); /* File transfer 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.txbuf = calloc(MAX_BLKSIZE + 3, sizeof(unsigned char));
|
||||||
bp.rname = calloc(512, sizeof(char));
|
bp.rname = calloc(512, sizeof(char));
|
||||||
bp.ropts = calloc(512, sizeof(char));
|
bp.ropts = calloc(512, sizeof(char));
|
||||||
|
bp.rcrcerr = 0;
|
||||||
bp.rxfp = NULL;
|
bp.rxfp = NULL;
|
||||||
bp.local_EOB = FALSE;
|
bp.local_EOB = FALSE;
|
||||||
bp.remote_EOB = FALSE;
|
bp.remote_EOB = FALSE;
|
||||||
@ -300,6 +306,10 @@ int binkp(int role)
|
|||||||
bp.NRwe = Can;
|
bp.NRwe = Can;
|
||||||
else
|
else
|
||||||
bp.NRwe = Want;
|
bp.NRwe = Want;
|
||||||
|
if (localoptions & NOCRC)
|
||||||
|
bp.CRCthey = bp.CRCwe = No;
|
||||||
|
else
|
||||||
|
bp.CRCthey = bp.CRCwe = Can;
|
||||||
bp.NRthey = Can;
|
bp.NRthey = Can;
|
||||||
bp.NDwe = No;
|
bp.NDwe = No;
|
||||||
bp.NDthey = No;
|
bp.NDthey = No;
|
||||||
@ -321,7 +331,7 @@ int binkp(int role)
|
|||||||
goto binkpend;
|
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");
|
Syslog('+', "Binkp: forcing downgrade to binkp/1.0 protocol");
|
||||||
bp.Major = 1;
|
bp.Major = 1;
|
||||||
bp.Minor = 0;
|
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))) {
|
if ((rc = binkp_banner(FALSE))) {
|
||||||
SM_ERROR;
|
SM_ERROR;
|
||||||
}
|
}
|
||||||
@ -935,6 +953,10 @@ SM_STATE(Opts)
|
|||||||
Syslog('b', "Binkp: no PLZ compression for this node");
|
Syslog('b', "Binkp: no PLZ compression for this node");
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
if (localoptions & NOCRC) {
|
||||||
|
bp.CRCwe = bp.CRCthey = No;
|
||||||
|
Syslog('b', "Binkp: no CRC mode for this node");
|
||||||
|
}
|
||||||
|
|
||||||
binkp_send_comp_opts(FALSE);
|
binkp_send_comp_opts(FALSE);
|
||||||
binkp_set_comp_state();
|
binkp_set_comp_state();
|
||||||
@ -1061,6 +1083,7 @@ TrType binkp_receiver(void)
|
|||||||
off_t rxbytes;
|
off_t rxbytes;
|
||||||
int bcmd, rc = 0;
|
int bcmd, rc = 0;
|
||||||
int rc1 = 0, nget = bp.blklen, zavail, nput;
|
int rc1 = 0, nget = bp.blklen, zavail, nput;
|
||||||
|
int rc2 = 0;
|
||||||
char zbuf[ZBLKSIZE];
|
char zbuf[ZBLKSIZE];
|
||||||
char *buf = bp.rxbuf;
|
char *buf = bp.rxbuf;
|
||||||
|
|
||||||
@ -1148,6 +1171,13 @@ TrType binkp_receiver(void)
|
|||||||
bp.rmode = CompGZ;
|
bp.rmode = CompGZ;
|
||||||
else if (strcmp((char *)"BZ2", bp.ropts) == 0)
|
else if (strcmp((char *)"BZ2", bp.ropts) == 0)
|
||||||
bp.rmode = CompBZ2;
|
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 {
|
} else {
|
||||||
/*
|
/*
|
||||||
* Corrupted command, in case this was serious, send the M_GOT back so it's
|
* 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) {
|
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,
|
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);
|
(unsigned int)(bp.rsize / (sfs.f_bsize + 1)), tempinbound);
|
||||||
bclosefile(FALSE);
|
bclosefile(FALSE, FALSE, 0);
|
||||||
bp.rxfp = NULL; /* Force SKIP command */
|
bp.rxfp = NULL; /* Force SKIP command */
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -1229,8 +1259,8 @@ TrType binkp_receiver(void)
|
|||||||
* We already got this file, send GOT so it will
|
* We already got this file, send GOT so it will
|
||||||
* be deleted at the remote.
|
* be deleted at the remote.
|
||||||
*/
|
*/
|
||||||
Syslog('+', "Binkp: already got %s, sending GOT", bp.rname);
|
Syslog('+', "Binkp: already got %s, sending GOT", bp.rname);
|
||||||
rc = binkp_send_command(MM_GOT, "%s %ld %ld", bp.rname, bp.rsize, bp.rtime);
|
rc = binkp_send_command(MM_GOT, "%s %ld %ld", bp.rname, bp.rsize, bp.rtime);
|
||||||
bp.RxState = RxWaitF;
|
bp.RxState = RxWaitF;
|
||||||
bp.rxfp = NULL;
|
bp.rxfp = NULL;
|
||||||
if (rc)
|
if (rc)
|
||||||
@ -1290,7 +1320,7 @@ TrType binkp_receiver(void)
|
|||||||
return Ok;
|
return Ok;
|
||||||
} else if (bcmd == MM_FILE) {
|
} else if (bcmd == MM_FILE) {
|
||||||
Syslog('+', "Binkp: partial received file, saving");
|
Syslog('+', "Binkp: partial received file, saving");
|
||||||
bclosefile(FALSE);
|
bclosefile(FALSE, FALSE, 0);
|
||||||
bp.rxfp = NULL;
|
bp.rxfp = NULL;
|
||||||
bp.RxState = RxAccF;
|
bp.RxState = RxAccF;
|
||||||
return Continue;
|
return Continue;
|
||||||
@ -1378,22 +1408,42 @@ TrType binkp_receiver(void)
|
|||||||
bp.rxpos += written;
|
bp.rxpos += written;
|
||||||
|
|
||||||
if (bp.rxpos == bp.rsize) {
|
if (bp.rxpos == bp.rsize) {
|
||||||
rc = binkp_send_command(MM_GOT, "%s %ld %ld", bp.rname, bp.rsize, bp.rtime);
|
rc2 = bclosefile(TRUE, (bp.CRCwe == Active), bp.rcrc32);
|
||||||
bclosefile(TRUE);
|
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);
|
||||||
bp.rxpos = bp.rxpos - bp.rxbytes;
|
bp.rxpos = bp.rxpos - bp.rxbytes;
|
||||||
gettimeofday(&rxtvend, &bp.tz);
|
gettimeofday(&rxtvend, &bp.tz);
|
||||||
#if defined(HAVE_ZLIB_H) || defined(HAVE_BZLIB_H)
|
#if defined(HAVE_ZLIB_H) || defined(HAVE_BZLIB_H)
|
||||||
if (bp.rxcompressed)
|
if (bp.rxcompressed)
|
||||||
Syslog('+', "Binkp: %s", compress_stat(bp.rxpos, bp.rxcompressed));
|
Syslog('+', "Binkp: %s", compress_stat(bp.rxpos, bp.rxcompressed));
|
||||||
#endif
|
#endif
|
||||||
Syslog('+', "Binkp: OK %s", transfertime(rxtvstart, rxtvend, bp.rxpos, FALSE));
|
Syslog('+', "Binkp: OK %s", transfertime(rxtvstart, rxtvend, bp.rxpos, FALSE));
|
||||||
rcvdbytes += bp.rxpos;
|
rcvdbytes += bp.rxpos;
|
||||||
bp.RxState = RxWaitF;
|
bp.RxState = RxWaitF;
|
||||||
if (rc)
|
if (rc)
|
||||||
return Failure;
|
return Failure;
|
||||||
else
|
else
|
||||||
return Ok;
|
return Ok;
|
||||||
}
|
}
|
||||||
bp.RxState = RxReceD;
|
bp.RxState = RxReceD;
|
||||||
return Ok;
|
return Ok;
|
||||||
} else if (bp.RxState == RxEOB) {
|
} else if (bp.RxState == RxEOB) {
|
||||||
@ -1536,20 +1586,23 @@ TrType binkp_transmitter(void)
|
|||||||
|
|
||||||
bp.tmode = CompNone;
|
bp.tmode = CompNone;
|
||||||
extra = (char *)"";
|
extra = (char *)"";
|
||||||
|
if ((bp.CRCwe == Active)) {
|
||||||
if ((tmp->compress == CompGZ) || (tmp->compress == CompBZ2)) {
|
Syslog('b', "Binkp: CRC mode active - GZ/BZ2 compression disabled");
|
||||||
bp.tmode = tmp->compress;
|
} else {
|
||||||
Syslog('b', "Binkp: compress_init start");
|
if ((tmp->compress == CompGZ) || (tmp->compress == CompBZ2)) {
|
||||||
if ((rc1 = compress_init(bp.tmode))) {
|
bp.tmode = tmp->compress;
|
||||||
Syslog('+', "Binkp: compress_init failed (rc=%d)", rc1);
|
Syslog('b', "Binkp: compress_init start");
|
||||||
tmp->compress = CompNone;
|
if ((rc1 = compress_init(bp.tmode))) {
|
||||||
bp.tmode = CompNone;
|
Syslog('+', "Binkp: compress_init failed (rc=%d)", rc1);
|
||||||
|
tmp->compress = CompNone;
|
||||||
|
bp.tmode = CompNone;
|
||||||
} else {
|
} else {
|
||||||
if (bp.tmode == CompBZ2)
|
if (bp.tmode == CompBZ2)
|
||||||
extra = (char *)" BZ2";
|
extra = (char *)" BZ2";
|
||||||
else if (bp.tmode == CompGZ)
|
else if (bp.tmode == CompGZ)
|
||||||
extra = (char *)" GZ";
|
extra = (char *)" GZ";
|
||||||
Syslog('b', "Binkp: compress_init ok, extra=%s", extra);
|
Syslog('b', "Binkp: compress_init ok, extra=%s", extra);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1559,8 +1612,13 @@ TrType binkp_transmitter(void)
|
|||||||
Syslog('+', "Binkp: send \"%s\" as \"%s\"", MBSE_SS(tmp->local), MBSE_SS(tmp->remote));
|
Syslog('+', "Binkp: send \"%s\" as \"%s\"", MBSE_SS(tmp->local), MBSE_SS(tmp->remote));
|
||||||
Syslog('+', "Binkp: size %u bytes, dated %s, comp %s",
|
Syslog('+', "Binkp: size %u bytes, dated %s, comp %s",
|
||||||
(unsigned int)tmp->size, date(tmp->date), cpstate[bp.tmode]);
|
(unsigned int)tmp->size, date(tmp->date), cpstate[bp.tmode]);
|
||||||
rc = binkp_send_command(MM_FILE, "%s %u %d %d%s", MBSE_SS(tmp->remote),
|
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);
|
(unsigned int)tmp->size, (int)tmp->date, (unsigned int)tmp->offset, extra);
|
||||||
|
}
|
||||||
if (rc) {
|
if (rc) {
|
||||||
bp.TxState = TxDone;
|
bp.TxState = TxDone;
|
||||||
return Failure;
|
return Failure;
|
||||||
@ -2013,16 +2071,13 @@ int binkp_banner(int originate)
|
|||||||
|
|
||||||
return rc;
|
return rc;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Send compression options
|
* Send compression options
|
||||||
*/
|
*/
|
||||||
int binkp_send_comp_opts(int originate)
|
int binkp_send_comp_opts(int originate)
|
||||||
{
|
{
|
||||||
int rc = 0, nr = FALSE;
|
int rc = 0, nr = FALSE, crc = FALSE;
|
||||||
#if defined(HAVE_ZLIB_H) || defined(HAVE_BZLIB_H)
|
|
||||||
int plz = FALSE, gz = FALSE, bz2 = FALSE;
|
int plz = FALSE, gz = FALSE, bz2 = FALSE;
|
||||||
char *p = NULL;
|
char *p = NULL;
|
||||||
|
|
||||||
@ -2046,6 +2101,11 @@ int binkp_send_comp_opts(int originate)
|
|||||||
}
|
}
|
||||||
#endif
|
#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",
|
Syslog('b', "Binkp: binkp_send_comp_opts(%s) NRwe=%s NRthey=%s",
|
||||||
originate ?"TRUE":"FALSE", opstate[bp.NRwe], opstate[bp.NRthey]);
|
originate ?"TRUE":"FALSE", opstate[bp.NRwe], opstate[bp.NRthey]);
|
||||||
if (originate) {
|
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");
|
p = xstrcpy((char *)"OPT");
|
||||||
if (bz2 || gz) {
|
if (bz2 || gz) {
|
||||||
bp.EXTCMDwe = Want;
|
bp.EXTCMDwe = Want;
|
||||||
@ -2075,10 +2135,11 @@ int binkp_send_comp_opts(int originate)
|
|||||||
p = xstrcat(p, (char *)" PLZ");
|
p = xstrcat(p, (char *)" PLZ");
|
||||||
if (nr)
|
if (nr)
|
||||||
p = xstrcat(p, (char *)" NR");
|
p = xstrcat(p, (char *)" NR");
|
||||||
|
if (crc)
|
||||||
|
p = xstrcat(p, (char *)" CRC");
|
||||||
rc = binkp_send_command(MM_NUL,"%s", p);
|
rc = binkp_send_command(MM_NUL,"%s", p);
|
||||||
free(p);
|
free(p);
|
||||||
}
|
}
|
||||||
#endif
|
|
||||||
|
|
||||||
return rc;
|
return rc;
|
||||||
}
|
}
|
||||||
@ -2123,6 +2184,11 @@ void binkp_set_comp_state(void)
|
|||||||
bp.NRwe = bp.NRthey = Active;
|
bp.NRwe = bp.NRthey = Active;
|
||||||
Syslog('+', "Binkp: NR mode 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);
|
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
|
* Set a flag so we can activate a workaround. This only works
|
||||||
* for incoming sessions.
|
* for incoming sessions.
|
||||||
*/
|
*/
|
||||||
if ((p = strstr(msg+4, "Internet Rex 2."))) {
|
if ((p = strstr(msg+4, "Internet Rex 2."))) {
|
||||||
q = strtok(p + 15, (char *)" \0");
|
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");
|
Syslog('b', " : Irex bug detected, workaround activated");
|
||||||
bp.buggyIrex = TRUE;
|
bp.buggyIrex = TRUE;
|
||||||
}
|
}
|
||||||
@ -2280,7 +2346,14 @@ void parse_m_nul(char *msg)
|
|||||||
} else if (strcmp(q, (char *)"ND") == 0) {
|
} else if (strcmp(q, (char *)"ND") == 0) {
|
||||||
Syslog('b', "Binkp: remote wants ND mode, NOT SUPPORTED HERE YET");
|
Syslog('b', "Binkp: remote wants ND mode, NOT SUPPORTED HERE YET");
|
||||||
bp.NDthey = Want;
|
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 {
|
} else {
|
||||||
@ -2761,6 +2834,7 @@ void fill_binkp_list(binkp_list **bkll, file_list *fal, off_t offs)
|
|||||||
(*tmpl)->size = tstat.st_size;
|
(*tmpl)->size = tstat.st_size;
|
||||||
(*tmpl)->date = tstat.st_mtime;
|
(*tmpl)->date = tstat.st_mtime;
|
||||||
(*tmpl)->compress = CompNone;
|
(*tmpl)->compress = CompNone;
|
||||||
|
(*tmpl)->crc32 = file_crc(fal->local, FALSE);
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Search compression method, but only if GZ or BZ2 compression is active.
|
* 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 */
|
time_t date; /* File date & time */
|
||||||
off_t offset; /* Start offset */
|
off_t offset; /* Start offset */
|
||||||
int compress; /* Compression state */
|
int compress; /* Compression state */
|
||||||
|
int crc32; /* File CRC32 checksum */
|
||||||
} binkp_list;
|
} 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
|
* file so that in a next session we know we must append to that file instead of
|
||||||
* trying to get the file again.
|
* trying to get the file again.
|
||||||
*/
|
*/
|
||||||
int bclosefile(int success)
|
int bclosefile(int success, int CRCflag, int crc)
|
||||||
{
|
{
|
||||||
int rc = 0;
|
int rc = 0;
|
||||||
|
int tmpcrc;
|
||||||
struct utimbuf ut;
|
struct utimbuf ut;
|
||||||
char *temp;
|
char *temp;
|
||||||
|
|
||||||
Syslog('b', "Binkp: closefile(), for file \"%s\"", MBSE_SS(infpath));
|
Syslog('b', "Binkp: closefile(), for file \"%s\"", MBSE_SS(infpath));
|
||||||
|
|
||||||
if ((infp == NULL) || (infpath == NULL)) {
|
if ((infp == NULL) || (infpath == NULL)) {
|
||||||
Syslog('+', "Binkp: closefile(), nothing to close");
|
Syslog('+', "Binkp: bclosefile(), nothing to close");
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -169,9 +170,24 @@ int bclosefile(int success)
|
|||||||
else
|
else
|
||||||
Syslog('b', "Binkp: unlinked %s", temp);
|
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.
|
* Move file from extra tmp to normal tempinbound.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
snprintf(temp, PATH_MAX, "%s/%s", tempinbound, basename(infpath));
|
snprintf(temp, PATH_MAX, "%s/%s", tempinbound, basename(infpath));
|
||||||
|
|
||||||
if (rc == 0) {
|
if (rc == 0) {
|
||||||
|
@ -4,6 +4,6 @@
|
|||||||
#define _BOPENFILE_H
|
#define _BOPENFILE_H
|
||||||
|
|
||||||
FILE *bopenfile(char *, time_t, off_t, off_t *);
|
FILE *bopenfile(char *, time_t, off_t, off_t *);
|
||||||
int bclosefile(int);
|
int bclosefile(int, int, int);
|
||||||
|
|
||||||
#endif
|
#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 *)"PLZ", NOPLZ},
|
||||||
{(char *)"GZ/BZ2", NOGZBZ2},
|
{(char *)"GZ/BZ2", NOGZBZ2},
|
||||||
{(char *)"NR", NONR},
|
{(char *)"NR", NONR},
|
||||||
|
{(char *)"CRC", NOCRC},
|
||||||
{NULL, 0}
|
{NULL, 0}
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -93,6 +94,8 @@ void rdoptions(int Loaded)
|
|||||||
localoptions |= NOZEDZAP;
|
localoptions |= NOZEDZAP;
|
||||||
if (CFG.NoHydra)
|
if (CFG.NoHydra)
|
||||||
localoptions |= NOHYDRA;
|
localoptions |= NOHYDRA;
|
||||||
|
if (CFG.NoCRC32)
|
||||||
|
localoptions |= NOCRC;
|
||||||
localoptions |= NONR;
|
localoptions |= NONR;
|
||||||
|
|
||||||
#ifndef HAVE_ZLIB_H
|
#ifndef HAVE_ZLIB_H
|
||||||
@ -131,6 +134,8 @@ void rdoptions(int Loaded)
|
|||||||
localoptions |= NOGZBZ2;
|
localoptions |= NOGZBZ2;
|
||||||
if (nodes.DoNR)
|
if (nodes.DoNR)
|
||||||
localoptions &= ~NONR;
|
localoptions &= ~NONR;
|
||||||
|
if (nodes.DoCRC)
|
||||||
|
localoptions &= ~NOCRC;
|
||||||
|
|
||||||
logoptions();
|
logoptions();
|
||||||
}
|
}
|
||||||
|
@ -67,6 +67,7 @@ extern int localoptions;
|
|||||||
#define NOPLZ 0x0400
|
#define NOPLZ 0x0400
|
||||||
#define NOGZBZ2 0x0800
|
#define NOGZBZ2 0x0800
|
||||||
#define NONR 0x1000
|
#define NONR 0x1000
|
||||||
|
#define NOCRC 0x2000
|
||||||
|
|
||||||
struct _history history; /* History record for sessions */
|
struct _history history; /* History record for sessions */
|
||||||
|
|
||||||
|
@ -54,7 +54,7 @@ void ProgName(void)
|
|||||||
return;
|
return;
|
||||||
|
|
||||||
mbse_colour(WHITE, BLACK);
|
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);
|
mbse_colour(YELLOW, BLACK);
|
||||||
printf(" %s\n", COPYRIGHT);
|
printf(" %s\n", COPYRIGHT);
|
||||||
}
|
}
|
||||||
|
@ -59,7 +59,7 @@ void ProgName(void)
|
|||||||
return;
|
return;
|
||||||
|
|
||||||
mbse_colour(WHITE, BLACK);
|
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);
|
mbse_colour(YELLOW, BLACK);
|
||||||
printf(" %s\n", COPYRIGHT);
|
printf(" %s\n", COPYRIGHT);
|
||||||
}
|
}
|
||||||
|
@ -157,7 +157,7 @@ void ProgName(void)
|
|||||||
return;
|
return;
|
||||||
|
|
||||||
mbse_colour(WHITE, BLACK);
|
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);
|
mbse_colour(YELLOW, BLACK);
|
||||||
printf(" %s\n", COPYRIGHT);
|
printf(" %s\n", COPYRIGHT);
|
||||||
}
|
}
|
||||||
|
@ -52,7 +52,7 @@ void ProgName(void)
|
|||||||
return;
|
return;
|
||||||
|
|
||||||
mbse_colour(WHITE, BLACK);
|
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);
|
mbse_colour(YELLOW, BLACK);
|
||||||
printf(" %s\n", COPYRIGHT);
|
printf(" %s\n", COPYRIGHT);
|
||||||
}
|
}
|
||||||
|
@ -1302,19 +1302,19 @@ void s_mailer(void)
|
|||||||
mbse_mvprintw(15, 2, "9. No callout");
|
mbse_mvprintw(15, 2, "9. No callout");
|
||||||
mbse_mvprintw(16, 2, "10. No EMSI session");
|
mbse_mvprintw(16, 2, "10. No EMSI session");
|
||||||
mbse_mvprintw(17, 2, "11. No Yooho/2U2");
|
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(12,59, "18. Phonetrans 1-10");
|
||||||
mbse_mvprintw(14,31, "13. No Zedzap");
|
mbse_mvprintw(13,59, "19. Phonetrans 11-20");
|
||||||
mbse_mvprintw(15,31, "14. No Hydra");
|
mbse_mvprintw(14,59, "20. Phonetrans 21-30");
|
||||||
mbse_mvprintw(16,31, "15. No MD5");
|
mbse_mvprintw(15,59, "21. Phonetrans 31-40");
|
||||||
mbse_mvprintw(17,31, "16. Zero Locks OK");
|
mbse_mvprintw(16,59, "22. Max. files");
|
||||||
|
mbse_mvprintw(17,59, "23. Max. MB.");
|
||||||
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.");
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -1368,7 +1368,7 @@ void e_mailer(void)
|
|||||||
show_bool(15,23, CFG.NoCall);
|
show_bool(15,23, CFG.NoCall);
|
||||||
show_bool(16,23, CFG.NoEMSI);
|
show_bool(16,23, CFG.NoEMSI);
|
||||||
show_bool(17,23, CFG.NoWazoo);
|
show_bool(17,23, CFG.NoWazoo);
|
||||||
|
show_bool(12,52, CFG.NoCRC32);
|
||||||
show_bool(13,52, CFG.NoZmodem);
|
show_bool(13,52, CFG.NoZmodem);
|
||||||
show_bool(14,52, CFG.NoZedzap);
|
show_bool(14,52, CFG.NoZedzap);
|
||||||
show_bool(15,52, CFG.NoHydra);
|
show_bool(15,52, CFG.NoHydra);
|
||||||
@ -1378,7 +1378,7 @@ void e_mailer(void)
|
|||||||
show_int( 16,75, CFG.Req_Files);
|
show_int( 16,75, CFG.Req_Files);
|
||||||
show_int( 17,75, CFG.Req_MBytes);
|
show_int( 17,75, CFG.Req_MBytes);
|
||||||
|
|
||||||
switch(select_menu(22)) {
|
switch(select_menu(23)) {
|
||||||
case 0: return;
|
case 0: return;
|
||||||
case 1: E_LOGL(CFG.cico_loglevel, "1.14.1", s_mailer)
|
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")
|
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 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 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 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 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 18:e_trans(0, 17); break;
|
||||||
case 13:E_BOOL(14,52, CFG.NoZedzap, "If set then the ^Zedzap^ protocol is disabled")
|
case 19:e_trans(10, 18); break;
|
||||||
case 14:E_BOOL(15,52, CFG.NoHydra, "If set then the ^Hydra^ protocol is disabled")
|
case 20:e_trans(20, 19); break;
|
||||||
case 15:E_BOOL(16,52, CFG.NoMD5, "Disable ^MD5 crypted^ passwords with binkp sessions")
|
case 21:e_trans(30, 20); break;
|
||||||
case 16:E_BOOL(17,52, CFG.ZeroLocks, "Allow ^zero byte node lockfiles^ created by another OS")
|
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")
|
||||||
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")
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -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 Calls", getboolean(CFG.NoCall));
|
||||||
add_webtable(wp, (char *)"No EMSI", getboolean(CFG.NoEMSI));
|
add_webtable(wp, (char *)"No EMSI", getboolean(CFG.NoEMSI));
|
||||||
add_webtable(wp, (char *)"No YooHoo/2U2", getboolean(CFG.NoWazoo));
|
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 Zmodem", getboolean(CFG.NoZmodem));
|
||||||
add_webtable(wp, (char *)"No Zedzap", getboolean(CFG.NoZedzap));
|
add_webtable(wp, (char *)"No Zedzap", getboolean(CFG.NoZedzap));
|
||||||
add_webtable(wp, (char *)"No Hydra", getboolean(CFG.NoHydra));
|
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 Calls %s\n", getboolean(CFG.NoCall));
|
||||||
fprintf(fp, " No EMSI %s\n", getboolean(CFG.NoEMSI));
|
fprintf(fp, " No EMSI %s\n", getboolean(CFG.NoEMSI));
|
||||||
fprintf(fp, " No YooHoo/2U2 %s\n", getboolean(CFG.NoWazoo));
|
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 Zmodem %s\n", getboolean(CFG.NoZmodem));
|
||||||
fprintf(fp, " No Zedzap %s\n", getboolean(CFG.NoZedzap));
|
fprintf(fp, " No Zedzap %s\n", getboolean(CFG.NoZedzap));
|
||||||
fprintf(fp, " No Hydra %s\n", getboolean(CFG.NoHydra));
|
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();
|
clr_index();
|
||||||
set_color(WHITE, BLACK);
|
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);
|
set_color(CYAN, BLACK);
|
||||||
|
|
||||||
mbse_mvprintw( 7, 6, "1. Session passwd");
|
mbse_mvprintw( 7, 2, "1. Session passwd");
|
||||||
mbse_mvprintw( 8, 6, "2. Dial command");
|
mbse_mvprintw( 8, 2, "2. Dial command");
|
||||||
mbse_mvprintw( 9, 6, "3. Phone number 1");
|
mbse_mvprintw( 9, 2, "3. Phone number 1");
|
||||||
mbse_mvprintw(10, 6, "4. Phone number 2");
|
mbse_mvprintw(10, 2, "4. Phone number 2");
|
||||||
mbse_mvprintw(11, 6, "5. Nodelist flags");
|
mbse_mvprintw(11, 2, "5. Nodelist flags");
|
||||||
mbse_mvprintw(12, 6, "6. Inet hostname");
|
mbse_mvprintw(12, 2, "6. Inet hostname");
|
||||||
mbse_mvprintw(13, 6, "7. Outbound sess.");
|
mbse_mvprintw(13, 2, "7. Outbound sess.");
|
||||||
mbse_mvprintw(14, 6, "8. Inbound sess.");
|
mbse_mvprintw(14, 2, "8. Inbound sess.");
|
||||||
mbse_mvprintw(15, 6, "9. No EMSI");
|
mbse_mvprintw(15, 2, "9. No EMSI");
|
||||||
mbse_mvprintw(16, 6, "10. No YooHoo/2U2");
|
mbse_mvprintw(16, 2, "10. No YooHoo/2U2");
|
||||||
mbse_mvprintw(17, 6, "11. No Filerequest");
|
mbse_mvprintw(17, 2, "11. No Filerequest");
|
||||||
mbse_mvprintw(18, 6, "12. Don't call");
|
mbse_mvprintw(18, 2, "12. Don't call");
|
||||||
mbse_mvprintw(19, 6, "13. 8.3 names");
|
mbse_mvprintw(19, 2, "13. 8.3 names");
|
||||||
mbse_mvprintw(20, 6, "14. NR mode");
|
mbse_mvprintw(13,33, "14. NR mode");
|
||||||
|
mbse_mvprintw(14,33, "15. CRC mode");
|
||||||
mbse_mvprintw(13,41, "15. No PLZ");
|
mbse_mvprintw(15,33, "16. No PLZ");
|
||||||
mbse_mvprintw(14,41, "16. No GZ/BZ2");
|
mbse_mvprintw(16,33, "17. No GZ/BZ2");
|
||||||
mbse_mvprintw(15,41, "17. No Zmodem");
|
mbse_mvprintw(17,33, "18. No Zmodem");
|
||||||
mbse_mvprintw(16,41, "18. No Zedzap");
|
mbse_mvprintw(18,33, "19. No Zedzap");
|
||||||
mbse_mvprintw(17,41, "19. No Hydra");
|
mbse_mvprintw(19,33, "20. No Hydra");
|
||||||
mbse_mvprintw(18,41, "20. Binkp old esc");
|
mbse_mvprintw(17,57, "21. Binkp old esc");
|
||||||
mbse_mvprintw(19,41, "21. No binkp/1.1");
|
mbse_mvprintw(18,57, "22. No binkp/1.1");
|
||||||
mbse_mvprintw(20,41, "22. Ign. Hold");
|
mbse_mvprintw(19,57, "23. Ign. Hold");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -850,25 +850,25 @@ void SessionEdit(void)
|
|||||||
show_str( 10,26,20, nodes.phone[1]);
|
show_str( 10,26,20, nodes.phone[1]);
|
||||||
show_str( 11,26,54, nodes.Nl_flags);
|
show_str( 11,26,54, nodes.Nl_flags);
|
||||||
show_str( 12,26,40, nodes.Nl_hostname);
|
show_str( 12,26,40, nodes.Nl_hostname);
|
||||||
show_sessiontype(13,26,nodes.Session_out);
|
show_sessiontype(13,23,nodes.Session_out);
|
||||||
show_sessiontype(14,26,nodes.Session_in);
|
show_sessiontype(14,23,nodes.Session_in);
|
||||||
show_bool(15,26, nodes.NoEMSI);
|
show_bool(15,23, nodes.NoEMSI);
|
||||||
show_bool(16,26, nodes.NoWaZOO);
|
show_bool(16,23, nodes.NoWaZOO);
|
||||||
show_bool(17,26, nodes.NoFreqs);
|
show_bool(17,23, nodes.NoFreqs);
|
||||||
show_bool(18,26, nodes.NoCall);
|
show_bool(18,23, nodes.NoCall);
|
||||||
show_bool(19,26, nodes.FNC);
|
show_bool(19,23, nodes.FNC);
|
||||||
show_bool(20,26, nodes.DoNR);
|
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);
|
switch(select_menu(23)) {
|
||||||
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)) {
|
|
||||||
case 0: return;
|
case 0: return;
|
||||||
case 1: E_STR( 7,26,15, nodes.Spasswd, "The ^Session password^ for this node")
|
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")
|
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 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 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 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;
|
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;
|
break;
|
||||||
case 9: E_BOOL(15,26, nodes.NoEMSI, "Disable ^EMSI handshake^ with this node")
|
case 9: E_BOOL(15,23, 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 10:E_BOOL(16,23, 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 11:E_BOOL(17,23, 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(18,23, nodes.NoCall, "Don't ^call^ this node")
|
||||||
case 13:E_BOOL(19,26, nodes.FNC, "Node needs ^DOS 8.3^ filenames")
|
case 13:E_BOOL(19,23, nodes.FNC, "Node needs ^DOS 8.3^ filenames")
|
||||||
case 14:E_BOOL(20,26, nodes.DoNR, "Use ^NR-mode^ in outgoing binkp sessions")
|
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 15:E_BOOL(13,61, nodes.NoPLZ, "Disable ^Binkp PLZ^ compression with this node")
|
case 16:E_BOOL(15,52, 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(16,52, 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(17,52, 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(18,52, 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(19,52, 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(17,76, 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(18,76, 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 23:E_BOOL(19,76, nodes.IgnHold, "Ignore node ^Hold or Down^ nodelist status")
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user