diff --git a/AUTHORS b/AUTHORS index 79f7dc03..abdd9df2 100644 --- a/AUTHORS +++ b/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 diff --git a/ChangeLog b/ChangeLog index 7cb1fa00..ec4d6c67 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,140 @@ +v1.0.5 02-Nov-2014 - Andrew Leary + + 1. Adjusted mbcico's .flo file logic to support a space + character as the first character of the .flo file line. + This character indicates that the file named in the + remainder of the line should be sent to the remote system. + This is needed to allow transmitting filenames that start + with .flo file reserved characters such as ^, #, -, or @. + 2. Worked on increasing reliability of Binkp NR mode. It + is strongly recommended that CRC mode be enabled for any + node which NR mode is enabled for. + +v1.0.4 03-Sep-2014 - Andrew Leary + + 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. + + libmbse.a: + Updated to ftscprod.012. + + +v0.95.15 26-Dec-2012 + + mblogin: + Logs to facility LOG_AUTHPRIV instead of LOG_AUTH. + + mbuseradd: + Logs to facility LOG_AUTHPRIV instead of LOG_AUTH. + + mbpasswd: + Logs to facility LOG_AUTHPRIV instead of LOG_AUTH. + + v0.95.14 01-Dec-2011 general: diff --git a/FILE_ID.DIZ.in b/FILE_ID.DIZ.in index 260e7ee2..c91eaddd 100644 --- a/FILE_ID.DIZ.in +++ b/FILE_ID.DIZ.in @@ -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. + diff --git a/Makefile b/Makefile index d5c63dee..f2ccbdf2 100644 --- a/Makefile +++ b/Makefile @@ -7,7 +7,7 @@ OTHER = AUTHORS ChangeLog COPYING DEBUG CRON.sh FILE_ID.DIZ.in \ INSTALL.in Makefile Makefile.global.in NEWS cpuflags \ ChangeLog_1998 ChangeLog_1999 ChangeLog_2000 ChangeLog_2001 \ ChangeLog_2002 ChangeLog_2003 ChangeLog_2004 ChangeLog_2005 \ - README SETUP.sh \ + ChangeLog_2006 ChangeLog_2007 README SETUP.sh \ TODO UPGRADE aclocal.m4 checkbasic config.h.in configure \ configure.ac \ paths.h.in README.Gentoo README.Ubuntu diff --git a/README b/README index f54feb92..5faa673a 100644 --- a/README +++ b/README @@ -1,5 +1,3 @@ -$Id: README,v 1.8 2006/07/03 20:27:21 mbse Exp $ - MBSE BBS Packages. @@ -26,3 +24,10 @@ For first time installing, see the file INSTALL. After installation, the html guide is installed in /opt/mbse/html. +Since 1 August 2013 I (Michiel Broek) stopped developing this package. But this +is a GPL2 licensed open source package so feel free to continue to improve it. +I only ask to make it clear to others that it is a modified package. You can do +that by changing the version numbers and messages in the file configure.ac and +then run autoconf to update the configure scripts. + + diff --git a/TODO b/TODO index 15ccbdb4..32cf9d12 100644 --- a/TODO +++ b/TODO @@ -1,6 +1,6 @@ - MBSE BBS V0.95.14 TODO list. - ---------------------------- + MBSE BBS V1.0.1 TODO list. + -------------------------- These are a list of things that must be implemented one way or another. Some things are urgent and necessary to operate the bbs @@ -12,7 +12,6 @@ N = Normal, second priority. L = Cosmetic or nice to have. W = Feature request. - X = Will not be done unless it's really needed. everything: N: In BSO the i flavor should have been d flavor. @@ -35,15 +34,8 @@ mbsebbs: N: Only count posted messages in local mail areas. - X: OLR: include private email area in download packets. See also global - wish for private mail areas. - - X: OLR: implement some global settings from the offline configuration. - N: OLR: qwk, check netmail entered from reader, fido address missing? - X: Implement kermit protocol, external versions don't work right. - mbfido: N: Don't log an error if no file_id.diz is found. @@ -66,8 +58,6 @@ mbfido: W: Add macro's for stats of all months. - X: Implement file requests for directory nodes. - W: Add %from command to areamgr/filemgr. W: Add netmail notification of changed areas. diff --git a/configure b/configure index 8182d384..35117c64 100755 --- a/configure +++ b/configure @@ -1,11 +1,9 @@ #! /bin/sh # Guess values for system-dependent variables and create Makefiles. -# Generated by GNU Autoconf 2.68. +# Generated by GNU Autoconf 2.69. # # -# Copyright (C) 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001, -# 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 Free Software -# Foundation, Inc. +# Copyright (C) 1992-1996, 1998-2012 Free Software Foundation, Inc. # # # This configure script is free software; the Free Software Foundation @@ -134,6 +132,31 @@ export LANGUAGE # CDPATH. (unset CDPATH) >/dev/null 2>&1 && unset CDPATH +# Use a proper internal environment variable to ensure we don't fall + # into an infinite loop, continuously re-executing ourselves. + if test x"${_as_can_reexec}" != xno && test "x$CONFIG_SHELL" != x; then + _as_can_reexec=no; export _as_can_reexec; + # We cannot yet assume a decent shell, so we have to provide a +# neutralization value for shells without unset; and this also +# works around shells that cannot unset nonexistent variables. +# Preserve -v and -x to the replacement shell. +BASH_ENV=/dev/null +ENV=/dev/null +(unset BASH_ENV) >/dev/null 2>&1 && unset BASH_ENV ENV +case $- in # (((( + *v*x* | *x*v* ) as_opts=-vx ;; + *v* ) as_opts=-v ;; + *x* ) as_opts=-x ;; + * ) as_opts= ;; +esac +exec $CONFIG_SHELL $as_opts "$as_myself" ${1+"$@"} +# Admittedly, this is quite paranoid, since all the known shells bail +# out after a failed `exec'. +$as_echo "$0: could not re-execute with $CONFIG_SHELL" >&2 +as_fn_exit 255 + fi + # We don't want this to propagate to other subprocesses. + { _as_can_reexec=; unset _as_can_reexec;} if test "x$CONFIG_SHELL" = x; then as_bourne_compatible="if test -n \"\${ZSH_VERSION+set}\" && (emulate sh) >/dev/null 2>&1; then : emulate sh @@ -167,7 +190,8 @@ if ( set x; as_fn_ret_success y && test x = \"\$1\" ); then : else exitcode=1; echo positional parameters were not saved. fi -test x\$exitcode = x0 || exit 1" +test x\$exitcode = x0 || exit 1 +test -x / || exit 1" as_suggested=" as_lineno_1=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_1a=\$LINENO as_lineno_2=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_2a=\$LINENO eval 'test \"x\$as_lineno_1'\$as_run'\" != \"x\$as_lineno_2'\$as_run'\" && @@ -212,21 +236,25 @@ IFS=$as_save_IFS if test "x$CONFIG_SHELL" != x; then : - # We cannot yet assume a decent shell, so we have to provide a - # neutralization value for shells without unset; and this also - # works around shells that cannot unset nonexistent variables. - # Preserve -v and -x to the replacement shell. - BASH_ENV=/dev/null - ENV=/dev/null - (unset BASH_ENV) >/dev/null 2>&1 && unset BASH_ENV ENV - export CONFIG_SHELL - case $- in # (((( - *v*x* | *x*v* ) as_opts=-vx ;; - *v* ) as_opts=-v ;; - *x* ) as_opts=-x ;; - * ) as_opts= ;; - esac - exec "$CONFIG_SHELL" $as_opts "$as_myself" ${1+"$@"} + export CONFIG_SHELL + # We cannot yet assume a decent shell, so we have to provide a +# neutralization value for shells without unset; and this also +# works around shells that cannot unset nonexistent variables. +# Preserve -v and -x to the replacement shell. +BASH_ENV=/dev/null +ENV=/dev/null +(unset BASH_ENV) >/dev/null 2>&1 && unset BASH_ENV ENV +case $- in # (((( + *v*x* | *x*v* ) as_opts=-vx ;; + *v* ) as_opts=-v ;; + *x* ) as_opts=-x ;; + * ) as_opts= ;; +esac +exec $CONFIG_SHELL $as_opts "$as_myself" ${1+"$@"} +# Admittedly, this is quite paranoid, since all the known shells bail +# out after a failed `exec'. +$as_echo "$0: could not re-execute with $CONFIG_SHELL" >&2 +exit 255 fi if test x$as_have_required = xno; then : @@ -328,6 +356,14 @@ $as_echo X"$as_dir" | } # as_fn_mkdir_p + +# as_fn_executable_p FILE +# ----------------------- +# Test if FILE is an executable regular file. +as_fn_executable_p () +{ + test -f "$1" && test -x "$1" +} # as_fn_executable_p # as_fn_append VAR VALUE # ---------------------- # Append the text in VALUE to the end of the definition contained in VAR. Take @@ -449,6 +485,10 @@ as_cr_alnum=$as_cr_Letters$as_cr_digits chmod +x "$as_me.lineno" || { $as_echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2; as_fn_exit 1; } + # If we had to re-execute with $CONFIG_SHELL, we're ensured to have + # already done that, so ensure we don't try to do so again and fall + # in an infinite loop. This has already happened in practice. + _as_can_reexec=no; export _as_can_reexec # Don't try to exec as it changes $[0], causing all sort of problems # (the dirname of $[0] is not the place where we might find the # original and so on. Autoconf is especially sensitive to this). @@ -483,16 +523,16 @@ if (echo >conf$$.file) 2>/dev/null; then # ... but there are two gotchas: # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail. # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable. - # In both cases, we have to default to `cp -p'. + # In both cases, we have to default to `cp -pR'. ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe || - as_ln_s='cp -p' + as_ln_s='cp -pR' elif ln conf$$.file conf$$ 2>/dev/null; then as_ln_s=ln else - as_ln_s='cp -p' + as_ln_s='cp -pR' fi else - as_ln_s='cp -p' + as_ln_s='cp -pR' fi rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file rmdir conf$$.dir 2>/dev/null @@ -504,28 +544,8 @@ else as_mkdir_p=false fi -if test -x / >/dev/null 2>&1; then - as_test_x='test -x' -else - if ls -dL / >/dev/null 2>&1; then - as_ls_L_option=L - else - as_ls_L_option= - fi - as_test_x=' - eval sh -c '\'' - if test -d "$1"; then - test -d "$1/."; - else - case $1 in #( - -*)set "./$1";; - esac; - case `ls -ld'$as_ls_L_option' "$1" 2>/dev/null` in #(( - ???[sx]*):;;*)false;;esac;fi - '\'' sh - ' -fi -as_executable_p=$as_test_x +as_test_x='test -x' +as_executable_p=as_fn_executable_p # Sed expression to map a string onto a valid CPP name. as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'" @@ -1169,8 +1189,6 @@ target=$target_alias if test "x$host_alias" != x; then if test "x$build_alias" = x; then cross_compiling=maybe - $as_echo "$as_me: WARNING: if you wanted to set the --build type, don't use --host. - If a cross compiler is detected then cross compile mode will be used" >&2 elif test "x$build_alias" != "x$host_alias"; then cross_compiling=yes fi @@ -1406,9 +1424,9 @@ test -n "$ac_init_help" && exit $ac_status if $ac_init_version; then cat <<\_ACEOF configure -generated by GNU Autoconf 2.68 +generated by GNU Autoconf 2.69 -Copyright (C) 2010 Free Software Foundation, Inc. +Copyright (C) 2012 Free Software Foundation, Inc. This configure script is free software; the Free Software Foundation gives unlimited permission to copy, distribute and modify it. _ACEOF @@ -1594,7 +1612,7 @@ $as_echo "$ac_try_echo"; } >&5 test ! -s conftest.err } && test -s conftest$ac_exeext && { test "$cross_compiling" = yes || - $as_test_x conftest$ac_exeext + test -x conftest$ac_exeext }; then : ac_retval=0 else @@ -1928,7 +1946,7 @@ This file contains any messages produced by compilers while running configure, to aid debugging if configure makes a mistake. It was created by $as_me, which was -generated by GNU Autoconf 2.68. Invocation command line was +generated by GNU Autoconf 2.69. Invocation command line was $ $0 $@ @@ -2289,12 +2307,12 @@ SUBDIRS="lib mbcico mbfido mbmon mbsebbs mbutils mbnntp mbtask mbsetup unix lang # After changeing the version number, run autoconf! # PACKAGE="mbsebbs" -MAJOR="0" -MINOR="95" -REVISION="14" +MAJOR="1" +MINOR="0" +REVISION="5" VERSION="$MAJOR.$MINOR.$REVISION" -COPYRIGHT="Copyright (C) 1997-2011 Michiel Broek, All Rights Reserved" -SHORTRIGHT="Copyright (C) 1997-2011 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`" @@ -2359,7 +2377,7 @@ do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_MAKE="gmake" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 @@ -2396,7 +2414,7 @@ do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_MAKE="make" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 @@ -2434,7 +2452,7 @@ do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_AWK="gawk" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 @@ -2471,7 +2489,7 @@ do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_AWK="nawk" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 @@ -2508,7 +2526,7 @@ do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_AWK="awk" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 @@ -2546,7 +2564,7 @@ do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_INSTALL="ginstall" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 @@ -2583,7 +2601,7 @@ do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_INSTALL="install" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 @@ -2626,7 +2644,7 @@ do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_CC="${ac_tool_prefix}gcc" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 @@ -2666,7 +2684,7 @@ do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_CC="gcc" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 @@ -2719,7 +2737,7 @@ do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_CC="${ac_tool_prefix}cc" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 @@ -2760,7 +2778,7 @@ do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then if test "$as_dir/$ac_word$ac_exec_ext" = "/usr/ucb/cc"; then ac_prog_rejected=yes continue @@ -2818,7 +2836,7 @@ do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_CC="$ac_tool_prefix$ac_prog" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 @@ -2862,7 +2880,7 @@ do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_CC="$ac_prog" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 @@ -3308,8 +3326,7 @@ cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include -#include -#include +struct stat; /* Most of the following tests are stolen from RCS 5.7's src/conf.sh. */ struct buf { int x; }; FILE * (*rcsopen) (struct buf *, struct stat *, int); @@ -3442,7 +3459,7 @@ do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_RANLIB="${ac_tool_prefix}ranlib" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 @@ -3482,7 +3499,7 @@ do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_RANLIB="ranlib" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 @@ -3544,7 +3561,7 @@ do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_TAR="tar" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 @@ -3581,7 +3598,7 @@ do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_ZIP="zip" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 @@ -3621,7 +3638,7 @@ do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_path_CHOWN="$as_dir/$ac_word$ac_exec_ext" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 @@ -3799,7 +3816,7 @@ do for ac_prog in grep ggrep; do for ac_exec_ext in '' $ac_executable_extensions; do ac_path_GREP="$as_dir/$ac_prog$ac_exec_ext" - { test -f "$ac_path_GREP" && $as_test_x "$ac_path_GREP"; } || continue + as_fn_executable_p "$ac_path_GREP" || continue # Check for GNU ac_path_GREP and select it if it is found. # Check for GNU $ac_path_GREP case `"$ac_path_GREP" --version 2>&1` in @@ -3865,7 +3882,7 @@ do for ac_prog in egrep; do for ac_exec_ext in '' $ac_executable_extensions; do ac_path_EGREP="$as_dir/$ac_prog$ac_exec_ext" - { test -f "$ac_path_EGREP" && $as_test_x "$ac_path_EGREP"; } || continue + as_fn_executable_p "$ac_path_EGREP" || continue # Check for GNU ac_path_EGREP and select it if it is found. # Check for GNU $ac_path_EGREP case `"$ac_path_EGREP" --version 2>&1` in @@ -5491,11 +5508,11 @@ else int main () { -/* FIXME: Include the comments suggested by Paul. */ + #ifndef __cplusplus - /* Ultrix mips cc rejects this. */ + /* Ultrix mips cc rejects this sort of thing. */ typedef int charset[2]; - const charset cs; + const charset cs = { 0, 0 }; /* SunOS 4.1.1 cc rejects this. */ char const *const *pcpcc; char **ppc; @@ -5512,8 +5529,9 @@ main () ++pcpcc; ppc = (char**) pcpcc; pcpcc = (char const *const *) ppc; - { /* SCO 3.2v4 cc rejects this. */ - char *t; + { /* SCO 3.2v4 cc rejects this sort of thing. */ + char tx; + char *t = &tx; char const *s = 0 ? (char *) 0 : (char const *) 0; *t++ = 0; @@ -5529,10 +5547,10 @@ main () iptr p = 0; ++p; } - { /* AIX XL C 1.02.0.0 rejects this saying + { /* AIX XL C 1.02.0.0 rejects this sort of thing, saying "k.c", line 2.27: 1506-025 (S) Operand must be a modifiable lvalue. */ - struct s { int j; const int *ap[3]; }; - struct s *b; b->j = 5; + struct s { int j; const int *ap[3]; } bx; + struct s *b = &bx; b->j = 5; } { /* ULTRIX-32 V3.1 (Rev 9) vcc rejects this */ const int foo = 10; @@ -6003,7 +6021,7 @@ do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_path_COMPRESS="$as_dir/$ac_word$ac_exec_ext" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 @@ -6044,7 +6062,7 @@ do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_path_GZIP="$as_dir/$ac_word$ac_exec_ext" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 @@ -6085,7 +6103,7 @@ do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_path_ARC="$as_dir/$ac_word$ac_exec_ext" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 @@ -6125,7 +6143,7 @@ do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_path_NOMARCH="$as_dir/$ac_word$ac_exec_ext" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 @@ -6165,7 +6183,7 @@ do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_path_ARJ="$as_dir/$ac_word$ac_exec_ext" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 @@ -6205,7 +6223,7 @@ do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_path_UNARJ="$as_dir/$ac_word$ac_exec_ext" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 @@ -6245,7 +6263,7 @@ do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_path_LHA="$as_dir/$ac_word$ac_exec_ext" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 @@ -6285,7 +6303,7 @@ do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_path_RAR="$as_dir/$ac_word$ac_exec_ext" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 @@ -6325,7 +6343,7 @@ do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_path_UNRAR="$as_dir/$ac_word$ac_exec_ext" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 @@ -6365,7 +6383,7 @@ do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_path_TAR="$as_dir/$ac_word$ac_exec_ext" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 @@ -6405,7 +6423,7 @@ do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_path_ZIP="$as_dir/$ac_word$ac_exec_ext" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 @@ -6445,7 +6463,7 @@ do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_path_UNZIP="$as_dir/$ac_word$ac_exec_ext" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 @@ -6485,7 +6503,7 @@ do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_path_ZOO="$as_dir/$ac_word$ac_exec_ext" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 @@ -6525,7 +6543,7 @@ do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_path_HA="$as_dir/$ac_word$ac_exec_ext" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 @@ -6565,7 +6583,7 @@ do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_path_ANTIVIR="$as_dir/$ac_word$ac_exec_ext" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 @@ -6605,7 +6623,7 @@ do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_path_FPROT="$as_dir/$ac_word$ac_exec_ext" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 @@ -6645,7 +6663,7 @@ do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_path_UVSCAN="$as_dir/$ac_word$ac_exec_ext" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 @@ -6685,7 +6703,7 @@ do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_path_CLAMAV="$as_dir/$ac_word$ac_exec_ext" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 @@ -6725,7 +6743,7 @@ do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_path_RB="$as_dir/$ac_word$ac_exec_ext" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 @@ -6765,7 +6783,7 @@ do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_path_RB="$as_dir/$ac_word$ac_exec_ext" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 @@ -6805,7 +6823,7 @@ do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_path_SB="$as_dir/$ac_word$ac_exec_ext" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 @@ -6845,7 +6863,7 @@ do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_path_SB="$as_dir/$ac_word$ac_exec_ext" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 @@ -6885,7 +6903,7 @@ do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_path_RZ="$as_dir/$ac_word$ac_exec_ext" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 @@ -6925,7 +6943,7 @@ do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_path_RZ="$as_dir/$ac_word$ac_exec_ext" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 @@ -6965,7 +6983,7 @@ do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_path_SZ="$as_dir/$ac_word$ac_exec_ext" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 @@ -7005,7 +7023,7 @@ do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_path_SZ="$as_dir/$ac_word$ac_exec_ext" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 @@ -7045,7 +7063,7 @@ do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_path_GOLDEDBIN="$as_dir/$ac_word$ac_exec_ext" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 @@ -7085,7 +7103,7 @@ do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_path_GOLDEDBIN="$as_dir/$ac_word$ac_exec_ext" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 @@ -7125,7 +7143,7 @@ do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_path_GOLDNODE="$as_dir/$ac_word$ac_exec_ext" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 @@ -7165,7 +7183,7 @@ do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_path_GOLDNODE="$as_dir/$ac_word$ac_exec_ext" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 @@ -7205,7 +7223,7 @@ do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_path_CONVERT="$as_dir/$ac_word$ac_exec_ext" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 @@ -7810,16 +7828,16 @@ if (echo >conf$$.file) 2>/dev/null; then # ... but there are two gotchas: # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail. # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable. - # In both cases, we have to default to `cp -p'. + # In both cases, we have to default to `cp -pR'. ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe || - as_ln_s='cp -p' + as_ln_s='cp -pR' elif ln conf$$.file conf$$ 2>/dev/null; then as_ln_s=ln else - as_ln_s='cp -p' + as_ln_s='cp -pR' fi else - as_ln_s='cp -p' + as_ln_s='cp -pR' fi rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file rmdir conf$$.dir 2>/dev/null @@ -7879,28 +7897,16 @@ else as_mkdir_p=false fi -if test -x / >/dev/null 2>&1; then - as_test_x='test -x' -else - if ls -dL / >/dev/null 2>&1; then - as_ls_L_option=L - else - as_ls_L_option= - fi - as_test_x=' - eval sh -c '\'' - if test -d "$1"; then - test -d "$1/."; - else - case $1 in #( - -*)set "./$1";; - esac; - case `ls -ld'$as_ls_L_option' "$1" 2>/dev/null` in #(( - ???[sx]*):;;*)false;;esac;fi - '\'' sh - ' -fi -as_executable_p=$as_test_x + +# as_fn_executable_p FILE +# ----------------------- +# Test if FILE is an executable regular file. +as_fn_executable_p () +{ + test -f "$1" && test -x "$1" +} # as_fn_executable_p +as_test_x='test -x' +as_executable_p=as_fn_executable_p # Sed expression to map a string onto a valid CPP name. as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'" @@ -7922,7 +7928,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 # values after options handling. ac_log=" This file was extended by $as_me, which was -generated by GNU Autoconf 2.68. Invocation command line was +generated by GNU Autoconf 2.69. Invocation command line was CONFIG_FILES = $CONFIG_FILES CONFIG_HEADERS = $CONFIG_HEADERS @@ -7988,10 +7994,10 @@ cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`" ac_cs_version="\\ config.status -configured by $0, generated by GNU Autoconf 2.68, +configured by $0, generated by GNU Autoconf 2.69, with options \\"\$ac_cs_config\\" -Copyright (C) 2010 Free Software Foundation, Inc. +Copyright (C) 2012 Free Software Foundation, Inc. This config.status script is free software; the Free Software Foundation gives unlimited permission to copy, distribute and modify it." @@ -8079,7 +8085,7 @@ fi _ACEOF cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 if \$ac_cs_recheck; then - set X '$SHELL' '$0' $ac_configure_args \$ac_configure_extra_args --no-create --no-recursion + set X $SHELL '$0' $ac_configure_args \$ac_configure_extra_args --no-create --no-recursion shift \$as_echo "running CONFIG_SHELL=$SHELL \$*" >&6 CONFIG_SHELL='$SHELL' diff --git a/configure.ac b/configure.ac index e77f836e..e2bb3785 100644 --- a/configure.ac +++ b/configure.ac @@ -10,12 +10,12 @@ AC_SUBST(SUBDIRS) # After changeing the version number, run autoconf! # PACKAGE="mbsebbs" -MAJOR="0" -MINOR="95" -REVISION="14" +MAJOR="1" +MINOR="0" +REVISION="5" VERSION="$MAJOR.$MINOR.$REVISION" -COPYRIGHT="Copyright (C) 1997-2011 Michiel Broek, All Rights Reserved" -SHORTRIGHT="Copyright (C) 1997-2011 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`" diff --git a/lib/Makefile b/lib/Makefile index 1985485e..c3ed1bc5 100644 --- a/lib/Makefile +++ b/lib/Makefile @@ -42,7 +42,7 @@ OBJS = ${COMMON_OBJS} ${DBASE_OBJS} ${MSGBASE_OBJS} ${MBINET_OBJS} \ ${DIESEL_OBJS} ${NODELIST_OBJS} ${CHC_OBJS} HDRS = ${COMMON_HDRS} ${DBASE_HDRS} ${MSGBASE_HDRS} ${MBINET_HDRS} \ ${DIESEL_HDRS} ${NODELIST_HDRS} ${CHC_HDRS} ${OTHER_HDRS} -OTHER = Makefile README ftscprod.010 mkprod.awk \ +OTHER = Makefile README ftscprod.016 mkprod.awk \ README.diesel README.macro Diesel.doc nodelist.conf TARGET = libmbse.a libdbase.a libmsgbase.a libmbinet.a libdiesel.a \ libnodelist.a diff --git a/lib/ftscprod.016 b/lib/ftscprod.016 new file mode 100644 index 00000000..f6b13069 --- /dev/null +++ b/lib/ftscprod.016 @@ -0,0 +1,302 @@ +0000,Fido,MS-DOS,Packer/mailer,Tom_Jennings,1:125/111 +0001,Rover,MS-DOS,Packer/mailer,Bob_Hartman,1:104/501 +0002,SEAdog,MS-DOS,Packer/mailer,Thom_Henderson,1:107/542.1 +0003,WinDog,MS-DOS,Mailer,Solar_Wind_Computing,1:115/333 +0004,Slick-150,HP-150,Packer/mailer,Jerry_Bain,???? +0005,Opus,MS-DOS,Packer/mailer,Doug_Boone,1:124/4227 +0006,Dutchie,MS-DOS,Packer/mailer,Henk_Wevers,2:500/1 +0007,WPL_Library,Amiga,Mailer,Russell_McOrmand,1:163/109 +0008,Tabby,Macintosh,Packer/mailer,Michael_Connick,1:107/412 +0009,SWMail,OS/2,Mailer,Solar_Wind_Computing,1:115/333 +000A,Wolf-68k,CPM-68k,Packer/mailer,Robert_Heller,1:321/153 +000B,QMM,QNX,Packer/mailer,Rick_Duff,1:167/201 +000C,FrontDoor,MS-DOS,Packer/mailer,Joaquim_Homrighausen,2:270/17 +000D,GOmail,MS-DOS,Packer,Scott_Green,???? +000E,FFGate,MS-DOS,Packer,Ruedi_Kneubuehler,2:301/580 +000F,FileMgr,MS-DOS,Packer,Erik_van_Emmerik,2:281/611 +0010,FIDZERCP,MS-DOS,Packer,Thorsten_Seidel,2:242/55 +0011,MailMan,MS-DOS,Packer,Ron_Bemis,1:124/1113 +0012,OOPS,MS-DOS,Packer,Tom_Kashuba,1:322/379 +0013,GS-Point,Atari_ST,Packer/mailer,Harry_Lee,1:124/4230 +0014,BGMail,????,????,Ray_Gwinn,1:265/104 +0015,ComMotion/2,OS/2,Packer/mailer,Michael_Buenter,2:301/602 +0016,OurBBS_Fidomailer,MS-DOS/Unix/Coherent,Packer/mailer,Brian_Keahl,1:133/524 +0017,FidoPcb,MS-DOS,Packer,Matjaz_Koce,2:380/100 +0018,WimpLink,Archimedes,Packer/mailer,Remco_de_Vreugd,2:283/307 +0019,BinkScan,MS-DOS,Packer,Shawn_Stoddard,1:362/101 +001A,D'Bridge,MS-DOS,Packer/mailer,Nick Andre,1:1/130,20110725 +001B,BinkleyTerm,MS-DOS,Mailer,Vince_Perriello,1:343/491 +001C,Yankee,MS-DOS,Packer,Randy_Edwards,???? +001D,uuGate,MS-DOS,Packer,Geoff_Watts,3:690/710 +001E,Daisy,Apple_][,Packer/mailer,Raymond_&_Ken_Lo,3:700/1 +001F,Polar_Bear,????,Packer/mailer,Kenneth_McLeod,1:101/190 +0020,The-Box,MS-DOS/Atari_ST,Packer/mailer,Jac_Kersing/Arjen_Lentz,2:283/333 +0021,STARgate/2,OS/2,Packer/mailer,Shawn_Stoddard,1:362/101 +0022,TMail,MS-DOS,Packer,Larry_Lewis,3:713/600.1701 +0023,TCOMMail,MS-DOS,Packer/mailer,Mike_Ratledge,1:372/888 +0024,GIGO,MS-DOS,Packer,Jason_Fesler,1:203/7707,,940228 +0025,RBBSMail,MS-DOS,Packer,Jan_Terpstra,2:512/10 +0026,Apple-Netmail,Apple_][,Packer/mailer,Bill_Fenner,1:129/87 +0027,Chameleon,Amiga,Mailer,Juergen_Hermann,2:241/2.12 +0028,Majik_Board,MS-DOS,Packer/mailer,Dale_Barnes,1:3601/14.20 +0029,QM,MS-DOS,Packer,George_Peace,1:270/101 +002A,Point_And_Click,Amiga,Packer,Rob_Tillotson,1:201/40.302 +002B,Aurora_Three_Bundler,MS-DOS,Packer,Oliver_McDonald,???? +002C,FourDog,MS-DOS,Packer,Shay_Walters,1:376/12 +002D,MSG-PACK,MS-DOS,Packer,Tom_Hendricks,1:261/662 +002E,AMAX,MS-DOS,Packer,Alan_Applegate,1:104/36 +002F,Domain_Communication_System,????,????,Hal_Duprie,1:101/106 +0030,LesRobot,????,Packer,Lennart_Svensonn,2:501/2 +0031,Rose,MS-DOS,Packer/mailer,Glen_Jackson,1:100/617 +0032,Paragon,Amiga,Packer/mailer,Jon_Radoff,1:322/545 +0033,BinkleyTerm/oMMM/ST,Atari_ST,Packer/mailer,Bill_Scull,1:363/112,,19951209 +0034,StarNet,Atari_ST,Mailer,Eric_Drewry,1:322/566 +0035,ZzyZx,MS-DOS,Packer,Jason_Steck,1:124/424 +0036,QEcho,MS-DOS,Packer,The_QuickBBS_Group,1:363/1701 +0037,BOOM,MS-DOS,Packer,Andrew_Farmer,1:243/1 +0038,PBBS,Amiga,Packer/mailer,Todd_Kover,1:261/1028 +0039,TrapDoor,Amiga,Mailer,Maximilian_Hantsch,2:310/6 +003A,Welmat,Amiga,Mailer,Russell_McOrmand,1:163/109 +003B,NetGate,Unix-386,Packer,David_Nugent,3:632/348 +003C,Odie,MS-DOS,Mailer,Matt_Farrenkopf,1:105/376 +003D,Quick_Gimme,CPM-80/MS-DOS,Packer/mailer,Laeeth_Isaacs,2:254/18 +003E,dbLink,MS-DOS,Packer/mailer,Chris_Irwin,1:18/68 +003F,TosScan,MS-DOS,Packer,Joaquim_Homrighausen,2:270/17 +0040,Beagle,MS-DOS,Mailer,Alexander_Holy,2:310/90 +0041,Igor,MS-DOS,Mailer,Harry_Lee,1:124/4230 +0042,TIMS,MS-DOS,Packer/mailer,Bit_Bucket_Software,1:104/501 +0043,Phoenix,MS-DOS,Packer/mailer,International_Telecommunications,1:296/5,,19930624 +0044,FrontDoor_APX,MS-DOS,Packer/mailer,Joaquim_Homrighausen,2:270/17 +0045,XRS,MS-DOS,Packer,Mike_Ratledge,1:372/888 +0046,Juliet_Mail_System,Amiga,Packer,Gregory_Kritsch,1:163/109.30 +0047,Jabberwocky,Macintosh,Packer,Eric_Larson,1:2605/620 +0048,XST,MS-DOS,Packer,Wayne_Michaels,1:380/100 +0049,MailStorm,Amiga,Packer,Russel_Miranda,1:268/106 +004A,BIX-Mail,????,Mailer,Bob_Hartman,1:104/501 +004B,IMAIL,MS-DOS,Packer,IMAIL_INC.,2:246/47 +004C,FTNGate,MS-DOS,Packer,Jason_Steck,1:104/424 +004D,RealMail,MS-DOS,Packer,Taine_Gilliam,1:372/42 +004E,Lora-CBIS,MS-DOS,Mailer,Marco_Maccaferri,2:332/402 +004F,TDCS,PDP-11,Packer/mailer,Terry_Ebdon,2:254/6 +0050,InterMail,MS-DOS,Packer/mailer,Peter_Stewart,1:369/35 +0051,RFD,MS-DOS,Packer,Doug_Belkofer,1:234/10 +0052,Yuppie!,MS-DOS,Packer,Leo_Moll,2:242/2 +0053,EMMA,MS-DOS,Packer,Johan_Zwiekhorst,2:292/100 +0054,QBoxMail,QDOS,Packer/mailer,Jan_Bredenbeek,2:283/500 +0055,Number_4,MS-DOS,Packer/mailer,Ola_Garstad,2:502/15 +0056,Number_5,MS-DOS,Packer/mailer,Ola_Garstad,2:502/15 +0057,GSBBS,MS-DOS,Packer,Michelangelo_Jones,1:260/244 +0058,Merlin,MS-DOS,Packer/mailer,Mark_Lewis,2:258/25 +0059,TPCS,MS-DOS,Packer,Mikael_Kjellstrom,2:201/211 +005A,Raid,MS-DOS,Packer,George_Peace,1:270/101 +005B,Outpost,MS-DOS,Packer/mailer,Mike_Dailor,???? +005C,Nizze,MS-DOS,Packer,Tomas_Nielsen,2:205/202 +005D,Armadillo,Macintosh,Packer,Erik_Sea,1:221/109 +005E,rfmail,Unix,Packer/mailer,Per_Lindqvist,2:201/332 +005F,Msgtoss,MS-DOS,Packer,Mike_Zakharoff,1:343/36 +0060,InfoTex,MS-DOS,Packer/mailer,Jan_Spooren,2:292/852 +0061,GEcho,MS-DOS,Packer,Gerard_van_der_Land,2:283/555,951209 +0062,CDEhost,MS-DOS,Packer,Dennis_D'Annunzio,1:379/28 +0063,Pktize,MS-DOS,Packer,Joaquim_Homrighausen,2:270/17 +0064,PC-RAIN,MS-DOS,Packer/mailer,Ray_Hyder,1:272/40 +0065,Truffle,MS-DOS/OS2,Mailer,Mike_Rissa,2:504/59 +0066,Foozle,Amiga,Packer,Peer_Hasselmeyer,2:247/4 +0067,White_Pointer,Macintosh,Packer/mailer,Alastair_Rakine,3:680/820 +0068,GateWorks,MS-DOS,Packer,Jamie_Penner,1:153/1025 +0069,Portal_of_Power,MS-DOS,Mailer,Soren_Ager,2:230/12 +006A,MacWoof,Macintosh,Packer/mailer,Craig_Vaughan,1:109/342 +006B,Mosaic,MS-DOS,Packer,Christopher_King,1:103/315 +006C,TPBEcho,MS-DOS,Packer,Gerd_Qualmann,2:242/1 +006D,HandyMail,MS-DOS,Packer/mailer,jim_nutt,1:114/30 +006E,EchoSmith,MS-DOS,Packer,Noel_Crow,1:170/409 +006F,FileHost,MS-DOS,Packer,Mark_Cole,2:252/186 +0070,SFTS,MS-DOS,Packer,Bruce_Anderson,1:3402/6 +0071,Benjamin,MS-DOS,Packer/mailer,Stefan_Graf,2:245/4.5436 +0072,RiBBS,OS9_(COCO),Packer/mailer,Ron_Bihler,1:104/54 +0073,MP,MS-DOS,Packer,Ivan_Leong,6:600/28 +0074,Ping,MS-DOS,Packer,David_Nugent,3:632/348 +0075,Door2Europe,MS-DOS,Packer/mailer,Michaela_Schoebel,2:247/14 +0076,SWIFT,MS-DOS,Packer/mailer,Hanno_van_der_Maas,2:500/2 +0077,WMAIL,MS-DOS,Packer,Silvan_Calarco,2:334/100.2 +0078,RATS,MS-DOS,Packer,Jason_DeCaro,1:260/205 +0079,Harry_the_Dirty_Dog,OS2,Mailer/packer,George_Edwards,3:632/340.7 +007A,Maximus-CBCS,MS-DOS/OS2,Packer,Scott_Dudley,1:249/106 +007B,SwifEcho,MS-DOS,Packer,Dana_Bell,1:3801/8 +007C,GCChost,Amiga,Packer,Davide_Massarenti,2:332/505.3 +007D,RPX-Mail,MS-DOS,Packer,Joerg_Wirtgen,2:241/4034 +007E,Tosser,MS-DOS,Packer,Albert_Ng,6:700/185 +007F,TCL,MS-DOS,Packer,Ulf_Hedlund,2:201/602 +0080,MsgTrack,MS-DOS,Packer,Andrew_Farmer,1:243/1 +0081,FMail,MS-DOS/DOS_DPMI/OS2/WIN32,Packer,Folkert_Wijnstra,2:283/619 +0082,Scantoss,MS-DOS,Packer,Michael_Matter,2:243/44.3443 +0083,Point_Manager,Amiga,Packer,Pino_Aliberti,2:335/602.2,,19931012 +0084,IMBINK,MS-DOS,Packer,Mike_Hartmann,2:246/48 +0085,Simplex,MS-DOS/OS2,Packer,Chris_Laforet,1:152/401 +0086,UMTP,MS-DOS,Packer,Byron_Copeland,1:272/26 +0087,Indaba,MS-DOS,Packer,Pieter_Muller,5:7102/11 +0088,Echomail_Engine,MS-DOS,Packer,Joe_Jared,1:103/200 +0089,DragonMail,OS2,Packer,Patrick_O'Riva,1:143/37 +008A,Prox,MS-DOS,Packer,Gerhard_Hoogterp,2:283/1.2 +008B,Tick,MS-DOS/OS2,Packer,Barry_Geller,1:266/12 +008C,RA-Echo,MS-DOS,Packer,Roger_Kirchhoff,2:245/4 +008D,TrapToss,Amiga,Packer,Maximilian_Hantsch,2:310/6 +008E,Babel,MS-DOS/OS2,Packer,Jorgen_Abrahamsen,2:230/100.9 +008F,UMS,Amiga,Packer,Martin_Horneffer,2:242/7.9 +0090,RWMail,MS-DOS,Packer,Remko_Westrik,2:285/309.5 +0091,WildMail,MS-DOS,Packer,Derek_Koopowitz,1:161/502 +0092,AlMAIL,MS-DOS,Packer,Alan_Leung,1:348/207 +0093,XCS,MS-DOS,Packer,Rudi_Kusters,2:512/34.4 +0094,Fone-Link,MS-DOS,Packer/mailer,Chris_Sloyan,1:269/602 +0095,Dogfight,MS-DOS,Packer,Chris_Tyson,2:256/36 +0096,Ascan,MS-DOS,Packer,Arjen_van_Loon,2:281/1.397 +0097,FastMail,MS-DOS,Packer,Jan_Berends,2:282/5 +0098,DoorMan,MS-DOS,Mailer,Christopher_Dean,1:105/70 +0099,PhaedoZap,Atari_ST,Packer,Jeff_Mitchell,1:229/422 +009A,SCREAM,MS-DOS,Packer/mailer,Jem_Miller,1:147/33 +009B,MoonMail,MS-DOS,Packer/mailer,Hasse_Wigdahl,2:206/101 +009C,Backdoor,Sinclair_QL,Packer,Erik_Slagter,2:283/500.3 +009D,MailLink,Archimedes,Packer/mailer,Jan-Jaap_v._d._Geer,2:500/133.1138 +009E,Mail_Manager,MS-DOS,Packer,Andreas_Brodowski,2:241/4006 +009F,Black_Star,Xenix_386,Packer/mailer,Jac_Kersing,2:283/333 +00A0,Bermuda,Atari_ST/MS-DOS,Packer,Jac_Kersing,2:283/333 +00A1,PT,MS-DOS,Packer/mailer,Jerry_Andrew,1:109/426 +00A2,UltiMail,MS-DOS,Mailer,Brett_Floren,1:363/1000 +00A3,GMD,MS-DOS,Packer,John_Souvestre,1:396/1 +00A4,FreeMail,MS-DOS,Packer,Chad_Nelson,1:109/536 +00A5,Meliora,MS-DOS,Packer,Erik_van_Riper,1:107/230 +00A6,Foodo,CPM-80,Packer/mailer,Ron_Murray,3:690/640.7 +00A7,MSBBS,CPM-80,Packer,Marc_Newman,1:106/601 +00A8,Boston_BBS,MS-DOS,Packer/mailer,Tom_Bradford,1:101/625 +00A9,XenoMail,MS-DOS,Packer/mailer,Noah_Wood,1:284/14 +00AA,XenoLink,Amiga,Packer/mailer,Jonathan_Forbes,1:250/642 +00AB,ObjectMatrix,MS-DOS,Packer,Roberto_Ceccarelli,2:332/305.1 +00AC,Milquetoast,Win3/MS-DOS,Mailer,Vince_Perriello,1:343/491 +00AD,PipBase,MS-DOS,Packer,Roberto_Piola,2:334/306 +00AE,EzyMail,MS-DOS,Packer,Peter_Davies,3:636/204 +00AF,FastEcho,MS-DOS,Packer,Tobias_Burchhardt,2:245/39 +00B0,IOS,Atari_ST/TT,Packer,Rinaldo_Visscher,2:280/3.1 +00B1,Communique,MS-DOS,Packer,Ian_Harris,3:620/251 +00B2,PointMail,MS-DOS,Packer,Michele_Clinco,2:331/302.11 +00B3,Harvey's_Robot,MS-DOS,Packer,Harvey_Parisien,1:249/114 +00B4,2daPoint,MS-DOS,Packer,Ron_Pritchett,1:376/74 +00B5,CommLink,MS-DOS,Mailer,Steve_Shapiro,1:382/35 +00B6,fronttoss,MS-DOS,Packer,Dirk_Astrath,2:241/5603 +00B7,SysopPoint,MS-DOS,Packer,Rudolf_Heeb,2:243/44 +00B8,PTMAIL,MS-DOS,Packer,Arturo_Krogulski,2:341/27.7 +00B9,MHS,MS-DOS/OS2/WINNT,Packer/mailer,Matthias_Hertzog,2:301/402,,19940310 +00BA,DLGMail,Amiga,Packer,Steve_Lewis,1:114/52 +00BB,GatePrep,MS-DOS,Packer,Andrew_Allen,1:382/92 +00BC,Spoint,MS-DOS,Packer,Conrad_Thompson,1:130/29.106 +00BD,TurboMail,MS-DOS,Packer,B._J._Weschke,1:2606/403 +00BE,FXMAIL,MS-DOS,Packer,Kenneth_Roach,1:208/401 +00BF,NextBBS,MS-DOS,Packer/mailer,Tomas_Hood,1:352/777 +00C0,EchoToss,MS-DOS,Packer,Mikel_Beck,1:107/218 +00C1,SilverBox,Amiga,Packer,David_Lebel,1:240/516 +00C2,MBMail,MS-DOS,Packer,Ruud_Uphoff,2:500/116.1928 +00C3,SkyFreq,Amiga,Packer,Luca_Spada,2:331/106 +00C4,ProMailer,Amiga,Mailer,Ivan_Pintori,2:335/311.21 +00C5,Mega_Mail,MS-DOS,Packer/mailer,Mirko_Mucko,2:242/94 +00C6,YaBom,MS-DOS,Packer,Berin_Lautenbach,3:620/248 +00C7,TachEcho,MS-DOS,Packer,Tom_Zacios,1:107/376 +00C8,XAP,MS-DOS,Packer,Jeroen_Smulders,2:512/1.8 +00C9,EZMAIL,MS-DOS,Packer,Torben_Paving,2:234/41 +00CA,Arc-Binkley,Archimedes,Mailer,Geoff_Riley,2:250/208 +00CB,Roser,MS-DOS,Packer,Chan_Kafai,6:700/158 +00CC,UU2,MS-DOS,Packer,Dmitri_Zavalishin,2:5020/32 +00CD,NMS,MS-DOS,Packer/mailer,Michiel_de.Bruijn,2:285/505.2 +00CE,BBCSCAN,Archimedes,Packer/mailer,E._G._Snel,2:512/222.17 +00CF,XBBS,MS-DOS,Packer,Mark_Kimes,1:380/16 +00D0,LoTek_Vzrul,,Packer/mailer,Kevin_Gates,gates@sasknet.sk.ca,19951229,20000122 +00D1,Private_Point_Project,MS-DOS,Packer,Oliver_von_Bueren,2:301/701 +00D2,NoSnail,MS-DOS,Packer,Eddie_Rowe,1:19/124 +00D3,SmlNet,MS-DOS,Packer,Steve_T._Gove,1:106/6 +00D4,STIR,MS-DOS,Packer,Paul_Martin,2:250/107.3 +00D5,RiscBBS,Archimedes,Packer,Carl_Declerck,2:292/500.10 +00D6,Hercules,Amiga,Packer/mailer,Andrew_Gray,1:231/590 +00D7,AMPRGATE,MS-DOS,Packer/mailer,Mike_Bilow,1:323/120.1 +00D8,BinkEMSI,MS-DOS,Mailer,Tobias_Burchhardt,2:245/39 +00D9,EditMsg,MS-DOS,Packer,G._K._Pace,1:374/26 +00DA,Roof,Amiga,Packer,Robert_Williamson,1:167/104 +00DB,QwkPkt,MS-DOS,Packer,Ross_West,1:250/412 +00DC,MARISCAN,MS-DOS,Packer,Mario_Elkati,2:341/14.9 +00DD,NewsFlash,MS-DOS,Packer,Chris_Lueders,2:241/5306 +00DE,Paradise,MS-DOS,Packer/mailer,Kenneth_Wall,1:300/5 +00DF,DogMatic-ACB,N/A,Packer/mailer,Martin_Allard,2:245/48 +00E0,T-Mail,MS-DOS,Packer/mailer,Andy_Elkin,2:5030/15 +00E1,JetMail,Atari_ST/STE/TT,Packer,Daniel_Roesen,2:243/93.8 +00E2,MainDoor,MS-DOS,Packer/mailer,Francisco_Sedano,2:341/20 +00E3,Starnet_Products,MS-DOS/OS2,Mailer/Packer,Starnet_Software_Development,1:102/925,,19951209 +00E4,BMB,Amiga,Packer,Dentato_Remo,2:335/311.33 +00E5,BNP,MS-DOS,Packer,Nathan_Moschkin,1:109/427 +00E6,MailMaster,MS-DOS,Packer/mailer,Gary_Murphy,1:130/85 +00E7,Mail_Manager_+Plus+,MS-DOS,Packer,Chip_Morrow,1:226/1240 +00E8,BloufGate,Atari_ST/Unix,Packer,Vincent_Pomey,2:320/100.2 +00E9,CrossPoint,MS-DOS,Packer/mailer,Peter_Mandrella,2:2454/97.80,19920713,19960601 +00EA,DeltaEcho,MS-DOS,Packer,Mikael_Staldal,2:201/337 +00EB,ALLFIX,MS-DOS,Packer,Harald_Harms,2:512/145 +00EC,NetWay,Archimedes,Mailer,Steve_Haslam,2:250/116.3 +00ED,MARSmail,Atari_ST,Packer,Folkert_van_Heusden,2:285/750.2,,19940122 +00EE,ITRACK,MS-DOS/OS2,Packer,Frank_Prade,2:2480/55,,19990119 +00EF,GateUtil,MS-DOS,Packer,Michael_Skurka,1:397/2.1 +00F0,Bert,MS-DOS,Packer/mailer,Arnim_Wiezer,2:241/2104.9 +00F1,Techno,MS-DOS,Packer,Patrik_Holmsten,2:203/133 +00F2,AutoMail,MS-DOS,Packer,Mats_Wallin,2:201/239 +00F3,April,Amiga,Packer,Nick_de_Jong,2:282/309.3 +00F4,Amanda,MS-DOS,Packer,David_Douthitt,1:121/99.14 +00F5,NmFwd,MS-DOS,Packer,Alberto_Pasquale,2:332/504 +00F6,FileScan,MS-DOS,Packer,Matthias_Duesterhoeft,2:241/4512.2 +00F7,FredMail,MS-DOS,Packer,Michael_Butler,3:712/515 +00F8,TP_Kom,MS-DOS,Packer/mailer,Per_Sten,2:201/124 +00F9,FidoZerb,MS-DOS,Packer,Ulrich_Schlechte,2:241/3410.12 +00FA,!!MessageBase,MS-DOS,Packer/mailer,Holger_Lembke,2:240/500.20 +00FB,EMFido,Amiga,Packer,Gary_Glendown,2:249/3.999 +00FC,GS-Toss,MS-DOS,Packer,Marco_Bungalski,2:241/2021 +00FD,QWKDoor,Atari_ST,Packer,Christian_Limpach,2:270/20.1 +00FE,No_product_id_allocated,Any,Packer,No_Author,3:3/20 +00FF,16-bit_product_id,Any,Packer/Mailer,No_Author,3:3/20 +0100,Reserved,None,None,No_Author,3:3/20,19951209 +0101,The_Brake!,Mailer,John_Gladkih,2:5051/16,19951209 +0102,Zeus_BBS,Amiga,Mailer,Alex_May,2:441/58.0,19951209 +0103,XenoPhobe-Mailer,Msdos/Windows/OS2/Linux,Mailer,Peter_Kling,1:374/969.0,19951209 +0104,None,None,None,None,0:0/0, +0105,Terminate,Msdos/Os2/Windows,Mailer/Packer,SerWiz_Comm_&_Bo_Bendtsen,2:254/261,19951209 +0106,TeleMail,Msdos,Mailer/Packer,Juergen_Weigelt,2:2453/900,19951209 +0107,CMBBS,Msdos/Os2,Mailer/Packer,Christof_Engel,2:2490/5110,19951209 +0108,Shuttle,Windows,Mailer/Packer,MCH_Development_&_Marvin_Hart,1:106/500,19951209 +0109,Quater,Amiga,Mailer,Felice_Murolo,2:335/206,19951209 +010A,Windo,Windows,Mailer,Alan_Chavis,1:147/55,19951209 +010B,Xenia,Msdos/Os2,Mailer,Arjen_Lentz,2:283/512,19960601 +010C,GMS,AmigaOS,Mailer,Mirko_Viviani,2:331/213,19960601 +010D,HNET,Msdos,???,Pedro_Jaramillo,1:102/160,19960601 +010E,Shotgun_Professional,Msdos,???,Brent_Shellenberg,1:140/146,19960621 +010F,SLIPgate,Msdos,???,Kieran_Morrissey,3:634/376,19960723 +0110,BBBS,MSDOS/OS2/NT/Amiga/Unix,Mailer/Packer,Kim_Heino,2:22/222,19980216 +0111,NewsGate,Windows/NT,Packer/Gateway,Leilo_denna_Pietra,2:335/244,19980216 +01FF,BBBS,MSDOS/OS2/NT/Amiga/Unix,Mailer/Packer,Kim_Heino,2:22/222,19980216 +02FF,NewsGate,Windows/NT,Packer/Gateway,Leilo_denna_Pietra,2:335/244,19980216 +03FF,Ravel,Macintosh,Mailer/Packer,Cyril_Moorzin,2:5030/700,19980310 +04FF,Beemail,Windows,Mailer/Packer,Andrius_Cepaitis,2:470/1,19980310 +05FF,QuickToss,DOS,Packer,Sandra_Godinez,1:387/601.3,19980310 +06FF,SpaceMail,???,Mailer,Andreas_Habicht,2:244/6121,19980710 +07FF,Argus,Windows/NT,Mailer,Max_Masyutin,2:469/84,19990216 +08FF,Hurricane,Windows/NT/Solaris,Packer,Paul_Walker,2:254/175.44,19990216 +09FF,Hub_Mailer,OS2,Mailer,Viatcheslav_Odintsov,2:5020/181,19990216 +0AFF,FDInt,MSDOS,Packer,Colin_Turner,2:443/13,19990216 +0BFF,GPMail,OS2,Mailer,Igor_Vanin,2:5030/448,19990216 +0CFF,FTrack,NT/OS2,Tracker,Fyodor_Ustinov,2:5020/79,19990313 +0DFF,Nice_Tosser,DOS/OS2/Win32,Tosser,Robert_Agababyan,2:5020/234.1,19990518 +0EFF,LuckyGate,DOS/OS2/Linux,Packer,Pavel_Gulchouck,2:463/68,19990709 +0FFF,McMail,DOS,Mailer,Simon_Slater,2:443/777,20000102 +10FF,HPT,DOS/OS2/Win32/Unix/BeOS,Packer,Dmitry_Sergienko,2:464/910,20030215 +11FF,MBSEBBS,Linux/FreeBSD/NetBSD,Mailer/Packer,Michiel_Broek,2:280/2802,20030215 +12FF,SBBSecho,DOS/OS2/Win32/Linux/FreeBSD/OpenBSD/Solaris,Packer,Rob_Swindell,1:103/705,20030215 +13FF,binkd,DOS/OS2/Win32/Unix,Mailer,Pavel_Gulchouck,2:463/68,20030215 +14FF,Mail-ennium/32,Win32,Mailer/Packer,Chris_Cranford,1:379/1200,20031231 +15FF,Radius,Win32,Mailer,Denis_Voituk,2:5012/38,20040115 +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 diff --git a/lib/mbselib.h b/lib/mbselib.h index dbf2914f..e4896434 100644 --- a/lib/mbselib.h +++ b/lib/mbselib.h @@ -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 */ @@ -1699,7 +1699,7 @@ struct _nodes { unsigned WrongEscape : 1; /* Binkp wrong escape */ unsigned NoBinkp11 : 1; /* No binkp/1.1 mode */ unsigned IgnHold : 1; /* Ignore Hold/Down status */ - + char xExtra[94]; int32_t StartDate; /* Node start 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_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 */ diff --git a/mbcico/Makefile b/mbcico/Makefile index 18a4f239..7f56c9b9 100644 --- a/mbcico/Makefile +++ b/mbcico/Makefile @@ -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 diff --git a/mbcico/binkp.c b/mbcico/binkp.c index 93c1bdba..a7d3d6d5 100644 --- a/mbcico/binkp.c +++ b/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 */ } } @@ -1229,8 +1259,8 @@ TrType binkp_receiver(void) * We already got this file, send GOT so it will * be deleted at the remote. */ - Syslog('+', "Binkp: already got %s, sending GOT", bp.rname); - rc = binkp_send_command(MM_GOT, "%s %ld %ld", bp.rname, bp.rsize, bp.rtime); + Syslog('+', "Binkp: already got %s, sending GOT", bp.rname); + rc = binkp_send_command(MM_GOT, "%s %ld %ld", bp.rname, bp.rsize, bp.rtime); bp.RxState = RxWaitF; bp.rxfp = NULL; if (rc) @@ -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,22 +1408,42 @@ TrType binkp_receiver(void) bp.rxpos += written; if (bp.rxpos == bp.rsize) { - rc = binkp_send_command(MM_GOT, "%s %ld %ld", bp.rname, bp.rsize, bp.rtime); - bclosefile(TRUE); + 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); bp.rxpos = bp.rxpos - bp.rxbytes; gettimeofday(&rxtvend, &bp.tz); #if defined(HAVE_ZLIB_H) || defined(HAVE_BZLIB_H) if (bp.rxcompressed) - Syslog('+', "Binkp: %s", compress_stat(bp.rxpos, bp.rxcompressed)); + Syslog('+', "Binkp: %s", compress_stat(bp.rxpos, bp.rxcompressed)); #endif - Syslog('+', "Binkp: OK %s", transfertime(rxtvstart, rxtvend, bp.rxpos, FALSE)); - rcvdbytes += bp.rxpos; - bp.RxState = RxWaitF; - if (rc) - return Failure; + Syslog('+', "Binkp: OK %s", transfertime(rxtvstart, rxtvend, bp.rxpos, FALSE)); + rcvdbytes += bp.rxpos; + bp.RxState = RxWaitF; + if (rc) + return Failure; else - return Ok; - } + return Ok; + } bp.RxState = RxReceD; return Ok; } else if (bp.RxState == RxEOB) { @@ -1536,20 +1586,23 @@ TrType binkp_transmitter(void) bp.tmode = CompNone; extra = (char *)""; - - if ((tmp->compress == CompGZ) || (tmp->compress == CompBZ2)) { - bp.tmode = tmp->compress; - Syslog('b', "Binkp: compress_init start"); - if ((rc1 = compress_init(bp.tmode))) { - Syslog('+', "Binkp: compress_init failed (rc=%d)", rc1); - tmp->compress = CompNone; - bp.tmode = CompNone; + 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"); + if ((rc1 = compress_init(bp.tmode))) { + Syslog('+', "Binkp: compress_init failed (rc=%d)", rc1); + tmp->compress = CompNone; + bp.tmode = CompNone; } else { if (bp.tmode == CompBZ2) extra = (char *)" BZ2"; - else if (bp.tmode == CompGZ) - extra = (char *)" GZ"; + else if (bp.tmode == CompGZ) + extra = (char *)" GZ"; 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: size %u bytes, dated %s, comp %s", (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); + } if (rc) { bp.TxState = TxDone; return Failure; @@ -2013,16 +2071,13 @@ 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,7 +2346,14 @@ 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 { @@ -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. diff --git a/mbcico/binkp.h b/mbcico/binkp.h index 0410d274..c305603b 100644 --- a/mbcico/binkp.h +++ b/mbcico/binkp.h @@ -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; diff --git a/mbcico/bopenfile.c b/mbcico/bopenfile.c index 19820b7a..951fb65a 100644 --- a/mbcico/bopenfile.c +++ b/mbcico/bopenfile.c @@ -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) { diff --git a/mbcico/bopenfile.h b/mbcico/bopenfile.h index 2fd21656..9c20eddc 100644 --- a/mbcico/bopenfile.h +++ b/mbcico/bopenfile.h @@ -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 diff --git a/mbcico/filelist.c b/mbcico/filelist.c index ed149246..20557f3b 100644 --- a/mbcico/filelist.c +++ b/mbcico/filelist.c @@ -180,6 +180,7 @@ static void check_flo(file_list **lst, char *nm) case '#': p=buf+1; disposition=TFS; break; case '-': case '^': p=buf+1; disposition=KFS; break; + case ' ': case '@': p=buf+1; disposition=LEAVE; break; case 0: continue; default: p=buf; disposition=LEAVE; break; diff --git a/mbcico/htoul.c b/mbcico/htoul.c new file mode 100644 index 00000000..c1c4891c --- /dev/null +++ b/mbcico/htoul.c @@ -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; +} + diff --git a/mbcico/htoul.h b/mbcico/htoul.h new file mode 100644 index 00000000..e9ff1d18 --- /dev/null +++ b/mbcico/htoul.h @@ -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 + diff --git a/mbcico/rdoptions.c b/mbcico/rdoptions.c index b132ed63..901a6ae8 100644 --- a/mbcico/rdoptions.c +++ b/mbcico/rdoptions.c @@ -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(); } diff --git a/mbcico/session.h b/mbcico/session.h index aced25f9..fcac66ed 100644 --- a/mbcico/session.h +++ b/mbcico/session.h @@ -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 */ diff --git a/mbfido/mbaff.c b/mbfido/mbaff.c index e48d84cf..f5572679 100644 --- a/mbfido/mbaff.c +++ b/mbfido/mbaff.c @@ -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); } diff --git a/mbfido/mbdiff.c b/mbfido/mbdiff.c index 0bc4c74c..d0f2296e 100644 --- a/mbfido/mbdiff.c +++ b/mbfido/mbdiff.c @@ -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); } diff --git a/mbfido/mbfido.c b/mbfido/mbfido.c index 04ce8caa..b00a5631 100644 --- a/mbfido/mbfido.c +++ b/mbfido/mbfido.c @@ -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); } diff --git a/mbfido/mbfutil.c b/mbfido/mbfutil.c index 56e82fa0..a6598ed1 100644 --- a/mbfido/mbfutil.c +++ b/mbfido/mbfutil.c @@ -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); } diff --git a/mbsebbs/offline.c b/mbsebbs/offline.c index ab5eeb58..e5fb8673 100644 --- a/mbsebbs/offline.c +++ b/mbsebbs/offline.c @@ -1877,7 +1877,7 @@ unsigned int BlueWave_PackArea(unsigned int ulLast, int Area) strncpy((char *)Fti.subject, Msg.Subject, 72); tp = localtime(&Msg.Written); snprintf((char *)Fti.date, 20, "%2d %.3s %2d %2d:%02d:%02d", tp->tm_mday, - (char *) Language(398 + tp->tm_mon), tp->tm_year, tp->tm_hour, tp->tm_min, tp->tm_sec); + (char *) Language(398 + tp->tm_mon), tp->tm_year % 100, tp->tm_hour, tp->tm_min, tp->tm_sec); Fti.msgnum = le_us((tWORD)Number); Fti.msgptr = le_int((tLONG)ftell(fdm)); Fti.replyto = le_us((tWORD)Msg.Original); diff --git a/mbsetup/m_global.c b/mbsetup/m_global.c index 660b0b1e..e2633361 100644 --- a/mbsetup/m_global.c +++ b/mbsetup/m_global.c @@ -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)); diff --git a/mbsetup/m_node.c b/mbsetup/m_node.c index 73efae1c..c7233682 100644 --- a/mbsetup/m_node.c +++ b/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") } } } diff --git a/unix/mblogin.c b/unix/mblogin.c index 0c64cbaf..4fa0ef05 100644 --- a/unix/mblogin.c +++ b/unix/mblogin.c @@ -1,11 +1,10 @@ /***************************************************************************** * - * $Id: mblogin.c,v 1.9 2007/08/26 15:05:33 mbse Exp $ * Purpose ...............: Login program for MBSE BBS. * Shadow Suite (c) ......: Julianne Frances Haugh * ***************************************************************************** - * Copyright (C) 1997-2007 + * Copyright (C) 1997-2012 * * Michiel Broek FIDO: 2:280/2802 * Beekmansbos 10 @@ -462,7 +461,7 @@ int main(int argc, char **argv) memzero(utent.ut_host, sizeof utent.ut_host); #endif - openlog("mblogin", LOG_PID|LOG_CONS|LOG_NOWAIT, LOG_AUTH); + openlog("mblogin", LOG_PID|LOG_CONS|LOG_NOWAIT, LOG_AUTHPRIV); setup_tty(); umask(getdef_num("UMASK", 007)); @@ -813,9 +812,9 @@ auth_ok: endsgent(); /* stop access to shadow group file */ #endif if (pwent.pw_uid == 0) - syslog(LOG_NOTICE, ROOT_LOGIN, fromhost); + syslog(LOG_WARNING, ROOT_LOGIN, fromhost); else - syslog(LOG_INFO, REG_LOGIN, username, fromhost); + syslog(LOG_WARNING, REG_LOGIN, username, fromhost); closelog(); shell (pwent.pw_shell, (char *) 0); /* exec the shell finally. */ diff --git a/unix/mbpasswd.c b/unix/mbpasswd.c index c97ef3e4..53d3a86a 100644 --- a/unix/mbpasswd.c +++ b/unix/mbpasswd.c @@ -4,7 +4,7 @@ * Shadow Suite (c) ......: Julianne Frances Haugh * ***************************************************************************** - * Copyright (C) 1997-2011 + * Copyright (C) 1997-2012 * * Michiel Broek FIDO: 2:280/2802 * Beekmansbos 10 @@ -901,7 +901,7 @@ int main(int argc, char *argv[]) * We don't log into MBSE BBS logfiles but to the system logfiles, * because we are modifying system files not belonging to MBSE BBS. */ - openlog("mbpasswd", LOG_PID|LOG_CONS|LOG_NOWAIT, LOG_AUTH); + openlog("mbpasswd", LOG_PID|LOG_CONS|LOG_NOWAIT, LOG_AUTHPRIV); /* * Find out the name of our parent. diff --git a/unix/mbuseradd.c b/unix/mbuseradd.c index 84d67c04..76f9cb60 100644 --- a/unix/mbuseradd.c +++ b/unix/mbuseradd.c @@ -1,10 +1,9 @@ /***************************************************************************** * - * $Id: mbuseradd.c,v 1.24 2007/05/28 10:40:24 mbse Exp $ * Purpose ...............: setuid root version of useradd * ***************************************************************************** - * Copyright (C) 1997-2007 + * Copyright (C) 1997-2012 * * Michiel Broek FIDO: 2:280/2802 * Beekmansbos 10 @@ -342,7 +341,7 @@ int main(int argc, char *argv[]) * We don't log into MBSE BBS logfiles but to the system logfiles, * because we are modifying system files not belonging to MBSE BBS. */ - openlog("mbuseradd", LOG_PID|LOG_CONS|LOG_NOWAIT, LOG_AUTH); + openlog("mbuseradd", LOG_PID|LOG_CONS|LOG_NOWAIT, LOG_AUTHPRIV); syslog(LOG_WARNING, "mbuseradd %s %s %s %s", argv[1], argv[2], argv[3], argv[4]); /*