diff --git a/ChangeLog b/ChangeLog
index f7a94a3e..c40afe6b 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,919 +1,247 @@
$Id$
-v0.39.9 29-Jan-2004
+
+v0.50.0 03-Oct-2003 - 09-Feb-2004
general:
- Changed first time installation to install mbcico itself again
- to handle incoming telnet sessions at port 60177. The program
- mbtelind is obsolete, this was a temporary hack. Change your
- inetd or xinetd configuration for itn (tfido) calls.
- See the documentation of mbcico how to do this.
-
- libcommon.a:
- Increased the sync() delay time for execute from 200 to 300 mS.
-
- mbcico:
- Added telnet input and output filters so we can now call and
- answer telnet (ITN) sessions. We don't need mbtelind anymore
- to handle incoming calls.
-
- mbsetup:
- Clearing the working message is now only done by the keyboard
- read function.
- In several menu items added range check for integer values.
- In global main aka setup, added check if a domain name is
- present.
- Updates to the database is now shown to the user.
-
- script:
- Dropped support for RedHat and Mandrake pre 6.1.
-
- examples:
- Fixed a small bug in the dutch newfiles template.
-
-
-v0.39.8 26-Jan-2004 - 29-Jan-2004
-
- warning:
- Avoid this version, binkp compression is buggy.
-
- libcommon.a:
- Fixed compiler directive for Linux in execute function.
- Code cleanup.
-
- mbcico:
- Fixed binkp file resync.
- Binkp now only tries to compress data frames.
- Fixed binkp master timer reset points, this should make session
- timeout work.
- Code cleanup.
- The filelist function didn't add files from fileboxes.
- Added refresh heartbeat in binkp driver to prevent broken
- sessions after 10 minutes.
- Added more logging to investigate the tty hangup problem
- Fixed zlib (un)compress buffersize init.
-
-
-v0.39.7 14-Jan-2004 - 26-Jan-2004
-
- remark:
- Calling points is available now, but I know in the past that I
- changed it to allways call the boss. That was from the time
- that mbtask didn't exist. It is possible that something is
- broken now, please report such situations.
-
- general:
- In all sources replaced the usleep function with the msleep
- function. The usleep function will become obsolete someday.
-
- libcommon.a:
- In execute and execsh on Linux systems sync() is called before
- and after running the external program to make sure diskbuffers
- are committed.
- Added a milliseconds timer.
- Before and after execute and execsh a 200 ms pause is inserted
- to prevent (un)archiver and other errors.
-
- mbcico:
- Removed the check to disable calling points.
- Added a check to see if we get a URL to call other systems.
- If nodelist info fails, increase error counter in steps of 10.
- Merged tmail patches from Przemyslaw Kwiatkowski.
- Fixed nodelocks during session handshake after many years. The
- problem showed only when mbcico was used together with a mailer
- on a different OS. When a aka is busy, the aka is now dropped.
- When all akas are busy, a session is impossible and the session
- is refused. Thanks to Przemyslaw Kwiatkowski for finding and
- documenting this bug.
- The total session avg cps is now corrected with the two seconds
- session close delay time.
- During binkp handshake increased the timer of the receiver to
- avoid handshake timeouts.
- Added PLZ compression option to binkp.
-
- mbfido:
- Removed sync calls that are now in execute.
-
- mbfile:
- Removed sync calls that are now in execute.
-
- mbdiff:
- Removed sync calls that are now in execute.
-
- mbtask:
- Will call points if a call method is available.
- Merged tmail patches from Przemyslaw Kwiatkowski.
-
- script:
- New scripts are installed with an extension of .new, you need
- to check yourself if you can use them to replace your own
- possible modified scripts.
- Updated the hatch script to abort if it's not configured.
- If the user skips to hatch a file, the questions for the magic
- and replace command are not shown anymore.
-
- examples:
- Changed Dutch newfiles template file.
-
- html:
- Added upgrade procedure.
-
-
-v0.39.6 11-Jan-2004 - 14-Jan-2004
+ Added menu setup switches for doors: Singe user door and
+ hidden from lists.
+ Make dist now creates bzip2 archives.
+ Two html pages are now under control of configure.
+ The configure scripts shows the use of zlib compression for
+ Hydra and Binkp.
+ Updated all documentation to validate html makeup.
+ Added installation support for Gentoo Linux, contributed by
+ Capitán X.
+ Since this version Posix threads are being used, please let
+ me know if this doesn't compile on you system.
+ All Makefiles do not strip the binaries anymore, the binaries
+ are stripped during make install only. This allows to run the
+ not yet installed binaries under debuggers.
+ The configure script has a --enable-debugging option so that
+ all code can be compiled to let it run under debuggers. Not
+ usefull for production systems.
+ This version had a lot of testing using valgrind. Most errors
+ were minor problems.
+ Added French language file created by Francois Thunus. This
+ translation is not yet complete.
+ Cleanup in main makefile, added help.
+ Revised configure and all Makefiles for better support of
+ linking with threads libraries.
+ Changed endian tests using the configure script.
+ Upgraded to new released ftscprod.008
+ Added setup option per node to disable the binkp/1.1 protocol.
+ Added new binkp/1.1 driver.
+ In all sources replaced the usleep function with the msleep
+ function. The usleep function will become obsolete someday.
+ Incoming and outgoing telnet (ITN) sessions finally works.
upgrade:
+ If you don't have any personal archivers, then remove
+ ~/etc/archiver.data and start mbsetup to recreate the
+ archivers setup.
+ If you didn't change anything of the language defaults then
+ delete /opt/mbse/etc/language.data and run mbsetup to create
+ a new language.data including the french setup.
Check setting 7.x.3.18 for each node. If you know the node uses
- Irex between 2.24 and 2.29 then set this to Yes or you won't
- have good sessions without files with this mailer. Sessions
- with Irex that do transfer some file are Ok.
-
- mbcico:
- New binkp/1.1 driver. Check the upgrade for your Irex links.
- In case of troubles please report these.
- In the mbcico directory are 2 files, binkpold.c and binkpold.h
- if they are renamed to binkp.c and binkp.h you get the old 1.0
- driver back. After some weeks I hope to remove these 2 old
- files.
- Added support for T-Mail fileboxes, partly written and info
- provided by Przemyslaw Kwiatkowski (2:480/127).
-
- mbout:
- Added support for T-Mail fileboxes.
-
- mbtask:
- Added support for T-Mail fileboxes.
-
- mbsetup:
- Reorganised menu 1.4 screen 1 and 2.
- Added settings for T-Mail filebox paths in the second screen
- of menu 1.4.
-
-
-v0.39.5 24-Dec-2003 - 11-Jan-2004
-
- general:
- Upgraded to new released ftscprod.008
- Added setup option per node to disable the binkp/1.1 protocol.
- Added new binkp/1.1 driver, the code is disabled by default
- and can only be used with the right configure option.
-
- common.a:
- Allows node locking with zero bytes lockfiles created by some
- other OS when enabled in the setup.
- The attach function now checks if a file is already attached.
-
- mbcico:
- Binkp code cleanup.
- Allow m_file command in binkp during file transfer in progress.
- Fixed a segfault when a session failed.
- New binkp/1.1 driver, not compiled by default.
-
- mbout:
- Poll, remove poll and request failed to points which had no
- point directory in the outbound, now the directory is created.
-
- mbfido:
- With scannews after a GROUP command when authorisation was
- asked we did not perform a login.
-
- mbsetup:
- Added setting in menu 1.14 to allow zero bytes lockfiles
- created by another OS.
- Added setting in menu 7.x.3.18 to disable the use of binkp/1.1
- protocol per node.
- Corrected a spelling error (thanks Vince).
- Removed global setup screen for the ftp server.
-
- mbtask:
- Changed slow ping logmessages from 5 to 10 seconds.
- Removed default settings for the ftp server.
-
- script:
- Fixed NetBSD init script
- All init scripts now clean the ~/var/run directory and start
- the bbs allways so that the bbs will try to start after a power
- failure.
-
- html:
- Removed the outdated ftsc documents, www.ftsc.org is the place
- to look for them
-
-
-v0.39.4 08-Dec-2003 - 24-Dec-2003
-
- general:
- Added French language file created by Francois Thunus. This
- translation is not yet complete.
- Cleanup in main makefile, added help.
- Revised configure and all Makefiles for better support of
- linking with threads libraries.
- Changed endian tests using the configure script.
- Changed compiler flags for threads.
-
- upgrade:
- If you didn't change anything of the language defaults then
- delete /opt/mbse/etc/language.data and run mbsetup to create
- a new language.data including the french setup.
-
- libmsgbase:
- Changed the fix in JAM to prevent the copy overwrite. This may
- also fixed the message renumbering bug introduced with previous
- version.
-
- mbsebbs:
- A lot of small fixes for problems found with valgrind.
-
- mbsetup:
- Added default record for french language.
-
- mbtask:
- Moved the scheduler in a thread.
- Rewrote shutdown procedure to make it more portable.
-
- script:
- Dropped support for Slackware pre 7.0.
- Changed startup scripts for NetBSD.
-
-
-v0.39.3 26-Nov-2003 - 08-Dec-2003.
-
- general:
- Since this version Posix threads are being used, please let
- me know if this doesn't compile on you system.
- All Makefiles do not strip the binaries anymore, the binaries
- are stripped during make install only. This allows to run the
- not yet installed binaries under debuggers.
- The configure script has a --enable-debugging option so that
- all code can be compiled to let it run under debuggers. Not
- usefull for production systems.
- This version had a lot of testing using valgrind. Most errors
- were minor problems.
-
- libclcomm:
- Fixed a small (not harmfull) buffer overlapped copy detected
- by valgrind.
-
- libcommon:
- Code cleanup in proglock, pktname and crc.
- Fixed a forgotten fclose in proglock.
-
- libmsgbase:
- In JAM_Open replaced a strcpy with memmove.
- Fixed invalid memory read/write in Msg_Link.
-
- libdbase:
- Code cleanup in dbdupe.
-
- libnodelist:
- Fixed a small memeory leak.
-
- mbcico:
- Dropped binkp CRC support because it will be incompatible with
- future extensions.
- Fixed a small memory leak.
-
- mbout:
- Fixed several memory leaks.
-
- mbfido:
- Fixed a some small memory leaks.
-
- mbfile:
- Fixed a uninitialized memory pointer in the index command.
- Fixed a 3 forgotten file closes in mbfile list.
-
- mbindex:
- Fixed a forgotten file close.
-
- mbsetup:
- Removed binkp CRC settings.
- Fixed a unitialized unlink call in nodes close.
- Fixed unclosed tempfile.
- Fixed several small memory leaks.
-
- mbsebbs:
- Fixed small memory leak.
- Fixed posting to local/echomail areas from bbs users.
-
- mball:
- Fixed 2 forgotten fclose functions.
-
- mbuser:
- Fixed a forgotten file close when nothing was done.
-
- mbmon:
- Fixed a minor problem with an uninitialized array.
-
- mbtask:
- The ping function now runs in a separate thread.
- Changed some ping timer logic.
- Added a "secret" commandline parameter to allow mbtask to run
- under control of debuggers.
- The client command server runs in a separate thread.
- Fixed some small memory leaks which had no effect on long term
- running of mbtask, only leaks during program stop.
-
- mbpasswd:
- Fixed a small memory leak.
-
- script:
- Changed all init scripts to allow the slower stopping of mbtask
- For the latest Slackware distros a setup script for pkgtool is
- added. Most other distro's don't need this.
-
-
-v0.39.2 21-Nov-2003 - 26-Nov-2003
-
- general:
- Incoming telnet mailer connections are handled using a telnet
- proxy daemon: mbtelind.
-
- common.a:
- A small fix in printable log function.
- Added a safety check for the TCP registrate function to prevent
- stale TCP/IP mailer counts.
-
- mbcico:
- All internal references to tfido port changed to telnet port
- because we now default to telnet port 23 for ITN calls.
- Incoming calls using the -t itn commandline parameters are not
- supported anymore, they need to go via mbtelind.
- Outgoing telnet doesn't work!
-
- mbtelind:
- New program, a incoming telnet proxy daemon to accept incoming
- calls and transfer these via port 60179 to mbcico that will
- handle the call in raw ifcico mode.
-
- mbtask:
- Restored ITN protocol.
-
- SETUP.sh:
- Changed installation for incoming mailer telnet connections to
- install mbtelind.
-
- examples:
- Updated file menus, added View File command.
-
-
-v0.39.1 22-Oct-2003 - 21-Nov-2003
-
- general:
- Make dist now creates bzip2 archives.
- Two html pages are now under control of configure.
- The configure scripts shows the use of zlib compression for
- Hydra.
- Completly dropped support for ITN connections sice this is so
- buggy on different implementations that this is impossible to
- get it right to connect to every system.
- You may need to remove the lines for itn support from
- /etc/inetd.conf or /etc/xinetd.d/mbsebbs or /etc/xinetd.conf.
- Also check mbsetup 1.14.3 and remove any ITN flag in there.
- Updated all documentation to validate html makeup.
- Added installation support for Gentoo Linux, contributed by
- Capitán X.
-
- upgrade:
- If you don't have any personal archivers, then remove
- ~/etc/archiver.data and start mbsetup to recreate the
- archivers setup.
-
- mbsebbs:
- Fixed a bug where the bbs goes into a loop after idle timeout
- during login (and maybe in other situations).
- Fixed chat debug logging to only the debug.log file.
- Posted netmail messages now support CC: lines. The CC: lines
- should be the first lines of the message in the format:
- CC: Michiel Broek 2:280/28
- The Carbon Copied messages are marked with original sender.
-
- mbfile:
- When the areanumber with the adopt command was not given, the
- help is displayed instead of trying area 0 that doesn't exist.
- With the file move, adopt and import command if the file
- already exists in the destination area, the action is refused.
- Added mbfile sort command. Files are case insensitive
- sorted on the long filename. After sort the indexes are rebuild.
- Fixed some logging that should have been debug logging.
-
- mbcico:
- Added hydra rpos id -1 indicator for compression stop that
- Alex and I agreed to use. A FSP document will be written.
- Compression log fixed and added percentage compression.
- Added dynamic optimum sendbuffer size with a maximum of 8192
- bytes with an average size of 2048 bytes.
- Removed ITN support.
- Changed two inbound logmessages to debug level.
-
- mbfido:
- Changed two logmessages to debug level.
-
- mbsetup:
- In node editor, fixed error message when there was no more
- room for new nodes to point to the right menus.
- Added support for tar compressed archives.
- Changed all fidonet domain names to maximum 8 characters so
- that we now follow the FTSC specs.
-
- mbtask:
- Removed support for ITN.
-
- script:
- Added install scripts for Gentoo.
-
- lang: Two new language prompts, 21 and 22.
-
-
-v0.39.0 09-Oct-2003 - 22-Oct-2003
-
- general:
- Added menu setup switches for doors: Singe user door and
- hidden from lists.
-
- mbsebbs:
- The whoson list displays the doorname if set in the menus.
- If a door is single user and the door is in use, the second
- user can't start the door but gets a message about this
- situation.
-
- mbsetup:
- Added menu settings for single user door and hide door. Added
- setting for the door name in the menus and removed the never
- used password for the menu (Was only present in the setup).
-
- mbcico:
- Added Hydra zlib compressed data blocks using the idea of Alex
- Shakhaylo. This is experimental and looks compatible with
- mailers that don't support this option. The compression will
- transfer some files about twice as fast as without compression.
- Changed signal handlers to better detect broken TCP links.
- Added logging to show compressed bytes and switched to compress
- level 9 compression instead of 6.
- Prepared hydra for large compressed data blocks. In the next
- developmement version we will actually start using these
- large blocks, this change is to give all beta testers the
- chance to upgrade.
-
- lang:
- Added language prompt 20.
-
- examples:
- Updated English and Spanish menus with the new door settings.
- Fixed some spelling errors in the Dutch templates.
-
-
-
-v0.38.0 26-Dec-2002 - 03-Oct-2003
-
- upgrade:
- Note: if upgrading from a 0.37.8 or 0.37.9 development version,
- then no upgrade procedure is needed. All others read the next
- carefully!
-
- A bit tricky to upgrade and start using the new debug logfile,
- follow the next steps exactly!!
- 1. Download and install the source
- 2. Run "./configure"
- 3. Run "make" (and do not install yet)
- 4. Run "mbstat close"
- 5. Backup /opt/mbse/bin and /opt/mbse/etc.
- 6. Run "mbstat close"
- 7. Kill mbtask, mostly "kill `/sbin/pidoff mbtask`" will do.
- 8. Run (as root) "make install" to install the new software.
- 9. Make sure you are user mbse again.
- 10. Start mbtask manual, "mbtask"
- 11. Run "mbsetup", enter menu 1, exit, save and close.
- 12. Wait one minute.
- 13. Run "mbstat open"
- After this is done the first time, restarting mbtask can be
- done as usual by running the mbsed init script. If something
- doesn't work (you get socket errors), it is important that you
- kill mbtask during software versions swap. All software must
- be of the same build.
- Check settings menu 1.5.21 for maximum allowed logins.
- Check setting of menu 1.14.15.
- Remove ~/etc/archiver.data, start mbsetup menu 3, leave and
- save. This updates the archiver view contents commands.
- After upgrade you may remove ~/etc/maptabs and it's contents.
- After upgrade you may remove ~/etc/bank.data.
- After upgrade you may remove ~/etc/safe.data.
- If you want, download and install the nu-door and safe-door
- packages.
- In mbsetup 1.17.3 check if you have the XX,CM,IBN,IFC flags,
- which indicates your TCP/IP capabilities. This is only for
- systems that use TCP/IP, dialup systems should only have
- the XX,CM flags. Important: only protocols that you place
- in this entry are supported, so XX,CM,IBN will let your system
- only call binkp nodes.
-
- general:
- The nodelist lookup functions are now in a separate library.
- This will give us easy implemtation of new nodelist formats
- and flags.
- Introduced a new file, ~/etc/nodelist.conf, this file will
- be used for nodelist lookup behaviour.
- The current looked-up nodelist strcuture has an extra field,
- the URL how that node must be contacted.
- Debug logging is now in a separate file, the normal logging is
- now only in the normal logfiles.
- Changed all Linux references into GNU/Linux.
- Changed the address of the FSF in all sources.
- Removed memwatch debugger.
- Changed all gif and jpg images to png images.
- Added a setup switch for the nodes for selecting the wrong
- binkp long filenames escape method for Argus and Irex nodes.
- Activated the productcode for mbse that is published in the
- ftscprod.007, MBSE now has an official product code.
- Changed the website address in several sources.
- Added switches for binkp CRC mode in global and node records.
- Added check for inconv.h in configure script for UNIX98
- character set conversion. (Not yet used).
- Removed external (sysop) chat, chat paging times and other
- chat stuff that is of no use anymore. The sysop shows his
- presence by running mbmon. The mbchat program is obsolete.
- Menu item 22 is added, this is user chat session.
- For chat (and sysop/user paging chat) works now using the
- mbtask daemon.
- In several messages handling functions the international
- charset translations are removed because of several bugs. They
- will be replaced by standard library functions. Right now the
- messages are 8 bit clean and there is no translation on the
- gateway. The maptabs are removed.
- Menu items 22 and 23 are removed, menu 319 is added. You may
- want to replace the default txtfiles and menus, upgraded
- versions are in the distribution but are not automatic
- installed.
- Documented menu 318, was present for a long time, just not in
- the html docs.
- The main Makefile now sets each txtfiles directory to mode 775
- to allow doors to write ansi/ascii screens.
- Removed the safe cracker door, this is now external.
- A new developer/translator joined the team, David Gonzalez.
- The settings to suppres some IP protocols (global and nodes)
- are removed, this behaviour must be set using nodelist flags
- configuration.
- Debug logging for mail and news now have one setting, the M.
- Nodelist debug logging now uses the N character.
- In some makefiles the chown user.group syntax changed to
- user:group to follow the new POSIX syntax. Please let me know
- if you are using an older distribution that complains about
- this. This was needed for FreeBSD 4.7.
- Added Dutch template macro files. Updated English and German
- template macro files. Please remove old ones before installing.
-
- common.a:
- Added a set of general purpose timers.
- Node locking tests for non-stale lockfiles older then 6 hours.
- Added general code for prgram locking.
- The getheader function changed to support stone-age .pkt's.
- If the packet year has a Y2K bug, the year is fixed. This is
- only cosmetic for logging.
- If the zone info is missing, the zone is guessed from 2d aka
- matching against the system aka's. Then all mail in the .pkt
- file is also assumed to be in that zone if there is no zone
- info in the messages also.
- Guess what, these packets do still exist in Fidonet, it took
- 5 years to find them! If you want to check, call 5:5/0
- Fixed compiler warning in network code.
- printable function now escapes all non-printable characters.
- In rfcmsg function the Cc: header is now treated as any other
- header to prevent a SIGSEGV when the headerline is empty.
- Removed charset conversion/translation.
- Added integer endian byteorder swapper, usefull for non-Intel
- hardware.
- The poutCR function for the bbs never did send a newline.
- New function to get the real case of a filename.
-
- nodelist.a:
- Added experimental support for IP nodes lookup using a default
- domain method. This is not the final implementation yet!
- Update, this works now as described in a FSP-xxxx that is in
- discussion in the FTSC. This will also work for current
- practice.
-
- msgbase.a:
- Moved messages link from mbmsg program into library.
- Resolved a buffer overflow problem with kludges larger then
- 512 bytes.
-
- mbcico:
- Compiled IEMSI code back in, starts mblogin which is not IEMSI
- ready yet. A user with an IEMSI terminal can from there do a
- manual login.
- If doesn't do Multiple Batch mode anymore against binkp/1.1
- mailers.
- File resync during receive finally works.
- In binkp we don't send a empty dataframe after a file anymore.
- Completly changed the files inbound receive, all files are now
- first stored in a unique per node temporary inbound directory.
- Only after a successfull session all received files are moved
- to the final inbound directory.
- Another goodie is that this is more safe on busy multiline
- systems.
- A light improvement in session handshake setup timers.
- Added EMSI handshake timers, this gives a more relaxed EMSI
- handshake.
- Set the EMSI receive failure count to 20 instead of 6, we can
- now even accept buggy maindoor sessions and still display a
- banner.
- For FTS-0001 sessions the mail password was used instead of the
- session password. Also improved the password check.
- The product code was not entered in the FTS-0001 packet headers.
- Revised some state tables in the binkp session setup stage.
- Fixed a possible buffer overflow in the binkp driver.
- Implemented CRAM rev.4 change in binkp driver.
- Binkp now sends M_BSY to the remote when the bbs is closed.
- Better logging of BSY and ERR messages.
- The binkp transmitter does now escape the unsafe filename
- characters. Method is selectable in the setup.
- The binkp receiver now does process escaped filenames.
- The binkp protocol now supports MD5 crypted passwords.
- Removed some heavy debug code from ttyio functions to increase
- throughput.
- Standarized raw ifcico protocol logging.
- Some minor changes to the raw ifcico protocol, better error
- checking and a check for buffer overflow.
- YooHoo transmitter fixed for transmitting 16 bits product
- codes.
- With binkp and EMSI sessions double received remote aka's are
- filtered.
- When calling ITN nodes, the default port is now 23.
- Call setup changed and uses now the nodelist lookup URL.
- Changed raw ifcico debug logging.
-
- mbout:
- When a poll was removed, the outbound was not rescanned.
-
- mbfile:
- Added program locking to prevent that more than one mbfile can
- run at the same time.
- When a file was deleted for age or download age, the 8.3
- filename was not removed from disk.
- A better check againts empty upload dates when purging files.
- Also added a log when this happens. Please report if you see
- any of these.
- In the import function several bugfixes for reading files.bbs.
- Fixed upper/lowercase filenames bug with import.
- Move old files to another area failed, only the symbolic link
- was moved.
- Prepared for multilanguage html pages creation.
-
- mbfido:
- The rfc to ftn gate now drops the headerlines starting with
- X-Spam- because they are only filled with advertisents and are
- very large (upto 1200 bytes which is somewhat larger for a
- fidonet kludge).
- Stone age packet support, see common.a.
- Due to a configuration error in some system using some tic
- processor mbfido did crash.
- Now it will log this and continue processing ticfiles with the
- risk of sending files back to the owner of that faulty program.
- Added the same check for Seenby lines.
- In a scanned netmail destined to our own local UUCP gate the
- useless X-FTN-INTL and X-FTN-TOPT kludges are no longer
- inserted in the message.
- Finding the inbound tic file now uses the new filecase function.
- Removed all code for charset translation.
- In areamgr/filemgr lists the messages are forced splitted when
- the force limit is reached in the middle of a group listing.
- The nodes statistics are expanded with flow counters.
- If echomail is accepted in a unsecure area or the unsecure
- commandline option is set, a violation is logged as warning.
- Removed some debugging tests and log messages.
- If a tic file was received in uppercase, during import in the
- bbs the LFN is converted to lowercase.
- Promoted some normal debug logmessages to heavy debug messages
- in the outbound queue packer.
- Echomail from other zones showed the address of your own zone.
- Added logging when other errors are found.
- At zonegates, the seenby lines were twice stripped.
- Another patch to compensate for sysops that pack pascalnet
- files in fidonet packets and send these messages into the world
- without zone information.
- Made the incoming tic files complete case insensitive, mixed
- case is now processed. If such file is received, the LFN will
- be set to that name.
- The magic unpack command now uses the mail unpack command
- instead of file unpack command so that paths in the archive are
- junked.
+ Irex between 2.24 and 2.29 then set this to Yes or you won't
+ have good sessions without files with this mailer. Sessions
+ with Irex that do transfer some file are Ok.
+
+ libclcomm:
+ Fixed a small (not harmfull) buffer overlapped copy detected
+ by valgrind.
+
+ libcommon:
+ A small fix in printable log function.
+ Added a safety check for the TCP registrate function to prevent
+ stale TCP/IP mailer counts.
+ Fixed a forgotten fclose in proglock.
+ Allows node locking with zero bytes lockfiles created by some
+ other OS when enabled in the setup.
+ The attach function now checks if a file is already attached.
+ In execute and execsh on Linux systems sync() is called before
+ and after running the external program to make sure diskbuffers
+ are committed. Also added a 300 ms pause.
+ Added a milliseconds timer.
+ Code cleanup.
+
+ libmsgbase:
+ In JAM_Open replaced a strcpy with memmove.
+ Fixed invalid memory read/write in Msg_Link.
+
+ libdbase:
+ Code cleanup in dbdupe.
+
+ libnodelist:
+ Fixed a small memory leak.
mbsebbs:
- When a message is saved, the messages in that area are linked.
- Added check for maximum simultaneous logins.
- Removed debug logging for userrecord i/o
- During virusscan of file uploads, the mbtask timeout timer is
- set to one hour to support very long scans.
- Changed logging during user login.
- Fixed bugs in QWK mail upload processing.
- Allow - and _ in email names (GetstrU function).
- Increased internal message buffer size to 700 lines.
- Fullscreen editor code cleanup, debug messages removed.
- When entering a message, the first character of the subject
- line was capitalized.
- Fixed recognition of tar.gz files.
- Added menu function display file.
- Display ascii textfiles now uses the More Y/n/= prompt.
- When a new message is saved in a local area, the mailout
- semafore is not set anymore.
- Offline reader, the reply packets are now handled complete
- case insensitive.
- Dropped BlueWave v2 format completly, obsolete format.
- The BlueWave and QWK download packets can have kludges, this
- depends on a setting in the userbase.
- In downloaded netmail, if message comes from a point, the FMPT
- kludge is allways included in the message.
- Added some forgotten checks for a valid QWK board name.
- Lots of code cleanups in the offline code.
- Added menu 320, toggle Offline Reader Extended Info.
- Added new control code: control-U + 8, this displays YES or NO
- for the new Extended Info setting.
- The display file function now displays the ^U8 code.
- Added support for door32.sys dropfile.
- Fixed user idle logoff when new mailcheck took too long.
- Added email reply when reading new (e)mail.
- To page the sysop, the CPAG and CCAN commands to mbtask are now
- used.
- Removed all old chat code that worked on the tty device.
- Added chat client site. If the sysop responds to the page
- request, the user is dropped into chatmode in the sysop
- channel as soon as the user does nothing (ie in a menu or still
- in page mode).
- It will now refuse to up/download OLR packets when the system
- bbs id is not set in the global setup.
- When a reply is made on a message in a area which allows
- aliases, the user is asked to use his alias.
- When a reply is made on a message in a newsgroup and your
- systems has a permanent mail domain the email address is used
- as from name.
- Removed timebank and nextuser doors.
- Added editing of user's signature file. New menu item 319.
- If the sysop is exporting a echomail message he will have the
- option to save to his private directory or to the rules
- directory. If saved to the rules directory the message will
- have the filename of the area tag. Normal users can only export
- to their private directory. Sysops: now you can start
- collecting area rules!
- New menu 221, display arearules. This function tries to find
- the arearules in the rules directory and if found displays
- this to the user.
- Fixed whoson list to display user real names and handles again.
- Fixed send online message to send to user real names, handles
- and unix names again.
- The menus are machine endian independant.
- Maybe removed a bug where the bbs sometimes crashed during
- mail reading.
- Fixed some minor things to the door.sys file.
- Normal users were allowed to delete messages of other users,
- now only the writer or those with sysop access to the area are
- allowed to delete messages.
- Finally wrote Delete Message from the menu (menu 206).
- Removed the safe cracker door.
- Changed to use the new nodelist lookup methods.
+ The whoson list displays the doorname if set in the menus.
+ If a door is single user and the door is in use, the second
+ user can't start the door but gets a message about this
+ situation.
+ Fixed a bug where the bbs goes into a loop after idle timeout
+ during login (and maybe in other situations).
+ Fixed chat debug logging to only log to the debug.log file.
+ Posted netmail messages now support CC: lines. The CC: lines
+ should be the first lines of the message in the format:
+ CC: Michiel Broek 2:280/28
+ The Carbon Copied messages are marked with original sender.
+ Fixed small memory leak.
+ Fixed posting to local/echomail areas from bbs users.
+ A lot of small fixes for problems found with valgrind.
mbsetup:
- Made menus editor work on non-intel platforms.
- Added support for debug logging in menu 1.3 and removed the
- mbtask debug switch from menu 18.
- Import and purge oneliners now log what is done.
- In the nodes setup a switch is added to fallback to the wrong
- binkp escape method.
- Added menu entry 1.5.21 for setting maximum allowed logins.
- Added program locking, only one mbsetup can run at the same
- time.
- In menu 1.14 added global switch to disable binkp CRC32 file
- transfers.
- In menu 7.x.3 added a switch to enable binkp CRC32 file
- transfers with this node.
- In menu 1.14 added a switch to turn MD5 crypted passwords off.
- The edit archiver has now an edit line for the view archive
- commands.
- Added protection against wrong database sizes depending on
- global settings.
- When moving a message area to area zero mbsetup doesn't crash
- anymore.
- Added new menu item 319, removed menu items 22 and 23.
- Added setup for rules directory.
- Added setup for menu 221. Changed description of menu 103.
- The menu editor is machine endian independant.
- Removed setup for the safe cracker door.
- In menu 8.3 showing long option data lines, the lines were too
- long for a 80 characters display.
- Removed global flags No-IBN, IFC and ITN from the setup.
- Removed nodes flags No-IBN, IFC and ITN from the setup.
- removed del/rubout/bs keys logging.
+ Added menu settings for single user door and hide door. Added
+ setting for the door name in the menus and removed the never
+ used password for the menu (Was only present in the setup).
+ In node editor, fixed error message when there was no more
+ room for new nodes to point to the right menus.
+ Added support for tar compressed archives.
+ Changed all fidonet domain names to maximum 8 characters so
+ that we now follow the FTSC specs.
+ Removed binkp CRC settings.
+ Fixed a unitialized unlink call in nodes close.
+ Fixed unclosed tempfile.
+ Fixed several small memory leaks.
+ Added default record for french language.
+ Added setting in menu 1.14 to allow zero bytes lockfiles
+ created by another OS.
+ Added setting in menu 7.x.3.18 to disable the use of binkp/1.1
+ protocol per node.
+ Corrected a spelling error (thanks Vince).
+ Removed global setup screen for the ftp server.
+ Reorganised menu 1.4 screen 1 and 2.
+ Added settings for T-Mail filebox paths in the second screen
+ of menu 1.4.
+ Clearing the working message is now only done by the keyboard
+ read function.
+ In several menu items added range check for integer values.
+ In global main aka setup, added check if a domain name is
+ present.
+ Updates to the database is now shown to the user.
+
+ mbcico:
+ Added Hydra zlib compressed data blocks using the idea of Alex
+ Shakhaylo. The compression will transfer some files about twice
+ as fast as without compression.
+ Changed signal handlers to better detect broken TCP links.
+ Changed two inbound logmessages to debug level.
+ All internal references to tfido port changed to telnet port
+ because we now default to telnet port 23 for ITN calls.
+ Dropped binkp CRC support because it will be incompatible with
+ future extensions.
+ Fixed a small memory leak.
+ New binkp/1.1 driver. Check the upgrade for your Irex links.
+ In case of troubles please report these.
+ Added support for T-Mail fileboxes, partly written and info
+ provided by Przemyslaw Kwiatkowski (2:480/127).
+ Removed the check to disable calling points.
+ Added a check to see if we get a URL to call other systems.
+ If nodelist info fails, increase error counter in steps of 10.
+ Fixed nodelocks during session handshake after many years. The
+ problem showed only when mbcico was used together with a mailer
+ on a different OS. When a aka is busy, the aka is now dropped.
+ When all akas are busy, a session is impossible and the session
+ is refused. Thanks to Przemyslaw Kwiatkowski for finding and
+ documenting this bug.
+ The total session avg cps is now corrected with the two seconds
+ session close delay time.
+ Added PLZ compression option to binkp.
+ Added telnet input and output filters so we can now call and
+ answer telnet (ITN) sessions.
+
+ mbfile:
+ When the areanumber with the adopt command was not given, the
+ help is displayed instead of trying area 0 that doesn't exist.
+ With the file move, adopt and import command if the file
+ already exists in the destination area, the action is refused.
+ Added mbfile sort command. Files are case insensitive
+ sorted on the long filename. After sort the indexes are rebuild.
+ Fixed some logging that should have been debug logging.
+ Fixed a uninitialized memory pointer in the index command.
+ Fixed a 3 forgotten file closes in mbfile list.
+ Removed sync calls that are now in execute.
+
+ mbfido:
+ Changed two logmessages to debug level.
+ Fixed a some small memory leaks.
+ With scannews after a GROUP command when authorisation was
+ asked we did not perform a login.
+ Removed sync calls that are now in execute.
mbtask:
- Added support for debug logfile. Dropped the debug switch for
- mbtask logging, this is now allways on.
- On new installations sets max logins to 1.
- Now uses standard locking in ~/var/run
- When idle, it now reports the time to the next event to be
- seen in mbmon menu 1.
- With startup it now shows the tty flags in the log.
- Remove some semafore debug messages.
- Fixed compiler warnings in network code.
- Safer logging of user log messages.
- In personal message text the text after a ; character is not
- ignored anymore.
- With mbtask start, the ports locktimes are reset to zero.
- Added CSYS command to report if sysop is available.
- Added CPAG command to page the sysop.
- Added CCAN command to cancel the sysop page.
- Added CCKP command to check for a page.
- Added CCON, CCLO, CPUT and CGET commands for chatserver.
- Implemented a chatserver, this looks like a simple IRC server
- to the users.
- Arcmail for non-CM nodes and Txx nodes is now sent during the
- node's opening hours or ZMH.
- Fixed a bug where one of the nodelists was node closed with
- each outbound scan and was causing mbtask to stop functioning
- after a few days.
- After forking the daemon, the stdin, stdout and stderr are
- reopend to /dev/null.
- Zero the daily status counters finally works again.
- Added experimental code where tossing mail is not started as
- long as there are mailers running, but not longer as 30 mins.
- This should make the whole system less nervous.
- Modified this code, didn't work, the toss was always started
- at once.
+ The ping function now runs in a separate thread.
+ Changed some ping timer logic.
+ Added a "secret" commandline parameter to allow mbtask to run
+ under control of debuggers.
+ The client command server runs in a separate thread.
+ Fixed some small memory leaks which had no effect on long term
+ running of mbtask, only leaks during program stop.
+ Moved the scheduler in a thread.
+ Rewrote shutdown procedure to make it more portable.
+ Removed default settings for the ftp server.
+ Added support for T-Mail fileboxes.
+ Will call points if a call method is available.
- mbdiff:
- If unpacking a diff file fails, a second attempt is done after
- a sync and one second delay.
+ mbout:
+ Fixed several memory leaks.
+ Poll, remove poll and request failed to points which had no
+ point directory in the outbound, now the directory is created.
+ Added support for T-Mail fileboxes.
- mbmon:
- Updated software info screen.
- Added program locking, only one mbmon can run at the same time
- to prevent troubles with chat and sysop available.
- Reports sysop available or left the system when mbmon starts
- or stops.
- Reports a page from a user in row 3 of the screen (but doesn't
- do chat right now).
- Adjusts its screensize if the environment variables LINES and
- COLUMNS are set.
- (in ~/.profile add the line "export LINES COLUMNS").
- The show lastcallers now adjusts the number of lines available.
- The show server clients screen now adjusts to the number of
- lines available.
- Added chatserver client, there are 2 modes, one id general chat
- and the other is respond to a users page request where the
- channel is automatic set.
-
- mbuser:
- Added program locking to prevent that more than one mbuser can
- run at the same time.
- Added nopper code during pack.
-
- mbaff:
- Added program locking to prevent that more than one mbaff can
- run at the same time.
+ mbindex:
+ Fixed a forgotten file close.
mball:
- Added program locking to prevent that more than one mball can
- run at the same time.
+ Fixed 2 forgotten fclose functions.
- mbmsg:
- Moved message linking to msgbase library.
+ mbuser:
+ Fixed a forgotten file close when nothing was done.
- unix:
- Fixed compiler warning.
+ mbmon:
+ Fixed a minor problem with an uninitialized array.
- examples:
- Updated Spaning and English chat menu to use the internal
- chatserver.
- Removed the last menu item from the offline menu, added new
- Extended Info toggle (English only).
- Updated offline textfiles to remove point download and add
- new Extended Info toggle (English only)
- The English and Dutch templates are updated to show the new
- nodes flow counters (html.nodes).
- English textfiles and menus are updated to show the new menu
- functions.
- Prepared for more example translations.
- Added German template files made by Joachim Kuwan.
+ mbdiff:
+ Removed sync calls that are now in execute.
+
+ mbpasswd:
+ Fixed a small memory leak.
+
+ mbuseradd:
+ Now logs to syslog instead of stderr.
script:
- Fixed debian init script to allow it to run over the network
- by using kill `pidof mbtask` to kill the daemon.
- Added full path to pidof command in FreeBSD init script.
- Added new init script for FreeBSD.
+ Added install scripts for Gentoo.
+ Changed all init scripts to allow the slower stopping of mbtask
+ For the latest Slackware distros a setup script for pkgtool is
+ added. Most other distro's don't need this.
+ Dropped support for Slackware pre 7.0.
+ Changed startup scripts for NetBSD.
+ Fixed NetBSD init script
+ All init scripts now clean the ~/var/run directory and start
+ the bbs allways so that the bbs will try to start after a power
+ failure.
+ New scripts are installed with an extension of .new, you need
+ to check yourself if you can use them to replace your own
+ possible modified scripts.
+ Updated the hatch script to abort if it's not configured.
+ If the user skips to hatch a file, the questions for the magic
+ and replace command are not shown anymore.
+ Dropped support for RedHat and Mandrake pre 6.1.
lang:
- Added language prompts 18 and 19.
- Added germandu, a German language file in "Du" style instead of
- "Sie". Written by Malte Tychsen.
- Changed the last Englsh language prompts in the german.txt.
- New language prompt number 17.
- Erased language prompts 18..36.
- Changed language prompts 15, 16 and 152.
- Changed english, german and dutch language prompts 11, 12, 13,
- 14 and 107.
- Changed in other languages as well, but in English.
+ Added language prompts 20, 21 and 22.
- SETUP.sh
- Made the script more portable.
+ examples:
+ Updated English and Spanish menus with the new door settings.
+ Fixed some spelling errors in the Dutch templates.
+ Updated file menus, added View File command.
+ Changed Dutch newfiles template file.
- CRON.sh
- Removed explanation about Zone Mail Hour, this is obsolete
- for a long time already.
+ html:
+ Removed the outdated ftsc documents, www.ftsc.org is the place
+ to look for them
+ Added upgrade procedure.
diff --git a/ChangeLog_2003 b/ChangeLog_2003
new file mode 100644
index 00000000..ec3127b2
--- /dev/null
+++ b/ChangeLog_2003
@@ -0,0 +1,457 @@
+$Id$
+
+
+v0.38.0 26-Dec-2002 - 03-Oct-2003
+
+ upgrade:
+ Note: if upgrading from a 0.37.8 or 0.37.9 development version,
+ then no upgrade procedure is needed. All others read the next
+ carefully!
+
+ A bit tricky to upgrade and start using the new debug logfile,
+ follow the next steps exactly!!
+ 1. Download and install the source
+ 2. Run "./configure"
+ 3. Run "make" (and do not install yet)
+ 4. Run "mbstat close"
+ 5. Backup /opt/mbse/bin and /opt/mbse/etc.
+ 6. Run "mbstat close"
+ 7. Kill mbtask, mostly "kill `/sbin/pidoff mbtask`" will do.
+ 8. Run (as root) "make install" to install the new software.
+ 9. Make sure you are user mbse again.
+ 10. Start mbtask manual, "mbtask"
+ 11. Run "mbsetup", enter menu 1, exit, save and close.
+ 12. Wait one minute.
+ 13. Run "mbstat open"
+ After this is done the first time, restarting mbtask can be
+ done as usual by running the mbsed init script. If something
+ doesn't work (you get socket errors), it is important that you
+ kill mbtask during software versions swap. All software must
+ be of the same build.
+ Check settings menu 1.5.21 for maximum allowed logins.
+ Check setting of menu 1.14.15.
+ Remove ~/etc/archiver.data, start mbsetup menu 3, leave and
+ save. This updates the archiver view contents commands.
+ After upgrade you may remove ~/etc/maptabs and it's contents.
+ After upgrade you may remove ~/etc/bank.data.
+ After upgrade you may remove ~/etc/safe.data.
+ If you want, download and install the nu-door and safe-door
+ packages.
+ In mbsetup 1.17.3 check if you have the XX,CM,IBN,IFC flags,
+ which indicates your TCP/IP capabilities. This is only for
+ systems that use TCP/IP, dialup systems should only have
+ the XX,CM flags. Important: only protocols that you place
+ in this entry are supported, so XX,CM,IBN will let your system
+ only call binkp nodes.
+
+ general:
+ The nodelist lookup functions are now in a separate library.
+ This will give us easy implemtation of new nodelist formats
+ and flags.
+ Introduced a new file, ~/etc/nodelist.conf, this file will
+ be used for nodelist lookup behaviour.
+ The current looked-up nodelist strcuture has an extra field,
+ the URL how that node must be contacted.
+ Debug logging is now in a separate file, the normal logging is
+ now only in the normal logfiles.
+ Changed all Linux references into GNU/Linux.
+ Changed the address of the FSF in all sources.
+ Removed memwatch debugger.
+ Changed all gif and jpg images to png images.
+ Added a setup switch for the nodes for selecting the wrong
+ binkp long filenames escape method for Argus and Irex nodes.
+ Activated the productcode for mbse that is published in the
+ ftscprod.007, MBSE now has an official product code.
+ Changed the website address in several sources.
+ Added switches for binkp CRC mode in global and node records.
+ Added check for inconv.h in configure script for UNIX98
+ character set conversion. (Not yet used).
+ Removed external (sysop) chat, chat paging times and other
+ chat stuff that is of no use anymore. The sysop shows his
+ presence by running mbmon. The mbchat program is obsolete.
+ Menu item 22 is added, this is user chat session.
+ For chat (and sysop/user paging chat) works now using the
+ mbtask daemon.
+ In several messages handling functions the international
+ charset translations are removed because of several bugs. They
+ will be replaced by standard library functions. Right now the
+ messages are 8 bit clean and there is no translation on the
+ gateway. The maptabs are removed.
+ Menu items 22 and 23 are removed, menu 319 is added. You may
+ want to replace the default txtfiles and menus, upgraded
+ versions are in the distribution but are not automatic
+ installed.
+ Documented menu 318, was present for a long time, just not in
+ the html docs.
+ The main Makefile now sets each txtfiles directory to mode 775
+ to allow doors to write ansi/ascii screens.
+ Removed the safe cracker door, this is now external.
+ A new developer/translator joined the team, David Gonzalez.
+ The settings to suppres some IP protocols (global and nodes)
+ are removed, this behaviour must be set using nodelist flags
+ configuration.
+ Debug logging for mail and news now have one setting, the M.
+ Nodelist debug logging now uses the N character.
+ In some makefiles the chown user.group syntax changed to
+ user:group to follow the new POSIX syntax. Please let me know
+ if you are using an older distribution that complains about
+ this. This was needed for FreeBSD 4.7.
+ Added Dutch template macro files. Updated English and German
+ template macro files. Please remove old ones before installing.
+
+ common.a:
+ Added a set of general purpose timers.
+ Node locking tests for non-stale lockfiles older then 6 hours.
+ Added general code for prgram locking.
+ The getheader function changed to support stone-age .pkt's.
+ If the packet year has a Y2K bug, the year is fixed. This is
+ only cosmetic for logging.
+ If the zone info is missing, the zone is guessed from 2d aka
+ matching against the system aka's. Then all mail in the .pkt
+ file is also assumed to be in that zone if there is no zone
+ info in the messages also.
+ Guess what, these packets do still exist in Fidonet, it took
+ 5 years to find them! If you want to check, call 5:5/0
+ Fixed compiler warning in network code.
+ printable function now escapes all non-printable characters.
+ In rfcmsg function the Cc: header is now treated as any other
+ header to prevent a SIGSEGV when the headerline is empty.
+ Removed charset conversion/translation.
+ Added integer endian byteorder swapper, usefull for non-Intel
+ hardware.
+ The poutCR function for the bbs never did send a newline.
+ New function to get the real case of a filename.
+
+ nodelist.a:
+ Added experimental support for IP nodes lookup using a default
+ domain method. This is not the final implementation yet!
+ Update, this works now as described in a FSP-xxxx that is in
+ discussion in the FTSC. This will also work for current
+ practice.
+
+ msgbase.a:
+ Moved messages link from mbmsg program into library.
+ Resolved a buffer overflow problem with kludges larger then
+ 512 bytes.
+
+ mbcico:
+ Compiled IEMSI code back in, starts mblogin which is not IEMSI
+ ready yet. A user with an IEMSI terminal can from there do a
+ manual login.
+ If doesn't do Multiple Batch mode anymore against binkp/1.1
+ mailers.
+ File resync during receive finally works.
+ In binkp we don't send a empty dataframe after a file anymore.
+ Completly changed the files inbound receive, all files are now
+ first stored in a unique per node temporary inbound directory.
+ Only after a successfull session all received files are moved
+ to the final inbound directory.
+ Another goodie is that this is more safe on busy multiline
+ systems.
+ A light improvement in session handshake setup timers.
+ Added EMSI handshake timers, this gives a more relaxed EMSI
+ handshake.
+ Set the EMSI receive failure count to 20 instead of 6, we can
+ now even accept buggy maindoor sessions and still display a
+ banner.
+ For FTS-0001 sessions the mail password was used instead of the
+ session password. Also improved the password check.
+ The product code was not entered in the FTS-0001 packet headers.
+ Revised some state tables in the binkp session setup stage.
+ Fixed a possible buffer overflow in the binkp driver.
+ Implemented CRAM rev.4 change in binkp driver.
+ Binkp now sends M_BSY to the remote when the bbs is closed.
+ Better logging of BSY and ERR messages.
+ The binkp transmitter does now escape the unsafe filename
+ characters. Method is selectable in the setup.
+ The binkp receiver now does process escaped filenames.
+ The binkp protocol now supports MD5 crypted passwords.
+ Removed some heavy debug code from ttyio functions to increase
+ throughput.
+ Standarized raw ifcico protocol logging.
+ Some minor changes to the raw ifcico protocol, better error
+ checking and a check for buffer overflow.
+ YooHoo transmitter fixed for transmitting 16 bits product
+ codes.
+ With binkp and EMSI sessions double received remote aka's are
+ filtered.
+ When calling ITN nodes, the default port is now 23.
+ Call setup changed and uses now the nodelist lookup URL.
+ Changed raw ifcico debug logging.
+
+ mbout:
+ When a poll was removed, the outbound was not rescanned.
+
+ mbfile:
+ Added program locking to prevent that more than one mbfile can
+ run at the same time.
+ When a file was deleted for age or download age, the 8.3
+ filename was not removed from disk.
+ A better check againts empty upload dates when purging files.
+ Also added a log when this happens. Please report if you see
+ any of these.
+ In the import function several bugfixes for reading files.bbs.
+ Fixed upper/lowercase filenames bug with import.
+ Move old files to another area failed, only the symbolic link
+ was moved.
+ Prepared for multilanguage html pages creation.
+
+ mbfido:
+ The rfc to ftn gate now drops the headerlines starting with
+ X-Spam- because they are only filled with advertisents and are
+ very large (upto 1200 bytes which is somewhat larger for a
+ fidonet kludge).
+ Stone age packet support, see common.a.
+ Due to a configuration error in some system using some tic
+ processor mbfido did crash.
+ Now it will log this and continue processing ticfiles with the
+ risk of sending files back to the owner of that faulty program.
+ Added the same check for Seenby lines.
+ In a scanned netmail destined to our own local UUCP gate the
+ useless X-FTN-INTL and X-FTN-TOPT kludges are no longer
+ inserted in the message.
+ Finding the inbound tic file now uses the new filecase function.
+ Removed all code for charset translation.
+ In areamgr/filemgr lists the messages are forced splitted when
+ the force limit is reached in the middle of a group listing.
+ The nodes statistics are expanded with flow counters.
+ If echomail is accepted in a unsecure area or the unsecure
+ commandline option is set, a violation is logged as warning.
+ Removed some debugging tests and log messages.
+ If a tic file was received in uppercase, during import in the
+ bbs the LFN is converted to lowercase.
+ Promoted some normal debug logmessages to heavy debug messages
+ in the outbound queue packer.
+ Echomail from other zones showed the address of your own zone.
+ Added logging when other errors are found.
+ At zonegates, the seenby lines were twice stripped.
+ Another patch to compensate for sysops that pack pascalnet
+ files in fidonet packets and send these messages into the world
+ without zone information.
+ Made the incoming tic files complete case insensitive, mixed
+ case is now processed. If such file is received, the LFN will
+ be set to that name.
+ The magic unpack command now uses the mail unpack command
+ instead of file unpack command so that paths in the archive are
+ junked.
+
+ mbsebbs:
+ When a message is saved, the messages in that area are linked.
+ Added check for maximum simultaneous logins.
+ Removed debug logging for userrecord i/o
+ During virusscan of file uploads, the mbtask timeout timer is
+ set to one hour to support very long scans.
+ Changed logging during user login.
+ Fixed bugs in QWK mail upload processing.
+ Allow - and _ in email names (GetstrU function).
+ Increased internal message buffer size to 700 lines.
+ Fullscreen editor code cleanup, debug messages removed.
+ When entering a message, the first character of the subject
+ line was capitalized.
+ Fixed recognition of tar.gz files.
+ Added menu function display file.
+ Display ascii textfiles now uses the More Y/n/= prompt.
+ When a new message is saved in a local area, the mailout
+ semafore is not set anymore.
+ Offline reader, the reply packets are now handled complete
+ case insensitive.
+ Dropped BlueWave v2 format completly, obsolete format.
+ The BlueWave and QWK download packets can have kludges, this
+ depends on a setting in the userbase.
+ In downloaded netmail, if message comes from a point, the FMPT
+ kludge is allways included in the message.
+ Added some forgotten checks for a valid QWK board name.
+ Lots of code cleanups in the offline code.
+ Added menu 320, toggle Offline Reader Extended Info.
+ Added new control code: control-U + 8, this displays YES or NO
+ for the new Extended Info setting.
+ The display file function now displays the ^U8 code.
+ Added support for door32.sys dropfile.
+ Fixed user idle logoff when new mailcheck took too long.
+ Added email reply when reading new (e)mail.
+ To page the sysop, the CPAG and CCAN commands to mbtask are now
+ used.
+ Removed all old chat code that worked on the tty device.
+ Added chat client site. If the sysop responds to the page
+ request, the user is dropped into chatmode in the sysop
+ channel as soon as the user does nothing (ie in a menu or still
+ in page mode).
+ It will now refuse to up/download OLR packets when the system
+ bbs id is not set in the global setup.
+ When a reply is made on a message in a area which allows
+ aliases, the user is asked to use his alias.
+ When a reply is made on a message in a newsgroup and your
+ systems has a permanent mail domain the email address is used
+ as from name.
+ Removed timebank and nextuser doors.
+ Added editing of user's signature file. New menu item 319.
+ If the sysop is exporting a echomail message he will have the
+ option to save to his private directory or to the rules
+ directory. If saved to the rules directory the message will
+ have the filename of the area tag. Normal users can only export
+ to their private directory. Sysops: now you can start
+ collecting area rules!
+ New menu 221, display arearules. This function tries to find
+ the arearules in the rules directory and if found displays
+ this to the user.
+ Fixed whoson list to display user real names and handles again.
+ Fixed send online message to send to user real names, handles
+ and unix names again.
+ The menus are machine endian independant.
+ Maybe removed a bug where the bbs sometimes crashed during
+ mail reading.
+ Fixed some minor things to the door.sys file.
+ Normal users were allowed to delete messages of other users,
+ now only the writer or those with sysop access to the area are
+ allowed to delete messages.
+ Finally wrote Delete Message from the menu (menu 206).
+ Removed the safe cracker door.
+ Changed to use the new nodelist lookup methods.
+
+ mbsetup:
+ Made menus editor work on non-intel platforms.
+ Added support for debug logging in menu 1.3 and removed the
+ mbtask debug switch from menu 18.
+ Import and purge oneliners now log what is done.
+ In the nodes setup a switch is added to fallback to the wrong
+ binkp escape method.
+ Added menu entry 1.5.21 for setting maximum allowed logins.
+ Added program locking, only one mbsetup can run at the same
+ time.
+ In menu 1.14 added global switch to disable binkp CRC32 file
+ transfers.
+ In menu 7.x.3 added a switch to enable binkp CRC32 file
+ transfers with this node.
+ In menu 1.14 added a switch to turn MD5 crypted passwords off.
+ The edit archiver has now an edit line for the view archive
+ commands.
+ Added protection against wrong database sizes depending on
+ global settings.
+ When moving a message area to area zero mbsetup doesn't crash
+ anymore.
+ Added new menu item 319, removed menu items 22 and 23.
+ Added setup for rules directory.
+ Added setup for menu 221. Changed description of menu 103.
+ The menu editor is machine endian independant.
+ Removed setup for the safe cracker door.
+ In menu 8.3 showing long option data lines, the lines were too
+ long for a 80 characters display.
+ Removed global flags No-IBN, IFC and ITN from the setup.
+ Removed nodes flags No-IBN, IFC and ITN from the setup.
+ removed del/rubout/bs keys logging.
+
+ mbtask:
+ Added support for debug logfile. Dropped the debug switch for
+ mbtask logging, this is now allways on.
+ On new installations sets max logins to 1.
+ Now uses standard locking in ~/var/run
+ When idle, it now reports the time to the next event to be
+ seen in mbmon menu 1.
+ With startup it now shows the tty flags in the log.
+ Remove some semafore debug messages.
+ Fixed compiler warnings in network code.
+ Safer logging of user log messages.
+ In personal message text the text after a ; character is not
+ ignored anymore.
+ With mbtask start, the ports locktimes are reset to zero.
+ Added CSYS command to report if sysop is available.
+ Added CPAG command to page the sysop.
+ Added CCAN command to cancel the sysop page.
+ Added CCKP command to check for a page.
+ Added CCON, CCLO, CPUT and CGET commands for chatserver.
+ Implemented a chatserver, this looks like a simple IRC server
+ to the users.
+ Arcmail for non-CM nodes and Txx nodes is now sent during the
+ node's opening hours or ZMH.
+ Fixed a bug where one of the nodelists was node closed with
+ each outbound scan and was causing mbtask to stop functioning
+ after a few days.
+ After forking the daemon, the stdin, stdout and stderr are
+ reopend to /dev/null.
+ Zero the daily status counters finally works again.
+ Added experimental code where tossing mail is not started as
+ long as there are mailers running, but not longer as 30 mins.
+ This should make the whole system less nervous.
+ Modified this code, didn't work, the toss was always started
+ at once.
+
+ mbdiff:
+ If unpacking a diff file fails, a second attempt is done after
+ a sync and one second delay.
+
+ mbmon:
+ Updated software info screen.
+ Added program locking, only one mbmon can run at the same time
+ to prevent troubles with chat and sysop available.
+ Reports sysop available or left the system when mbmon starts
+ or stops.
+ Reports a page from a user in row 3 of the screen (but doesn't
+ do chat right now).
+ Adjusts its screensize if the environment variables LINES and
+ COLUMNS are set.
+ (in ~/.profile add the line "export LINES COLUMNS").
+ The show lastcallers now adjusts the number of lines available.
+ The show server clients screen now adjusts to the number of
+ lines available.
+ Added chatserver client, there are 2 modes, one id general chat
+ and the other is respond to a users page request where the
+ channel is automatic set.
+
+ mbuser:
+ Added program locking to prevent that more than one mbuser can
+ run at the same time.
+ Added nopper code during pack.
+
+ mbaff:
+ Added program locking to prevent that more than one mbaff can
+ run at the same time.
+
+ mball:
+ Added program locking to prevent that more than one mball can
+ run at the same time.
+
+ mbmsg:
+ Moved message linking to msgbase library.
+
+ unix:
+ Fixed compiler warning.
+
+ examples:
+ Updated Spaning and English chat menu to use the internal
+ chatserver.
+ Removed the last menu item from the offline menu, added new
+ Extended Info toggle (English only).
+ Updated offline textfiles to remove point download and add
+ new Extended Info toggle (English only)
+ The English and Dutch templates are updated to show the new
+ nodes flow counters (html.nodes).
+ English textfiles and menus are updated to show the new menu
+ functions.
+ Prepared for more example translations.
+ Added German template files made by Joachim Kuwan.
+
+ script:
+ Fixed debian init script to allow it to run over the network
+ by using kill `pidof mbtask` to kill the daemon.
+ Added full path to pidof command in FreeBSD init script.
+ Added new init script for FreeBSD.
+
+ lang:
+ Added language prompts 18 and 19.
+ Added germandu, a German language file in "Du" style instead of
+ "Sie". Written by Malte Tychsen.
+ Changed the last Englsh language prompts in the german.txt.
+ New language prompt number 17.
+ Erased language prompts 18..36.
+ Changed language prompts 15, 16 and 152.
+ Changed english, german and dutch language prompts 11, 12, 13,
+ 14 and 107.
+ Changed in other languages as well, but in English.
+
+ SETUP.sh
+ Made the script more portable.
+
+ CRON.sh
+ Removed explanation about Zone Mail Hour, this is obsolete
+ for a long time already.
+
diff --git a/Makefile b/Makefile
index 6ce1cab9..9476285a 100644
--- a/Makefile
+++ b/Makefile
@@ -6,8 +6,8 @@ include Makefile.global
OTHER = AUTHORS ChangeLog COPYING DEBUG CRON.sh FILE_ID.DIZ.in \
INSTALL.in Makefile Makefile.global.in NEWS \
ChangeLog_1998 ChangeLog_1999 ChangeLog_2000 ChangeLog_2001 \
- ChangeLog_2002 README SETUP.sh TODO UPGRADE aclocal.m4 \
- checkbasic config.h.in configure configure.in paths.h.in
+ ChangeLog_2002 ChangeLog_2003 README SETUP.sh TODO UPGRADE \
+ aclocal.m4 checkbasic config.h.in configure configure.in paths.h.in
TARFILE = ${PACKAGE}-${VERSION}.tar.bz2
###############################################################################
diff --git a/README.developer b/README.developer
index 7f3b94ab..1f15a6a9 100644
--- a/README.developer
+++ b/README.developer
@@ -24,6 +24,7 @@ mbsebbs-0_36_00_release 26-Dec-2002 Version 0.36.00 release.
mbsebbs-0_37_00_current 26-Dec-2002 Start version 0.37 development.
mbsebbs-0_38_00_release 03-Oct-2003 Version 0.38.00 release.
mbsebbs-0_39_00_current 09-Oct-2003 Start version 0.39 development.
+mbsebbs-0_50_00_release 09-Feb-2004 Version 0.50.0 release.
CVS usage.
diff --git a/configure b/configure
index 732dac5a..9a768071 100755
--- a/configure
+++ b/configure
@@ -1274,8 +1274,8 @@ SUBDIRS="lib mbcico mbfido mbmon mbsebbs mbtask mbsetup unix lang examples html
PACKAGE="mbsebbs"
MAJOR="0"
-MINOR="39"
-REVISION="9"
+MINOR="50"
+REVISION="0"
VERSION="$MAJOR.$MINOR.$REVISION"
COPYRIGHT="Copyright (C) 1997-2004 Michiel Broek, All Rights Reserved"
SHORTRIGHT="Copyright (C) 1997-2004 M. Broek"
diff --git a/configure.in b/configure.in
index 6975c48b..d814c3bc 100644
--- a/configure.in
+++ b/configure.in
@@ -12,8 +12,8 @@ dnl After changeing the version number, run autoconf!
dnl
PACKAGE="mbsebbs"
MAJOR="0"
-MINOR="39"
-REVISION="9"
+MINOR="50"
+REVISION="0"
VERSION="$MAJOR.$MINOR.$REVISION"
COPYRIGHT="Copyright (C) 1997-2004 Michiel Broek, All Rights Reserved"
SHORTRIGHT="Copyright (C) 1997-2004 M. Broek"
diff --git a/mbsetup/m_fido.c b/mbsetup/m_fido.c
index b193920d..4af3d635 100644
--- a/mbsetup/m_fido.c
+++ b/mbsetup/m_fido.c
@@ -354,7 +354,7 @@ int EditFidoRec(int Area)
case 14:
case 15:
case 16:
- case 17:E_IRC(j,74, fidonet.zone[j-12], 1, 32767, "A ^Zone number^ which belongs to this domain (1..32767)")
+ case 17:E_IRC(j,74, fidonet.zone[j-12], 0, 32767, "A ^Zone number^ which belongs to this domain (1..32767)")
}
}
diff --git a/unix/mbuseradd.c b/unix/mbuseradd.c
index c3be65a4..6f67d984 100644
--- a/unix/mbuseradd.c
+++ b/unix/mbuseradd.c
@@ -4,7 +4,7 @@
* Purpose ...............: setuid root version of useradd
*
*****************************************************************************
- * Copyright (C) 1997-2002
+ * Copyright (C) 1997-2004
*
* Michiel Broek FIDO: 2:280/2802
* Beekmansbos 10
@@ -41,6 +41,7 @@
#include
#include
#include
+#include
#include "mbuseradd.h"
@@ -49,77 +50,71 @@
int execute(char *cmd, char *file, char *in, char *out, char *err)
{
- char buf[PATH_MAX];
- char *vector[16];
- int i;
- int pid, status, rc, sverr;
+ char buf[PATH_MAX], *vector[16];
+ int i, pid, status = 0, rc = 0;
- sprintf(buf, "%s %s", cmd, file);
+ sprintf(buf, "%s %s", cmd, file);
+ syslog(LOG_WARNING, "Execute: %s", buf);
+
+ memset(vector, 0, sizeof(vector));
+ i = 0;
+ vector[i++] = strtok(buf, " \t\n");
+ while ((vector[i++] = strtok(NULL," \t\n")) && (i < 16)) { syslog(LOG_NOTICE, "%s", vector[i]); } ;
+ vector[15] = NULL;
+ fflush(stdout);
+ fflush(stderr);
- i=0;
- vector[i++] = strtok(buf, " \t\n");
- while ((vector[i++] = strtok(NULL," \t\n")) && (i < 16));
- vector[15] = NULL;
- fflush(stdout);
- fflush(stderr);
-
- if ((pid = fork()) == 0) {
- if (in) {
- close(0);
- if (open(in, O_RDONLY) != 0) {
- perror("");
- fprintf(stderr, "mbuseradd: Reopen of stdin to %s failed\n", in);
- _exit(-1);
- }
- }
- if (out) {
- close(1);
- if (open(out, O_WRONLY | O_APPEND | O_CREAT,0600) != 1) {
- perror("");
- fprintf(stderr, "mbuseradd: Reopen of stdout to %s failed\n", out);
- _exit(-1);
- }
- }
- if (err) {
- close(2);
- if (open(err, O_WRONLY | O_APPEND | O_CREAT,0600) != 2) {
- perror("");
- fprintf(stderr, "mbuseradd: Reopen of stderr to %s failed\n", err);
- _exit(-1);
- }
- }
- rc = execv(vector[0],vector);
- fprintf(stderr, "mbuseradd: Exec \"%s\" returned %d\n", vector[0], rc);
+ if ((pid = fork()) == 0) {
+ if (in) {
+ close(0);
+ if (open(in, O_RDONLY) != 0) {
+ syslog(LOG_WARNING, "Reopen of stdin to %s failed", in);
_exit(-1);
+ }
}
-
- do {
- rc = wait(&status);
- sverr = errno;
- } while (((rc > 0) && (rc != pid)) || ((rc == -1) && (sverr == EINTR)));
-
- if (rc == -1) {
- fprintf(stderr, "mbuseradd: Wait returned %d, status %d,%d\n", rc, status >> 8, status & 0xff);
- return -1;
+ if (out) {
+ close(1);
+ if (open(out, O_WRONLY | O_APPEND | O_CREAT,0600) != 1) {
+ syslog(LOG_WARNING, "Reopen of stdout to %s failed", out);
+ _exit(-1);
+ }
}
+ if (err) {
+ close(2);
+ if (open(err, O_WRONLY | O_APPEND | O_CREAT,0600) != 2) {
+ syslog(LOG_WARNING, "Reopen of stderr to %s failed", err);
+ _exit(-1);
+ }
+ }
+ rc = execv(vector[0],vector);
+ syslog(LOG_WARNING, "Exec \"%s\" returned %d", vector[0], rc);
+ _exit(-1);
+ }
- return status;
+ do {
+ rc = wait(&status);
+ } while (((rc > 0) && (rc != pid)) || ((rc == -1) && (errno == EINTR)));
+
+ if (rc == -1) {
+ syslog(LOG_WARNING, "Wait returned %d, status %d,%d", rc, status >> 8, status & 0xff);
+ return -1;
+ }
+
+ return 0;
}
void makedir(char *path, mode_t mode, uid_t owner, gid_t group)
{
- if (mkdir(path, mode) != 0) {
- perror("");
- fprintf(stderr, "mbuseradd: Can't create %s\n", path);
- exit(2);
- }
- if ((chown(path, owner, group)) == -1) {
- perror("");
- fprintf(stderr, "mbuseradd: Unable to change ownership of %s\n", path);
- exit(2);
- }
+ if (mkdir(path, mode) != 0) {
+ syslog(LOG_WARNING, "Can't create directory %s", path);
+ exit(2);
+ }
+ if ((chown(path, owner, group)) == -1) {
+ syslog(LOG_WARNING, "Unable to change ownership of %s", path);
+ exit(2);
+ }
}
@@ -130,167 +125,170 @@ void makedir(char *path, mode_t mode, uid_t owner, gid_t group)
*/
int main(int argc, char *argv[])
{
- char *PassEnt, *temp, *shell;
- int i;
- struct passwd *pwent, *pwuser;
+ char *PassEnt, *temp, *shell;
+ int i;
+ struct passwd *pwent, *pwuser;
- if (argc != 5)
- Help();
+ if (argc != 5)
+ Help();
- /*
- * First simple check for argument overflow
- */
- for (i = 1; i < 5; i++) {
- if (strlen(argv[i]) > 80) {
- fprintf(stderr, "mbuseradd: Argument %d is too long\n", i);
- exit(1);
- }
+ /*
+ * First simple check for argument overflow
+ */
+ for (i = 1; i < 5; i++) {
+ if (strlen(argv[i]) > 80) {
+ fprintf(stderr, "mbuseradd: Argument %d is too long\n", i);
+ exit(1);
}
+ }
- PassEnt = calloc(PATH_MAX, sizeof(char));
- temp = calloc(PATH_MAX, sizeof(char));
- shell = calloc(PATH_MAX, sizeof(char));
+ PassEnt = calloc(PATH_MAX, sizeof(char));
+ temp = calloc(PATH_MAX, sizeof(char));
+ shell = calloc(PATH_MAX, sizeof(char));
- if (setuid(0) == -1 || setgid(1) == -1) {
- perror("");
- fprintf(stderr, "mbuseradd: Unable to setuid(root) or setgid(root)\n");
- fprintf(stderr, "Make sure that this program is set to -rwsr-sr-x\n");
- fprintf(stderr, "Owner must be root and group root\n");
- exit(1);
- }
- umask(0000);
+ if (setuid(0) == -1 || setgid(1) == -1) {
+ perror("");
+ fprintf(stderr, "mbuseradd: Unable to setuid(root) or setgid(root)\n");
+ fprintf(stderr, "Make sure that this program is set to -rwsr-sr-x\n");
+ fprintf(stderr, "Owner must be root and group root\n");
+ exit(1);
+ }
+ umask(0000);
- /*
- * Build command to add user entry to the /etc/passwd and /etc/shadow
- * files. We use the systems own useradd program.
- */
+ /*
+ * 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);
+ syslog(LOG_WARNING, "mbuseradd %s %s %s %s", argv[1], argv[2], argv[3], argv[4]);
+
+ /*
+ * Build command to add user entry to the /etc/passwd and /etc/shadow
+ * files. We use the systems own useradd program.
+ */
#if defined(__linux__) || defined(__NetBSD__)
- if ((access("/usr/bin/useradd", R_OK)) == 0)
- strcpy(temp, "/usr/bin/useradd");
- else if ((access("/bin/useradd", R_OK)) == 0)
- strcpy(temp, "/bin/useradd");
- else if ((access("/usr/sbin/useradd", R_OK)) == 0)
- strcpy(temp, "/usr/sbin/useradd");
- else if ((access("/sbin/useradd", R_OK)) == 0)
- strcpy(temp, "/sbin/useradd");
- else {
- fprintf(stderr, "mbuseradd: Can't find useradd\n");
- exit(1);
- }
-#elif __FreeBSD__
- if ((access("/usr/sbin/pw", X_OK)) == 0)
- strcpy(temp, "/usr/sbin/pw");
- else if ((access("/sbin/pw", X_OK)) == 0)
- strcpy(temp, "/sbin/pw");
- else {
- fprintf(stderr, "mbuseradd: Can't find pw\n");
- exit(1);
- }
-#else
- fprintf(stderr, "mbuseradd: Don't know how to add a user on this OS\n");
+ if ((access("/usr/bin/useradd", R_OK)) == 0)
+ strcpy(temp, "/usr/bin/useradd");
+ else if ((access("/bin/useradd", R_OK)) == 0)
+ strcpy(temp, "/bin/useradd");
+ else if ((access("/usr/sbin/useradd", R_OK)) == 0)
+ strcpy(temp, "/usr/sbin/useradd");
+ else if ((access("/sbin/useradd", R_OK)) == 0)
+ strcpy(temp, "/sbin/useradd");
+ else {
+ syslog(LOG_WARNING, "Can't find useradd");
exit(1);
+ }
+#elif __FreeBSD__
+ if ((access("/usr/sbin/pw", X_OK)) == 0)
+ strcpy(temp, "/usr/sbin/pw");
+ else if ((access("/sbin/pw", X_OK)) == 0)
+ strcpy(temp, "/sbin/pw");
+ else {
+ syslog(LOG_WARNING, "Can't find pw");
+ exit(1);
+ }
+#else
+ syslog(LOG_WARNING, "Don't know how to add a user on this OS");
+ exit(1);
#endif
- sprintf(shell, "%s/bin/mbsebbs", getenv("MBSE_ROOT"));
+ sprintf(shell, "%s/bin/mbsebbs", getenv("MBSE_ROOT"));
#if defined(__linux__) || defined(__NetBSD__)
- sprintf(PassEnt, "%s -c \"%s\" -d %s/%s -g %s -s %s %s",
- temp, argv[3], argv[4], argv[2], argv[1], shell, argv[2]);
+ sprintf(PassEnt, "%s -c \"%s\" -d %s/%s -g %s -s %s %s", temp, argv[3], argv[4], argv[2], argv[1], shell, argv[2]);
#endif
#ifdef __FreeBSD__
- sprintf(PassEnt, "%s useradd %s -c \"%s\" -d %s/%s -g %s -s %s",
- temp, argv[2], argv[3], argv[4], argv[2], argv[1], shell);
+ sprintf(PassEnt, "%s useradd %s -c \"%s\" -d %s/%s -g %s -s %s", temp, argv[2], argv[3], argv[4], argv[2], argv[1], shell);
#endif
- fflush(stdout);
- fflush(stdin);
- if (system(PassEnt) != 0) {
- perror("mbuseradd: Failed to create unix account\n");
- exit(1);
- }
+ syslog(LOG_WARNING, "system(%s)", PassEnt);
+ if (system(PassEnt) != 0) {
+ syslog(LOG_WARNING, "Failed to create unix account");
+ exit(1);
+ }
- /*
- * Now create directories and files for this user.
- */
- if ((pwent = getpwnam((char *)"mbse")) == NULL) {
- perror("mbuseradd: Can't get password entry for \"mbse\"\n");
- exit(2);
+ /*
+ * Now create directories and files for this user.
+ */
+ if ((pwent = getpwnam((char *)"mbse")) == NULL) {
+ syslog(LOG_WARNING, "Can't get password entry for \"mbse\"");
+ exit(2);
+ }
+
+ /*
+ *
+ * Check bbs users base home directory
+ */
+ if ((access(argv[4], R_OK)) != 0)
+ makedir(argv[4], 0770, pwent->pw_uid, pwent->pw_gid);
+
+ /*
+ * Now create users home directory. Check for an existing directory,
+ * some systems have already created a home directory. If one is found
+ * it is removed to create a fresh one.
+ */
+ sprintf(temp, "%s/%s", argv[4], argv[2]);
+ if ((access(temp, R_OK)) == 0) {
+ if ((access("/bin/rm", X_OK)) == 0)
+ strcpy(shell, "/bin/rm");
+ else if ((access("/usr/bin/rm", X_OK)) == 0)
+ strcpy(shell, "/usr/bin/rm");
+ else {
+ syslog(LOG_WARNING, "Can't find rm");
+ exit(2);
}
-
- /*
- * Check bbs users base home directory
- */
- if ((access(argv[4], R_OK)) != 0)
- makedir(argv[4], 0770, pwent->pw_uid, pwent->pw_gid);
-
- /*
- * Now create users home directory. Check for an existing directory,
- * some systems have already created a home directory. If one is found
- * it is removed to create a fresh one.
- */
- sprintf(temp, "%s/%s", argv[4], argv[2]);
- if ((access(temp, R_OK)) == 0) {
- if ((access("/bin/rm", X_OK)) == 0)
- strcpy(shell, "/bin/rm");
- else if ((access("/usr/bin/rm", X_OK)) == 0)
- strcpy(shell, "/usr/bin/rm");
- else {
- fprintf(stderr, "mbuseradd: Can't find rm\n");
- exit(2);
- }
- sprintf(PassEnt, " -Rf %s", temp);
- fflush(stdout);
- fflush(stdin);
- i = execute(shell, PassEnt, (char *)"/dev/tty", (char *)"/dev/tty", (char *)"/dev/tty");
-
- if (i != 0) {
- fprintf(stderr, "mbuseradd: Unable remove old home directory\n");
- exit(2);
- }
+ sprintf(PassEnt, " -Rf %s", temp);
+ i = execute(shell, PassEnt, (char *)"/dev/tty", (char *)"/dev/tty", (char *)"/dev/tty");
+ if (i != 0) {
+ syslog(LOG_WARNING, "Unable remove old home directory");
+ exit(2);
}
+ }
- /*
- * Create users home directory.
- */
- pwuser = getpwnam(argv[2]);
- makedir(temp, 0770, pwuser->pw_uid, pwent->pw_gid);
+ /*
+ * Create users home directory.
+ */
+ if ((pwuser = getpwnam(argv[2])) == NULL) {
+ syslog(LOG_WARNING, "Can't get passwd entry for %s", argv[2]);
+ exit(2);
+ }
+ makedir(temp, 0770, pwuser->pw_uid, pwent->pw_gid);
- /*
- * Create Maildir and subdirs for Qmail.
- */
- sprintf(temp, "%s/%s/Maildir", argv[4], argv[2]);
- makedir(temp, 0700, pwuser->pw_uid, pwent->pw_gid);
- sprintf(temp, "%s/%s/Maildir/cur", argv[4], argv[2]);
- makedir(temp, 0700, pwuser->pw_uid, pwent->pw_gid);
- sprintf(temp, "%s/%s/Maildir/new", argv[4], argv[2]);
- makedir(temp, 0700, pwuser->pw_uid, pwent->pw_gid);
- sprintf(temp, "%s/%s/Maildir/tmp", argv[4], argv[2]);
- makedir(temp, 0700, pwuser->pw_uid, pwent->pw_gid);
+ /*
+ * Create Maildir and subdirs for Qmail.
+ */
+ sprintf(temp, "%s/%s/Maildir", argv[4], argv[2]);
+ makedir(temp, 0700, pwuser->pw_uid, pwent->pw_gid);
+ sprintf(temp, "%s/%s/Maildir/cur", argv[4], argv[2]);
+ makedir(temp, 0700, pwuser->pw_uid, pwent->pw_gid);
+ sprintf(temp, "%s/%s/Maildir/new", argv[4], argv[2]);
+ makedir(temp, 0700, pwuser->pw_uid, pwent->pw_gid);
+ sprintf(temp, "%s/%s/Maildir/tmp", argv[4], argv[2]);
+ makedir(temp, 0700, pwuser->pw_uid, pwent->pw_gid);
#ifdef _VPOPMAIL_PATH
- sprintf(temp, "%s/vadduser %s %s", _VPOPMAIL_PATH, argv[2], argv[2]);
- fflush(stdout);
- fflush(stdin);
+ sprintf(temp, "%s/vadduser %s %s", _VPOPMAIL_PATH, argv[2], argv[2]);
- if (system(temp) != 0) {
- perror("mbuseradd: Failed to create vpopmail account\n");
- }
+ if (system(temp) != 0) {
+ syslog(LOG_WARNING, "Failed to create vpopmail account");
+ }
#endif
- free(shell);
- free(PassEnt);
- free(temp);
-
- exit(0);
+ free(shell);
+ free(PassEnt);
+ free(temp);
+ syslog(LOG_WARNING, "Added system account for user\"%s\"", argv[2]);
+ exit(0);
}
void Help()
{
- fprintf(stderr, "\nmbuseradd commandline:\n\n");
- fprintf(stderr, "mbuseradd [gid] [name] [comment] [usersdir]\n");
- exit(1);
+ fprintf(stderr, "\nmbuseradd commandline:\n\n");
+ fprintf(stderr, "mbuseradd [gid] [name] [comment] [usersdir]\n");
+ exit(1);
}