$Id$ WARNING!!! Latest version is unstable... VERY UNSTABLE!!! v0.83.19 23-May-2006 mbtask: Changed dynamic arrays to static arrays in the chatserver which may prevent mbtask crashes. v0.83.18 01-Apr-2006 - 23-May-2006 nodelist.a: Fixed parsing the nodelist when IBN:1.2.3.4 returned the IP address 1.2.3.4 with port 1. mbtask: Removed some debug logging. Fixed a small bug. Code cleanup. Some changes to Launch code again. mbsebbs: Fixed logging of wrong file after upload. Removed some zmodem debug logging. v0.83.17 27-Mar-2006 - 01-Apr-2006 mbfido: Seenby addresses in the internal tables did not store the point numbers. Fixed notation of numbered groups in golded.inc. mbsetup: Fixed notation of numbered groups in golded.inc. mbnntp: Removed AREA:TAG kludge from posted articles. mbfile: Import now skips empty lines in files.bbs. Import now handles properly missing files. v0.83.16 13-Mar-2006 - 27-Mar-2006 mbfido: If sending crash to a node not in the setup, a default archiver is now set to ZIP. Accept unpacket mail for own points. In created ticfiles in advanced seen-by mode, setting the node to 4d will add point numbers to the seen-by lines if needed. When message areas are auto changed, the updated golded.inc file now has the groupid numbers from the groups in echomail or news areas. mbsetup: Added setup switch for tic nodes that need a 4d seen-by line. When saving message areas, the golded.inc file now has the groupid numbers from the groups in echomail or news areas. The message groups now handle groupnumbers for golded groups. v0.83.15 05-Mar-2006 - 13-Mar-2006 mbsebbs: Upgraded ASCII OLR download to the latest discussions. Made some minor changes in internal zmodem. v0.83.14 23-Feb-2006 - 05-Mar-2006. upgrade: Start and stop mbsetup, this will upgrade the nodes settings. mbfido: Uses archiver from the setup to pack mail for a node. mbsebbs: Added Change archiver menu. Added crontrol-U0 to display current archiver. Changes to OLR ASCII download: - area files are named after area tag if possible, dots are replaced by underscores and extension is .text. - If available each message now has a msgid in the header. - Added a .info file with control information. mbmon: Better user input checking in chat. Safer display in chat. mbsetup: Added archiver selection for nodes in node setup. In archiver select added checks for valid archivers and allowed escape without selecting an archiver. Added selection of archiver select menu. mbtask: Safer code for chat. Added unformatted logging. lang: New prompts 86, 87, 88 and 89. examples: Updated Engish menus and txtfiles. v0.83.13 13-Feb-2006 - 23-Feb-2006 upgrade: Start mbsetup and leave. If files databases need to be fixed it will then be done. mbselib.a: Fixed another 32/64 bit issue in the files databases and added automatic correction if detected. mbsebbs: Writes LINES and COLUMNS environment into data.msg so that the joe editor can use that. Changed zmodem transmitter timeout to 60 seconds and changed the zmodem init fase so that clients that don't start automatic have a chance to start the transfer. The zmodem transmitter now uses buffered output. mbmsg: With the post function the right time is now used. mbcico: Added real error message for failed outgoing IP connections. mbtask: Fixed startup problem on new installations. Some code cleanup. mbsetup: When a filearea was moved to another path the symlinks were not moved to the new path. v0.83.12 06-Feb-2006 - 13-Feb-2006 mbselib.a: On socket send error 2, abort the client program. mbsebbs: Added screen rows detection using ANSI sequences needed for some terminal programs like minicom. mbtask: On shutdown also send PART and QUIT messages to all our links for our own users if they are still online so that the network will keep the correct state. Removed all thread programming so that mbtask is now a single process again. This should fix the crash problem during chat. v0.83.11 28-Jan-2006 - 06-Feb-2006 mbtask: When the IBC server detects a IP change of a remote server it will completly restart the connection with that remote. Made several functions multithread aware. Finished tasks now report using a signal call. The main scheduler doesn't run in a thread anymore. Removed some debug logging in chat. mbcico: Assume EXTCMD is set when GZ or BZ2 is active. mbstat: Added semafore names to help display. mbmon: In chat beeps are heard for system messages. Removed most debug logging in chat. Added width marker for chat input and fixed linelength. mbsebbs: Removed most debug logging in chat. Added width marker for chat input and fixed linelength. v0.83.10 25-Jan-2006 - 28-Jan-2006 upgrade: In menus 7.n.3.14 check if the NR flag is off, unless you need it (which I doubt). mbcico: Implemented binkp NR option. We don't really make use of it, but if the remote mailer whishes to send files in NR mode it will work. mbsetup: Added NR switch to the nodes session setup. v0.83.9 23-Jan-2006 - 25-Jan-2006 mbstat: Don't write in errorlog after normal termination. mbtask: In IBC refuse to add a user when there is no known server for that user. Added setup checks for two main configuration settings for IBC and fail to start if they are missing. Don't start connections with IBC servers that miss settings in the chatserver setup. Added some code to trap mbtask crashing during chat and start mail processing. Several commands now send the server address from the servers setup to the neighbours. After server connect send the correct usernames already in chat. v0.83.8 22-Jan-2006 - 23-Jan-2006 mbsebbs: Fixed a strange bug that ftell didn't work right, this caused corrupt bluewave download packets. Bluewave is now big/little endian correct. mbtask: Added logging of some user messages to chat.log Added logging for crashes during chatsessions. v0.83.7 31-Dec-2005 - 22-Jan-2006 upgrade: Add extra switches to unarchiver commands netry 11, see mbsetup for the archivers. mbsebbs: There are no paths anymore in OLR download packet files. Made OLR bluewave packets CPU independant. (under test). mbfido: Made searching file file_id.diz case insensitive. mbfile: Made searching file file_id.diz case insensitive. mbsetup: Added switches to default extract commands for file_id.diz files to: nomarch -U rar -cu unrar -cu unzip -L Other archives don't support forced upper or lowercase. v0.83.6 17-Dec-2005 - 31-Dec-2005 mbfido: Removed gated SB debug logmessages. Removed debug messages for obsolete ticfiles. mbcico: Don't add files to send anymore when batchnr > 20 to prevent an infinite session loop. mbfile: Fixed a crash when files.bbs had empty lines. mbtask: Better messages during servers connections reset. v0.83.5 16-Dec-2005 - 17-Dec-2005 mbtask: Better handling of changes in the list of chatservers. Added some missing mutex_locks. Removed dynamic IP address debug logging. Added global reset for chatservers every 24 hours. v0.83.4 04-Dec-2005 - 16-Dec-2005 mbfile: Fixed file importing of non-archived files. The test for files.bbs for files to import was done in the wrong directory. If a file is not removed from disk during pack, a error log is created instead of a normal log. mbtask: Experimental code to recover from a half dead chatlink. Added some protection against looped configuration. All IBC log lines start now with IBC: to allow easier grep. v0.83.3 03-Dec-2005 - 04-Dec-2005 remark: This version was broken. libmbse.a: Fixed new tmpwork functions. mbfido: Fixed creation of tmpwork directory. v0.83.2 16-Nov-2005 - 03-Dec-2005 libmbse.a: Added temp workdirectory functions. mbfido: Fixed crash when receiving bad tics. Reinstalled tic orphans and bad crc handling using new method. Removed some debug logging. Now using new tmp workdirectory functions. When a hatch directory doesn't exist, it is created. mbfile: Now using new tmp workdirectory functions. mbsebbs: Added check for users homedirectory permissions and attempt to fix errors. If fatal the connection is dropped. Fixed virus scan of uploaded archives. v0.83.1 12-Nov-2005 - 16-Nov-2005 mbfido: Added some experimental code for tic orphans processing. mbmon: Improved error message when the chatserver is not configured in /etc/services. mbtask: Added code to the chatserver thread to handle remote servers with dynamic dns addresses. mbsetup: In IBC setup added a switch for dynamic dns. v0.83.0 06-Nov-2005 - 12-Nov-2005 upgrade: Start mbsetup once and leave, this will update user records with the wrong editor choice. mbsebbs: Removed antique line editor. mbtask: Fixed accepting connections with the chatserver when no password is given. mbaff: Fixed announce and filefind report problem when there were " characters in the description. mbsetup: In users edit screen, removed append record option. Blocked changing the users unixname. Removed antique line editor is edit users. lang: Changed language prompts 373 and 438. v0.82.0 06-Oct-2005 - 06-Nov-2005 This is a bugfix release for version 0.80.0. general: Made changes to structures and sources to make everything compatible between 32 and 64 bit systems. Special thanks to Alan Ianson and Robert Wolfe for testing the 64 bit versions. Added escaping in client/server comms. It is now allowed to use comma's in user names, locations etc. upgrade: The bbs menu Change Screenlength is obsolete. Remove this from the menus (setup.mnu) and ascii/ansi screens (setup.a??). Owners of 64 bits systems should check if all *.sts files in the outbound are 12 bytes log. If not, stop the whole bbs and remove all these files. Then start the bbs again. Owners of 64 bit systems that have run version 0.80.0 or older should really backup everything and be prepared that all data files are not compatible anymore. Blame the GNU people for changing the storage format for some variables. After upgrade databases are compatible between 32 and 64 bit systems. libmbse.a: Added clencode and cldecode to safe escape messages to mbtask. In nodelock show program name if node is already locked. mbcico: Made binkp GZ and BZ2 compression final. Fixed compile errors when both zlib and bzlib development packages are not installed on some distro's. mbfido: Fixed a segfault when tossing as a point echomail without a seen-by line. mbsebbs: Automatic dynamic detection of the users screensize. There is no check anymore for a valid tty with network calls, instead a fake ttyinfo record is created. Modem/ISDN and console still need a valid configured tty. Fixed a bug in the email menu that would let the current mailbox disappear. Fixed the internal fullscreen editor. Accepts connections via ssh. Log close message sent to the user. Allow comma again in several input functions. mbnewusr: There is no check anymore for a valid tty with network calls, instead a fake ttyinfo record is created. Modem/ISDN and console still need a valid configured tty. Accepts connections via ssh. mbtask: Logs program name that locks serial ports. Added clencode and cldecode to safe escape messages with clients. mbsetup: Removed settings for users screenlength. In tty setup the network records are automatic removed. The setting for auth log is removed (was never used). SuSE compile fix. lang: Removed prompts 64, 80 and 81. Changed prompt 348. Added prompt 31. examples: removed Change Screenlength from the English menus and txtfiles. v0.80.0 27-Oct-2004 - 06-Oct-2005 Yes, this release took too long to complete. But there were too many problems that a stable release wasn't a good idea. general: Due to lack of maintainers italian language support is dropped. Upgraded to ftscprod.010 Added port to OpenBSD, is under test (and doesn't work yet). Code cleanup so that compile stops on unknown OSes and CPUs instead of missing code parts. Added Unix codepage KOI8-R (Russian) and patches from Dmitry Komissaroff. Updated Copyright notices to 2004 to 2005. From filetranfer records removed the batch and bidirectional switches, these are no longer needed. Added new subdirectory mbutils. Some sources from the mbsebbs subdirectory are moved there. Changed the CFLAGS back from -O3 to -O2 since there seem some stablity problems and I want to rule out the possibility that this is caused by bad gcc optimisation. upgrade: In mbsetup menu 8.2 remove the Italian language. In /opt/mbse "rm -rf italian". In /opt/mbse/etc "rm italian.lang". Or keep it, but you need to take care of updating this language yourself. Check mbsetup 7.n.3.14 and 7.n.3.15 settings. You may limit the mailhistory.html size by setting 1.15.8 Check mbsetup 1.13.4 and 1.13.5, they should be empty or point to valid and readable logfiles. If set then ftp and or www downloads are counted as valid downloads. Enter setup menu 8.4 once and leave to clear unused data. Start mbsetup, in screen 1.2 item 10, add your real internet name or IP there. This MUST be the name that is returned when you do a nslookup on your external IP address. Add the following line to /etc/services: fido 60179/udp # chatserver Make sure you remove everything related to bbslist menus from your menus and txtfiles. Start mbsetup and leave. You might want to check menu 8.5, file transfer protocols since we now have internal protocols. nodelist.a: Clear node Hold or Down status if set in nodes setup. mbselib.a: Removed some debug logging. Added a function to clean subject lines from garbage, trailing spaces etc. to improve message linking. Added code for Internet BBS Chat. msgbase.a: Fixed JAM pack function, the lastread pointers could be wrong if the last messages of an area were deleted. libdiesel.a: Changed the maximum string length from 2560 to 4096 characters. libmbinet.a: Fixed error messages when the host to connect to has a DNS error. charset: Changed rfc-2045 name x-mac to mac. Changed x-ibmpc to cp437. This allows rfc mime headers to show official names. Added some basic things to support Chinese. mbcico: Added support for binkp GZ and BZ2 compression. Can be turned off per node. To use it configure with --enable-experiment. Record previous session state so we can better react on failed sessions. Added detection of remote options NR, ND and NDA to prepare for implementation. Rewrote inbound handling for binkp sessions so that recovery from failed sessions works, even with compressed transfers. Fixed crash on received m_get command. Increased binkp timeout from 180 to 300 seconds. Added protection during binkp receive for zero bytes compressed data frames, this will cause uncompress error -5 because zero bytes can't be compressed at all. Fixed test for valid aka's in the EMSI handshake that prevented that host aka's (node /0) were not presented to the remote. (thanks Przemyslaw Kwiatkowski). Removed binkp extra debug logging and some standard debug logging. Added auto workaround for Internet Rex 2.24 upto 2.29 binkp bug. However, it is still wise to set the "No binkp/1.1" setting in the node setup if you have a record for such node. mbout: Code cleanup. mbfido: If some newsarticles are not accepted for post, don't treat this as fatal and clear the sendqueue. Removed soft-cr filter during message import. Code cleanup. Added debug logging in rfc2ftn to track a rare problem. Added error logmessage in case *.msg path isn't defined. Fixed a segfault when echomail.jam or netmail.jam is corrupted when scanning for outgoing mail. Fixed fido style from address for posting news. Reinstalled charset translation on the gateway. Changed the way how FTN kludges are translated to RFC headers. Dropped support for newsgroup distribution. In tic processing changed pointer type for seenby lists. Fixed running out of file descriptors when there are lots of bad mailpackets. Fixed commandline parser for mail recipients. Added subject line clean in several places. When message areas are autocreated, golded.inc and msg.txt are recreated for the external editors. The web stats can now limit the size of mailhistory.html The FileMgr command connects news nodes SR if set for the tic area. Empty *.msg netmails for our own system are dropped with and logged (just like received empty netmails). Empty netmails to remote systems are still stored in the netmail base. Added debug logging for exporting netmails from the messagebase so that we later can decide to mark these messages auto deleted. In rfc2ftn a debug logmessage added to check for unrecognised message ids. With html create the general strings are now converted to html entinities. mbnntp: Removed some debug logging. Added leading zeros for generated msgid's. Improved charset detection. Does now send the right mime headers recognised by news clients. Fixed compile problem with some compilers. When sending the mime header with the charset used to the news client, the original message charset is tried first, else the area charset, else the users charset and if all failed, we send the us-ascci charset as default. More patches added from Dmitry Komissaroff to improve charset support. Also improved msgid linking. Removed dead timercode. Code cleanup. When a message is posted without RFC Messageid, a fidonet MSGID is fresh created. Changed X-JAM kludges to X-FTN kludges to make it compatible with the rest of the gates. Patches from Dmitry Komissaroff to make charset translation work on message subject lines. It will now also send the right charset for the user in the charset header line so that the client will show the message in the users charset. mbfile: Code cleanup. With the index command only changed areas are indexed. This removes the feature request for a switch per area from the TODO list because this solution works better and much faster. Dropped support for areas on CDrom. The adopt command now first checks if the filename is 8.3 or a long filename and the correct format for import is then set. With mbfile import, download counters in files.bbs are skipped. When the file description was missing in files.bbs with the import command, mbfile would crash. Now a dummy description is inserted. The directory from which the import is done is first tested for write access, if forbidden then no import is done. This also means you cannot import directly from CD's but that you need to copy the CD contents first to a harddisk. Better error reporting if something is wrong. The import command now also figures out the difference between 8.3 and long filenames and does the right thing during import. During file import the destination is tested for both 8.3 and LFN for an existing file. Improved error reporting. With mbfile import the original file isn't renamed anymore. Fixed error reporting when files in files.bbs were not found on disk. In mbfile check added a check for the filemode of the real file in the download area, if it's not 0644 it will be corrected. With adopt, import and move allow to overwrite a file with the same name if the -f option is used on the commandline. mbsebbs: Code cleanup. Changed syntax for calling mbpasswd. Blocked sysop to chat and page the sysop. Sysops use mbmon. Fixed errormessage if chatserver is not available. Added language prompts 29 and 30. Added logging of remote host and terminal. Added subject line clean in several places. Fixed headerlines for posting news. Fixed headerlines for posting email. When a message is posted by a user, the CHRS kludge of the user is used in the message, not the area setting. When a user logs in, the users locale (guessed value from his characterset) is set. Experimental to see if libc functions will support Chinese characters. Allowed hi-ascii input characters in the internal fs editor, the chat input and one general input function. This may have effects for all users not using us-ascii keyboards. Added more support for Chinese using the traduce function. Changed color for chat lines with one * at the begin. The creation of the mailout semafore is now after the hangup so that mbfido won't start before the bbs is finished. Removed bbslist menus, this will become a door. Added #define NFGVMIN 1 in openport. During hangup we set sighup to ignore. Some small buffer protections added in addfile. Fixed keyboad input for all bigendian machines. Patches from Dmitry Komissaroff to make charset translation work on message subject lines. In change handle the first character of the name is not capitalized. Changed layout of raw directory listing to support longer filenames. Rewrote terminal i/o. If a user pages the sysop a hint is displayed to fill in the reason to chat, language prompt 28. After forced chat, redisplay the last menu. Removed support for non-batching protocols (xmodem) and for bidirectional protocols. Removed Ctrl-F G, this is of no use anymore. Switched to new modular download and upload functions. With download from file areas, the long filename is sent to the users, we will only support protocols that allow this. When an invalid OLR reply packet is received, it is removed from the users upload directory. We don't reward upload time anymore, only bytes. It's more troubles to implement right then it's worth these days. This is caused by telnet connections when we never know what the real linespeed is with to/from the user. Added the following internal file transfer protocols: Xmodem, Ymodem, Ymodem-1K, Ymodem-G, Zmodem and Zmodem-8K (aka ZedZap). Xmodem should not be used, but is available because Ymodem is available, ie: don't make it available for your users. For more information see the manual setup/protocol.html. After upload, files are now stored correctly in the filebase. In change protocol, changed the colors. With user chat, the timeout timer wasn't refreshed. Improved test for users protocol available. Fixed download K and files setting for users on a new day. mbnewusr: Changed syntax for calling mbpasswd. If we can detect the users screenlength then we don't bother asking the user. Added logging during execute of mbuseradd. Corrected wrong ANSI setting for new users. Added logging of remote host and terminal. If the external editor is configured a new user gets the external editor by default instead of the internal editor. During hangup we set sighup to ignore. Fixed keyboad input for all bigendian machines. Rewrote terminal i/o. mbsetup: Removed Italian default record. Rewrote code to create default language records. Added node setup switch to override node Hold or Down status. Changed syntax for calling mbpasswd. Dropped support for newsgroup distribution. Added setup switches per node to disable PLZ or GZ and BZ2 compression protocols with binkp. Added setup entry 1.15.8 to set a limit on the size of the mailer history html page. Added setup for Internet BBS Chat. Added setup items 1.13.4 and 1.13.5. These could point to a valid apache logfile in common format and ftp xferlog logfile. If defined then downloads via www and or ftp can be counted. Dropped support for file areas on CDrom. In menu 10 added a switch to default connect downlinks SR instead if S. Added language defaults for Chinese. Removed obsolete bbslist editor. Made some web sitedoc screens look better. Changed helplines for areamanager filenames to indicate that these are case sensitive. Added support for XxxxBSD console port. For new systems, there will now be 16 terminal ports created instead of 10, this is the maximum number of safe created ttys. The ttys are now sorted on the comment fields. In file transfers edit, removed switches for batch and bidirect protocols, added a switch for internal protocols. New internal protocols are automatic added and the external protocols are disabled. Some fields of the internal protocols are protected. In file areas, free downloads is now default for new areas. mbtask: Code cleanup and memory optimisation. Added check to some chat commands to check if the chat thread is running so that clients can give a proper message. Added Internet BBS Chat. Dropped support for file areas on CDrom. The created semafore files are now world readable so that low privileged users like nobody can check the semafore's. mbmon: Added Internet BBS Chat. Changed color for chat lines with one * at the begin. mbaff: Fixed a crash when announce a empty description line. mbdiff: Code cleanup. mball: Code cleanup. If a valid WWW logfile is specified in menu 1.13.4 then http downloads are counted and the filedatabase is updated before the allfiles listings are created. Note that the very first time only a mark is placed in ~/var and nothing is done. mbstat: Code cleanup. mbuser: Code cleanup. mbmsg: Code cleanup and removed dead code. mbpasswd: Added security checks to see if this program is legally called. Changed commandline syntax. mbuseradd: Added security checks to see if this program is legally called. mblogin: The file ~/etc/login.defs now has default the issue file enabled so that it also is displayed for incoming telnet users. script: The installinit script now recognizes Fedora Core (but it used to work anyway). Added mbfile check to monthly maintenance script. Fixed the Slackware setup script that didn't make the startup symlinks in runlevel 4 if the directory /etc/rc.d/rc4.d didn't exist. Modified rundoor.sh so that it uses two different dosemu configuration files, one for virtual modem and one without. See the manual doors.html. In the editor script modified the joe header so that it will work with the new terminal i/o. lang: New prompts 28, 29 and 30. Added Chinese language. TODO: remove bbslist entries. Changed width of prompt 261. Removed leading spaces of prompt 151. Removed prompts 259 and 276. examples: Removed bbs list items from the English menus and txtfiles and the Spanish menus and txtfiles. Fixed the menu archives so that they contain menu files again. Fixed logo display. Fixed Spanish txtfiles to leave out an old support bbs. html: Added batch file upload written by Russell Tiedt to the faq. porting: Compiles more or less on x86_64, there are issues with utmp and struct lastlog Compiles on NetBSD i386. Compiles on Alpha. Doesn't compile on Mac OS X.