Last update 09-Nov-2001
mbsebbs - The main BBS program
Synopsis.
mbsebbs
Description.
mbsebbs is the main bbs program for the users. To be able to use the bbs, the bbs mustbe set open with mbstat open or users may not login. This is normally done at system boot. Also Zone Mail Hour is honored if the user logs in on a tty that has the honor ZMH flag set to true. If it is ZMH and the ZMH flag is true, the user will be kicked out of the bbs. You should only set this flag on the modem lines where you need to be available for ZMH if your "Fidonet" network requires that.
The first visible action is to show the logo.ans file. Because it is not known who is trying to login, you only need to place this file in the default language directory.
The next check is to see if the user is allowed to login on the tty he currently is on. If this tty is not available or is not in your setup, the user is kicked out. If he is allowed to login, a message is shown at which port he is on, unless you have turned this feature off in the setup.
If a user logs in the first check is if he/she has a Unix account or not. Unix users bypass the login prompt. Other users will get the normal prompt the same way DOS based bbs programs do. At that time it is checked if the user has IEMSI capabilities, if that is true, IEMSI login will be tried. If the user is not known, the newuser procedure begins.
If the user login is successfull, his favourite language will be loaded. Then it is checked if the user is the Sysop, if so, the Sysop flag is set. If the user has a blank password, he is asked to create a new password. Next it is checked if the user has an Unix account, if not he is forced to create a Unix account. This situation can exist after switching to MBSE BBS and you have converted your old userbase to the userbase for MBSE BBS. If the users Date of Birth is invalid, he is forced to enter the right Date of Birth. The next check is to see if the user has passed the expiry date, this is a usefull feature for systems with donating users. Finally the access limits are set for the user and time remaining for today and download limits are set.
After successfull login the user can be presented with a bunch of advertising screens. I will only name the screens without filename extension, as these screens are searched for in the following order;
mainlogo. Here you can put a logo or something. welcome. This screen can contain information about the session the user has, his download limits, time left etc.
- filename.ans in the users favourite language directory.
- filename.ans in the default language directory.
- filename.asc in the users favourite language directory.
- filename.asc in the default language directory.
- If nothing is found, nothing is displayed.
welcome1 is shown if the user has show bulletins set to true. welcome2 is shown if the user has show bulletins set to true. welcome3 is shown if the user has show bulletins set to true. welcome4 is shown if the user has show bulletins set to true. welcome5 is shown if the user has show bulletins set to true. welcome6 is shown if the user has show bulletins set to true. welcome7 is shown if the user has show bulletins set to true. welcome8 is shown if the user has show bulletins set to true. welcome9 is shown if the user has show bulletins set to true.
birthday is shown if the user logs in at his birthday and if he has show bullentins set to true.
dd-mm is shown if dd is the date of today and mm is the current month and if the user has show bulletins set to true.
sec20 is shown if the user has the security level in the filename, level 20 in this example. Als the display bulletins must be set to true.
news is shown if the user has the display bulletins set to true.
onceonly is shown only if the user has never seen this screen, the test is to compare the users last login date against the date of this file.
After all these screens the users Offline Reader areas are checked to see if you as sysop didn't change the message areas. If you made changes, the users setup is adjusted and he will be notified. This means he sees a list with deleted areas and new areas.
Next if the user has newmail scan set to true all message bases are checked to see if the user has new mail. This includes a check to see if he has Unix mail. If there is Unix mail, those mails are retrieved from the POP3 server and stored in his private mailbox. If there is new mail for the user, the user sees a list of areas with the messages in it and he is offered to read and reply these messages.
Then if the user has show newfiles set to true and he is not a new bbs user he will see a list of new files you have on your bbs. During this display he can tag files for later download.
The final setup is to set the users "do not disturb" flag and then the menu system is started. The menu system will run forever, until the user chooses to logoff, the connection is lost or his daily timelimit is reached. For the possibilities and setup of the menus see MBSE BBS Menu System
Environment.
In order to run mbsebbs you must set the global variable $MBSE_ROOT. This variable must point to the root directory of the bbs structure. The main configuration file config.data must be present in the ~/etc directory.
If the environment variable CONNECT is present, a log entry will be made with the connect speed.
If the environment variable CALLER_ID is present, a log entry will be made with the caller id.
If the environment variable LOGNAME is present and it is not bbs then it is assumed that it is a Unixmode login of the user who's Unixname is in the LOGNAME environment variable. This variable is set by the /bin/login program, so users that telnet to your bbs or login via mgetty and login with their Unixname will set this. If the LOGNAME is bbs then the user is prompted to enter his Fidonet style name. By the way, you can change that default bbs username with mbsetup.