From 90eb95b7f26ebc9dd3a3c9c6a42fdd229cccf865 Mon Sep 17 00:00:00 2001 From: David Gonzalez Date: Tue, 21 Jan 2003 19:48:25 +0000 Subject: [PATCH] Updated FAQ to include the xinetd --- html/faq.html | 3556 ++++++++++++++++++++++++++++++++----------------- 1 file changed, 2303 insertions(+), 1253 deletions(-) diff --git a/html/faq.html b/html/faq.html index 4304a576..fc73be18 100644 --- a/html/faq.html +++ b/html/faq.html @@ -1,1257 +1,2307 @@ - + + - - - - - - - - - - - - - - MBSE BBS FAQ & Howto - - - + + + + + + + +MBSE BBS FAQ & Howto + + + + + + + + + - -
-
-

MBSE BBS FAQ and Howto.

-
-
-
Last updated 13-Nov-2002
-
-
-Authors: P.E. Kimble aka King Kimerud            kimerud@bayhaus.org
-         Michiel Broek                           2:280/2802
-         Rick van Ruth                           3:640/954
-  

-

Introduction

-

This FAQ is a work in progress. It is not complete, nor does its author -claim that it is complete. This FAQ only answers questions pertaining to -using MBSE BBS on your Linux box. It is a compilation of previous questions - that Michiel Broek has recieved and answered from us newbies in getting - MBSE up & running.

-
    -
  1. - Installation -
  2. -
      -
    1. Why do I have to install MBSE in the /opt directory? -
    2. -
    3. What other operating systems will MBSE run on? -
    4. -
    5. Will MBSE ever be ported to DOS/Windows or OS/2? -
    6. -
    7. What does the quest switch in the bbs user setup - mean? -
    8. -
    9. How do I monitor as the things happen? -
    10. -
    11. How do I start mbsebbs from inetd? -
    12. -
    13. I just installed mbse, now I get a Socket send -failed error 2 -
    14. -
    -

     

    -
  3. - Fidonet Setup -
  4. -
      -
    1. The nodelist compiler crashes, why? -
    2. -
    3. What is the purpose of the "Comment" line in the - tic area setup? -
    4. -
    5. How do I poll a node? -
    6. -
    7. I created a filerequest but mbcico doesn't call -out. -
    8. -
    9. Does MBSE support fidonet via ftp feeds? -
    10. -
    11. The tosser and mbmsg program are slow, why? -
    12. -
    13. How can I use an external netmail tracker with MBSE? -
    14. -
    15. I am having problems with dates when unarchiving - .arc files. -
    16. -
    -

     

    -
  5. - Internet Setup -
  6. -
      -
    1. Posting newsmessages to the newsserver fails. -
    2. -
    3. FTP fidonet feeds how-to. -
    4. -
    5. Polling a internet node fails -
    6. -
    7. Dialup script examples for MBSE -
    8. -
    -

     

    -
  7. - BBS Setup -
  8. -
      -
    1. How do I to set up MBSE for ISDN? -
    2. -
    3. How do I use GoldED together with MBSE? -
    4. -
    5. How do I use MsgEd together with MBSE? -
    6. -
    -

     

    -
  9. - Doors Setup -
  10. -
      -
    1. How do I run DOS doors under MBSE BBS? -
    2. -
    3. Dosemu compile tips -
    4. -
    5. Setting up for InterBBS games. -
    6. -
    7. Door Maintenance. -
    8. -
    + + + +
    + +
    + +

    MBSE BBS FAQ and Howto.

    + +
    Last updated 13-Nov-2002
    + +
     
    Authors: P.E. Kimble aka King Kimerud            kimerud@bayhaus.org
             Michiel Broek                           2:280/2802
             Rick van Ruth                           3:640/954
      
    + +
    + +
    + +
    + +

    Introduction

    + +

    This FAQ +is a work in progress. It is not complete, nor does its author claim that it is +complete. This FAQ only answers questions pertaining to using MBSE BBS on your +Linux box. It is a compilation of previous questions that Michiel Broek has +recieved and answered from us newbies in getting MBSE up & running.

    + +
      +
    1. Installation
    2. +
    + +
      +
        +
      1. Why do I have to install MBSE in the /opt + directory?
      2. +
      3. What other operating systems will MBSE + run on?
      4. +
      5. Will MBSE ever be ported to DOS/Windows + or OS/2?
      6. +
      7. What does the quest switch in the bbs + user setup mean?
      8. +
      9. How do I monitor as the things happen?
      10. +
      11. How do I start mbsebbs from inetd?
      12. +
      13. I just installed mbse, now I get a Socket + send failed error 2
      14. +
      15. How do i + Start mbsebbs from Xinetd.
      16. +
      +
    + +

     

    + +
      +
    1. Fidonet Setup
    2. +
    + +
      +
        +
      1. The nodelist compiler crashes, why?
      2. +
      3. What is the purpose of the + "Comment" line in the tic area setup?
      4. +
      5. How do I poll a node?
      6. +
      7. I created a filerequest but mbcico + doesn't call out.
      8. +
      9. Does MBSE support fidonet via ftp feeds?
      10. +
      11. The tosser and mbmsg program are slow, + why?
      12. +
      13. How can I use an external netmail tracker + with MBSE?
      14. +
      15. I am having problems with dates when + unarchiving .arc files.
      16. +
      +
    + +

     

    + +
      +
    1. Internet Setup
    2. +
    + +
      +
        +
      1. Posting newsmessages to the newsserver + fails.
      2. +
      3. FTP fidonet feeds how-to.
      4. +
      5. Polling a internet node fails +
      6. +
      7. Dialup script examples for MBSE +
      8. +
      +
    + +

     

    + +
      +
    1. BBS Setup
    2. +
    + +
      +
        +
      1. How do I to set up MBSE for ISDN?
      2. +
      3. How do I use GoldED together with MBSE?
      4. +
      5. How do I use MsgEd together with MBSE?
      6. +
      +
    + +

     

    + +
      +
    1. Doors Setup
    2. +
    + +
      +
        +
      1. How do I run DOS doors under MBSE BBS?
      2. +
      3. Dosemu compile tips
      4. +
      5. Setting up for InterBBS games.
      6. +
      7. Door Maintenance.
      8. +
      +
    + +

    BackGo Back +

    + +
    + +
    + +
    + +

    1. Installation.

    + + + + + + + + + + +
    +

    Q + 1.1

    +
    +

    Why do I have to install MBSE in the /opt directory?

    +
    +

    A 1.1

    +
    +

    The /opt is for extra applications, when mbse is + installed there it is easier to upgrade the OS. If you insist on installing + in /usr/local the choose /usr/local/mbse.

    +
    + +

    Up

    + + + + + + + + + + +
    +

    Q + 1.2

    +
    +

    What other operating systems will MBSE run on?

    +
    +

    A 1.2

    +
    +

    Currently only on most Linux distributions, FreeBSD + and NetBSD. The author, Michiel Broek, has made a valiant effort ensuring + that MBSE will recognize and install on the major distributions of Linux.

    +
    + +

    Up

    + + + + + + + + + + +
    +

    Q + 1.3

    +
    +

    Will MBSE BBS ever be ported to DOS/Windows or OS/2? +

    +
    +

    A 1.3

    +
    +

    No.

    +
    + +

    Up

    + + + + + + + + + + +
    +

    Q + 1.4

    +
    +

    What does the guest switch in BBS user setup mean?

    +
    +

    A 1.4

    +
    +

    Nothing yet.

    +
    + +

    Up

    + + + + + + + + + + +
    +

    Q + 1.5

    +
    +

    How do I monitor as the things happen?

    +
    +

    A 1.5

    +
    +

    tail -f /opt/mbse/log/system.log or start mbmon.

    +
    + +

    Up

    + + + + + + + + + + +
    +

    Q + 1.6

    +
    +

    How to start mbsebbs from inetd?

    +
    +

    A 1.6

    +
    +

    This is described in the documentation of the mblogin + program.

    +
    + +

    Up

    + + + + + + + + + + +
    +

    Q + 1.7

    +
    +

    I just installed mbse, now I get a Socket send + failed error 2.

    +
    +

    A 1.7

    +
    +

    With a normal system boot the mbtask daemon + will be started by one of the systems init scripts. If you just installed + mbse you need to do this for the first time manually. As user mbse + issue the following commands:

    +
    mbtask
    +mbstat open
    +

    This will start the daemon, the daemon creates the + default databases. Then you can use mbsetup to configure your new + system.

    +
    + +

    Up

    + + + + + + + + + + +
    +

    Q 1.8

    +
    +

    How do I start mbsebbs from Xinetd

    +
    +

    A 1.8

    +
    +

    This has to be done as root. You have to create a + service under /etc/xinetd.d named telnet if you don’t have it yet + installed, if it is already installed just modify the server_args line to + match this:

    +

     

    +

    server_args = -L /opt/mbse/bin/mblogin

    +

     

    +

    Your /etc/xinetd.d/telnet file should look something + like this:

    +

     

    +

    service telnet

    +

    {

    +

            flags + = REUSE

    +

            + log_on_failure += USERID

    +

            + socket_type = stream

    +

            user = + root

    +

            server + = /usr/sbin/telnetd

    +

            + server_args = -L /opt/mbse/bin/mblogin

    +

            wait = + no

    +

    }

    +

     

    +

    This will replace the standard login program on + xnetd systems to the mblogin program, so that next time someone logs into + your bbs they will be presented the issue file on /opt/mbse/etc file and the + login prompt for the BBS instead of the standar login prompt.

    +
    + +

     

    + +
    + +
    + +
    + +

    2. Fidonet +setup.

    + + + + + + + + + + +
    +

    Q 2.1

    +
    +

    The nodelist compiler crashes, why?

    +
    +

    A 2.1

    +
    +

    Note: From previous experience, it is vital that you + follow the docs closely. Also, ensure that you have a copy of a valid + nodelist and nodediff file. I have ran into problems where either the + noddiffs don't match the nodelist, the crc checks fail, or I have files from + two different zones. I have even had to back up several months before finding + a valid noddiff that would match the nodelist.
    + Make sure the domain translations do exist, with mbsetup enter menu 17 and + save it even if you didn't change anything.

    +
    + +

    Up

    + + + + + + + + + + +
    +

    Q + 2.2

    +
    +

    What is the purpose of the "Comment" line + in the tic area setup?

    +
    +

    A 2.2

    +
    +

    The downlinks will see this when receiving FileMgr + replies. It is meant only as a description for the filearea.

    +
    + +

    Up

    + + + + + + + + + + +
    +

    Q + 2.3

    +
    +

    How do I poll a node?

    +
    +

    A 2.3

    +
    +

    mbout poll f2802.n280.z2

    +
    + +

    Up

    + + + + + + + + + + +
    +

    Q + 2.4

    +
    +

    I created a filerequest but mbcico doesn't call out. +

    +
    +

    A 2.4

    +
    +

    You need to add a poll for that node to do the call. +

    +
    + +

    Up

    + + + + + + + + + + +
    +

    Q + 2.5

    +
    +

    Does MBSE support fidonet via ftp transfers?

    +
    +

    A 2.5

    +
    +

    Yes, but only the passive side. Refer to 3.2.

    +
    + +

    Up

    + + + + + + + + + + +
    +

    Q + 2.6

    +
    +

    The tosser and mbmsg programs are slow, why?

    +
    +

    A 2.6

    +
    +

    Tossing mail and linking message areas are + background tasks. When mbse was first developed the hardware was not fast + enough to run these programs at full speed. The mailer could give CRC errors + and the bbs seemed to stop now and then. To overcome this problem all + programs started with the -quiet switch (background jobs) are stopping for + short periods so that they would use less system resources. Systems with SCSI + disks or other fast and well designed machines don't have a need for that + slowdown. In mbsetup menu 1.5.17 is the setting for the speed of all utility + programs, the default is slow. You might try this set to fast and see what + happens on your system.

    +
    + +

    Up

    + + + + + + + + + + +
    +

    Q + 2.7

    +
    +

    How can I use an external netmail tracker with MBSE?

    +
    +

    A 2.7

    +
    +

    If the netmail tracker can work on .pkt files you + could try to install it into mbfido. It can call a external program to + process incoming .pkt files before mbfido does something with it. That option + was built a few years ago for extra Y2K checks. (The pktdate program of Tobias Ernest). +

    +
    + +

    Up

    + + + + + + + + + + +
    +

    Q + 2.8

    +
    +

    I am having problems with dates when unarchiving + .arc files.

    +
    +

    A 2.8

    +
    +

    If you are experiencing a problem with the dates on + arc files showing as January 1970 or similar when extracted using Arc v5.31 + for linux then obtain "nomarch". MBSE will detect nomarch during + configuration/install and set your archiver.data file accordingly. Nomarch + extracts .arc files and keeps the original file date.

    +
    + +

    Up

    + +
    + +
    + +
    + +

    3. Internet setup.

    + + + + + + + + + + +
    +

    Q + 3.1

    +
    +

    Posting newsmessages to the newsserver fails.

    +
    +

    A 3.1

    +
    +

    Check if you need the "mode reader" + command for the newsserver. Set this flag in mbsetup 1.15.5

    +
    + +

    Up

    + + + + + + + + + + +
    +

    Q + 3.2

    +
    +

    How do I configure MBSE for my ftp filenet feeds?

    +
    +

    A 3.2

    +
    +

    Follow the next steps to setup your system for FTP + clients.

    +
      +
    1. As root, add a new + group to your system: groupadd bbsftp .
    2. +
    3. Make sure there is a + directory /opt/mbse/var/bbsftp. This directory should be owned by mbse, + group bbs and have mode 0775.
    4. +
    5. Add an invalid shell + to /etc/shells, /usr/bin/false is good.
    6. +
    7. Install an FTP server, + the examples here are for ProFTPD.
    8. +
    9. In /etc/proftpd.conf + make sure there are the following lines:
    - Back - Go Back -
    -

    1. Installation. -

    - - - - - - - - - - - -
    Q 1.1 - Why do I have to install MBSE in the /opt directory?
    A 1.1 The /opt is for extra applications, when mbse is installed there - it is easier to upgrade the OS. If you insist on installing in /usr/local - the choose /usr/local/mbse.
    - Up - -

    - - - - - - - - - - - -
    Q 1.2 - What other operating systems will MBSE run on?
    A 1.2 Currently only on most Linux distributions, FreeBSD and NetBSD. - The author, Michiel Broek, has made a valiant effort ensuring that -MBSE will recognize and install on the major distributions of Linux. -
    - Up - -

    -

    - - - - - - - - - - - -
    Q 1.3 - Will MBSE BBS ever be ported to DOS/Windows or OS/2?
    A 1.3 No.
    - Up - -

    -

    - - - - - - - - - - - -
    Q 1.4 - What does the guest switch in BBS user setup mean?
    A 1.4 Nothing yet.
    - Up - -

    -

    - - - - - - - - - - - -
    Q 1.5 - How do I monitor as the things happen?
    A 1.5 tail -f /opt/mbse/log/system.log or start mbmon.
    - Up - -

    -

    - - - - - - - - - - - -
    Q 1.6 - How to start mbsebbs from inetd?
    A 1.6 This is described in the documentation of the - mblogin - program.
    - Up - -

    -

    - - - - - - - - - - - -
    Q 1.7 - I just installed mbse, now I get a Socket send failed error -2.
    A 1.7 With a normal system boot the mbtask daemon will be started - by one of the systems init scripts. If you just installed mbse you need - to do this for the first time manually. As user mbse issue the -following commands: - -
    mbtask
    mbstat open

    - This will start the daemon, the daemon creates the default -databases. Then you can use mbsetup to configure your new system. -
    - Up - -

    -
    -

    2. Fidonet setup. -

    - - - - - - - - - - - -
    Q 2.1 - The nodelist compiler crashes, why?
    A 2.1 Note: From previous experience, it is vital that you follow -the docs closely. Also, ensure that you have a copy of a valid nodelist - and nodediff file. I have ran into problems where either the noddiffs - don't match the nodelist, the crc checks fail, or I have files from -two different zones. I have even had to back up several months before - finding a valid noddiff that would match the nodelist.
    - Make sure the domain translations do exist, with mbsetup enter - menu 17 and save it even if you didn't change anything.
    - Up - -

    - - - - - - - - - - - -
    Q 2.2 - What is the purpose of the "Comment" line in the tic area setup? -
    A 2.2 The downlinks will see this when receiving FileMgr replies. -It is meant only as a description for the filearea.
    - Up - -

    -

    - - - - - - - - - - - -
    Q 2.3 - How do I poll a node?
    A 2.3 mbout poll f2802.n280.z2
    - Up - -

    -

    - - - - - - - - - - - -
    Q 2.4 - I created a filerequest but mbcico doesn't call out.
    A 2.4 You need to add a poll for that node to do the call.
    - Up - -

    -

    - - - - - - - - - - - -
    Q 2.5 - Does MBSE support fidonet via ftp transfers?
    A 2.5 Yes, but only the passive side. Refer to 3.2. -
    - Up - -

    -

    - - - - - - - - - - - -
    Q 2.6 - The tosser and mbmsg programs are slow, why?
    A 2.6 Tossing mail and linking message areas are background tasks. - When mbse was first developed the hardware was not fast enough to run - these programs at full speed. The mailer could give CRC errors and the - bbs seemed to stop now and then. To overcome this problem all programs - started with the -quiet switch (background jobs) are stopping for short - periods so that they would use less system resources. Systems with SCSI - disks or other fast and well designed machines don't have a need for that - slowdown. In mbsetup menu 1.5.17 is the setting for the speed of all utility - programs, the default is slow. You might try this set to fast and see what - happens on your system.
    - Up - -

    -

    - - - - - - - - - - - -
    Q 2.7 - How can I use an external netmail tracker with MBSE?
    A 2.7If the netmail tracker can work on .pkt files you could try to - install it into mbfido. It can call a external program to process incoming - .pkt files before mbfido does something with it. That option was built a - few years ago for extra Y2K checks. (The pktdate program of Tobias Ernest). -
    - Up - -

    -

    - - - - - - - - - - - -
    Q 2.8 - I am having problems with dates when unarchiving .arc files.
    A 2.8If you are experiencing a problem with the dates on arc files - showing as January 1970 or similar when extracted using Arc v5.31 for linux - then obtain "nomarch". MBSE will detect nomarch during configuration/install - and set your archiver.data file accordingly. Nomarch extracts .arc files -and keeps the original file date.
    - Up - -

    -
    -

    3. Internet setup. -

    - - - - - - - - - - - -
    Q 3.1 - Posting newsmessages to the newsserver fails.
    A 3.1 Check if you need the "mode reader" command for the newsserver. - Set this flag in mbsetup 1.15.5
    - Up - -

    - - - - - - - - - - - -
    Q 3.2 - How do I configure MBSE for my ftp filenet feeds?
    A 3.2 Follow the next steps to setup your system for FTP clients. - - -
      -
    1. As root, add a new group to your system: groupadd bbsftp - .
    2. -
    3. Make sure there is a directory /opt/mbse/var/bbsftp. This directory - should be owned by mbse, group bbs and have mode 0775.
    4. -
    5. Add an invalid shell to /etc/shells, /usr/bin/false is good. -
    6. -
    7. Install an FTP server, the examples here are for ProFTPD. -
    8. -
    9. In /etc/proftpd.conf make sure there are the following lines: - - - -
      # Anonymous ftp and members of group bbsftp have a chroot environment.
      DefaultRoot ~ bbsftp
      - This will make sure that users who are member of the bbsftp - group have a chrooted directory structure for their ftp directories. - Also make sure the line Umask 022 is changed to Umask 002.
    10. -
    11. Add a username for the node you whish to give an FTP feed. -Use the following as root: - - -
      useradd -g bbs -G bbsftp -d /opt/mbse/var/bbsftp/username 
      -s /usr/bin/false -c "FTP Account for username" -m username
      - Note: this is one line! There will now be a user added and - have a home directory of /opt/mbse/var/bbsftp/username. Make sure -that directory has permission 0775 or 0770. Create in the username -directory two other directories, inbound and outbound. They must -be owned by the user and be a member of group bbs and have mode 0775. -The modes 077x are needed because the user and mbse must be able to -read and write to these directories.
    12. -
    13. Try to login with ftp from some other system with the choosen - username and his password and check the changes until now. You should - not be able to escape from the directories of this user and you should - be able to upload files, download and delete files. Check also if you - uploaded a file if user mbse can delete that file and also put a file - in the users ftp directory as user mbse, and check that you can download - and delete is as ftp user.
    14. -
    15. Make sure for the node you want to change there is no mail - left in the outbound. Now start mbsetup, menu 7, open the setup -of the node that will use ftp. In screen 3, items 7 and 8, set these -to Directory. Now enter screen 8, here you will setup the directory -session. - - -
      -       7.8  EDIT NODE DIRECTORY SESSION
      -
      -            Outbound settings
      -       1.   Files path      /opt/mbse/var/bbsftp/username/outbound
      -       2.   Check for lock  Yes               3.   Wait clear lock Yes
      -       4.   Check lockfile  /opt/mbse/var/bbsftp/username/lock.bsy
      -       5.   Create lock     Yes
      -       6.   Create lockfile /opt/mbse/var/bbsftp/username/lock.bsy
      -       
      -            Inbound settings
      -       7.   Files path      /opt/mbse/var/bbsftp/username/inbound
      -       8.   Check for lock  Yes               9.   Wait clear lock Yes
      -       10.  Check lockfile  /opt/mbse/var/bbsftp/username/lock.bsy
      -       11.  Create lock     Yes
      -       12.  Create lockfile /opt/mbse/var/bbsftp/username/lock.bsy
      -
      - Save this and you are ready.
    16. -
    17. A final note, since this user is in group bbs and not in the - bbs userdatabase he can never telnet to your system with this account - and get a shell. The user doesn't even have a valid shell.
    18. -
    -
    - Up - -

    -

    - - - - - - - - - - - -
    Q 3.3 - Polling a internet node fails.
    A 3.3 There are several reasons why mbcico refuses to call an internet - node, most problems are nodelist related. A internet node with binkp - protocol should be listed with the flags CM,IBN before mbcico will - make a call. Also, in the nodelist system name field there should -be the hosts full qualified domainname so that mbcico can get that -node's IP address. If one of these items are missing, the node will -not be called. To correct this problem there are two options, make -sure the node is listed with a dns name and proper flags in the nodelist. -The second option is to add a setup record for that node and fill in -the nodelist override fields. You can find these in menu 7.3, item -5 can be filled with the nodelist flags, ie. CM,IBN and item 6 can -be used to give that node's fdn or IP address. - -

    If the call still fails there are several things that must be - right before mbcico makes any internet call. In mbmon, screen 2 (SERVER -STATS) there are flags that indicate if the system is running, internet -is available and the bbs is open. If one of these is No, then no call will -be made. (For POTS the Internet flag does not matter of course).

    -

    In mbsetup, screen 18 (taskmanager), you need to set the maximum - TCP sessions to allow. This is inbound and outbound together. So if you set - this to 3 and 3 or more systems are already calling in via internet, your - system will not call anymore until the amount of TCP sessions drops below - 3.

    -

    If you set this to high on an average cable/adsl connection, - you can get into trouble because you use up all upstream bandwidth. (We have - seen a lot of errors at a busy when the upstream speed was 64K and downspeed - 512K and about 4 sessions together). A good rule seems 1 TCP session for -each 32K bandwidth.

    -

    Then turn in that same screen debug on. After a minute mbtask - rereads his configuration.

    -

    Make a poll with mbout poll .

    -

    Watch the mbtask logfile and see what it does for that node. It -should be added to the calllist. If not, it might be still a nodelist problem. -

    -
    - Up - -

    -

    - - - - - - - - - - - -
    Q 3.4 - Dialup script examples for MBSE
    A 3.4 Dialup Script using mclient: - -
    #!/bin/sh
    -#
    -# $Id$
    -#
    -# Dialup script for MBSE BBS.
    -#
    -#============================================================================
    -# Copyright (C) 1997-2002
    -#   
    -# Michiel Broek                FIDO:           2:280/2802
    -# Beekmansbos 10
    -# 1971 BV IJmuiden
    -# the Netherlands
    -#
    -# This file is part of MBSE BBS.
    -#
    -# This BBS is free software; you can redistribute it and/or modify it
    -# under the terms of the GNU General Public License as published by the
    -# Free Software Foundation; either version 2, or (at your option) any
    -# later version.
    -#
    -# MBSE BBS is distributed in the hope that it will be useful, but
    -# WITHOUT ANY WARRANTY; without even the implied warranty of
    -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
    -# General Public License for more details.
    -# 
    -# You should have received a copy of the GNU General Public License
    -# along with MBSE BBS; see the file COPYING.  If not, write to the Free
    -# Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
    -#============================================================================
    -#
    -#
    -# Enter commands to make the dialup connection and to hangup the connection.
    -#
    -DIALCMD="mclient -d -c DDS"
    -HANGUPCMD="mclient -k"
    -#
    -# Log to syslog
    -#
    -LOGGER="logger -p user.notice -t basename $0$$]"
    -
    -if [ -z "$DIALCMD" ]; then
    -    echo "This script is not configured, edit this script to use it."
    -    exit 1
    -fi
    -
    -echo "Dial internet start" | $LOGGER
    -#
    -# Do 3 attempts to connect
    -#
    -connect=0; try=0;
    -while let 'connect == 0'
    -do
    -    # Count connect attepts
    -    #
    -    let try=try+1
    -    if [ $try == 4 ]; then
    -        echo "No internet connection, giving up" | $LOGGER
    -        $HANGUPCMD >>/dev/null
    -        exit 1
    -    fi
    -
    -    echo "Call attempt $try"    | $LOGGER
    -    $DIALCMD >>/dev/null
    -    i=60;
    -    while let 'i > 0' && let 'connect == 0'
    -    do
    -        if [ -f $MBSE_ROOT/sema/is_inet ]; then
    -            connect=1
    -            echo "mbtask detected internet"     | $LOGGER
    -        fi
    -        let i=i-1
    -        sleep 1
    -    done
    -    #
    -    # Check if we have a connection
    -    #
    -    if [ ! -f $MBSE_ROOT/sema/is_inet ]; then
    -        echo "Failed, 10 seconds pause ..."     | $LOGGER
    -        sleep 10
    -    fi
    -done
    -
    -#
    -# Here we have a connection, now make all needed polls
    -#
    -$MBSE_ROOT/bin/mbout poll f5003.n280.z2 f19.n280.z2 -quiet
    -
    -#
    -# Now we wait until the do_inet semafore appears, we
    -# timeout at 25 seconds, must be enough.
    -#
    -i=25;
    -while let 'i > 0'
    -do
    -    if [ -f $MBSE_ROOT/sema/do_inet ]; then
    -        i=0;
    -    else
    -        let i=i-1;
    -        sleep 1
    -        echo "wait do_inet $i"
    -    fi
    -done
    -
    -#
    -# Now test until the do_inet semafore is gone.
    -# Timeout is one hour.
    -#
    -i=3600;
    -while let 'i > 0'
    -do
    -    if [ ! -f $MBSE_ROOT/sema/do_inet ]; then
    -        i=0;
    -    else
    -        let i=i-1;
    -        sleep 1
    -        echo "wait ready $i"
    -    fi
    -done
    -
    -echo "Internet sessions done, hangup"   | $LOGGER
    -$HANGUPCMD >>/dev/null
    -echo "Script ready"                     | $LOGGER
    -exit 0
    -
    -==============================================
    -
    -
    -
    - Dialup Script using diald: - -
    =================================================
    -#!/bin/sh
    -
    -PATH=/opt/mbse:/opt/mbse/bin:/usr/bin:/usr/local/bin:/bin:/usr/sbin:/usr/local
    -/ sbin:$PATH
    -cd /opt/mbse
    -if [ -f /opt/mbse/tmp/ip.up ] ; then
    -        exit
    -fi
    -echo "up" > /var/run/diald.ctl
    -sleep 15
    -
    -ping -c 10 -w 10 mail.iol.ie
    -if [ -e /var/run/ppp0.pid ]  ; then
    -        touch /opt/mbse/tmp/ip.up
    -   cd /opt/mbse
    -   echo "Fetching News"
    -   /opt/mbse/fetchnews
    -   echo "Synching clock"
    -   telnet 192.168.0.2 9049
    -   bin/mbfido news
    -   echo "Fetching Mail"
    -   /usr/bin/fetchmail -f /opt/mbse/.fetchmailrc
    -   bin/soup
    -        if [ ! 'cat /opt/mbse/irex/s/rexbusy.0 | xargs ps --no-header' ] ;
    -        then
    -                rm /etc/ftn/irex/s/rexbusy.0
    -        fi
    -
    -   ./rexl
    -   fetchmail -f /opt/mbse/.fetchmailrc
    -   ./rexl -sf m
    -   /opt/mbse/bin/bink
    -
    -  echo down > /var/run/diald.ctl
    -
    -  bin/bres.sh  # >> /dev/null 2>&1
    -fi
    -rm /opt/mbse/tmp/ip.up
    -
    -==================================
    -
    -
    - Up - -

    -
    -

    4. BBS setup. -

    - - - - - - - - - - - -
    Q 4.1 - How to set up MBSE for ISDN.
    A 4.1 Contributed by: J. Beekhuizen, 2:280/1018 - - -

    Of course, you have to configure and build your kernel for ISDN - support and the correct drivers for your card. It is beyond the scope - of this document to explain how to do that.

    -

    To your /etc/inittab file add the following lines for your ISDN - devices ttyI0 and ttyI1.

    -
    # ISDN lines
    I1:23:respawn:/usr/local/sbin/mgetty -x 4 -i /opt/mbse/etc/issue ttyI0
    I2:23:respawn:/usr/local/sbin/mgetty -x 4 -i /opt/mbse/etc/issue ttyI1

    - To your mgetty.config file [/usr/local/etc/mgetty_sendfax/mgetty.config - on my system] set up the ttyI0 and ttyI1 ports. With AT&E you set - the MSN/EAZ the device should listen to. This should for an MSN be your - telephone number with the area code but without the leading - 0. For an EAZ the last digit of your EAZ. - - -

    The ISDN ports

    -
    port ttyI0
    modem-type data
    init-chat "" ATZ OK
    AT&E714015437&W0 OK
    AT&B512 OK

    port ttyI1
    modem-type data
    init-chat "" ATZ OK
    AT&E714017198&W0 OK
    AT&B512 OK
    - From the mbsetup menu #5 "Edit Modem types" configure the ISDN - modem type. - -
    Modem type   ISDN Linux
    Init string ATZ\r
    Init string
    Init string
    OK string OK
    Hangup \d\p\p\p+++\d\p\p\pATH0\r
    Info command ATI2\r
    Dial command ATD\T\r
    Connect CONNECT 64000
    Connect CONNECT
    [...]
    Reset cmd ATZ\r
    Error string BUSY
    Error string NO CARRIER
    Error string NO DIALTONE
    Error string NO ANSWER
    Error string RING\r
    Error string ERROR
    Error string
    Error string
    Error string
    Error string
    Cost offset 0
    EMSI speed 28800 ! not relevant for ISDN
    Strip dashes No
    Available Yes

    - And from #6 "Edit TTY lines info" the ISDN lines - - -
    TTY name     ISDN Line 1
    Device name ttyI0
    Phone or DNS 31-71-4015437
    Line speed 64 kbits
    Fido flags CM,XA,MO,X75
    Equipment ISDN
    Available Yes
    Auth. log No
    Honor ZMH Yes
    Callout Yes
    Modem type ISDN Linux
    Locked speed 0 ! not relevant for ISDN
    EMSI name The Wizard's ISDN line 1

    TTY name ISDN Line 2
    Device name ttyI1
    Phone or DNS 31-71-4017198
    Line speed 64 kbits
    Fido flags CM,XA,MO,X75
    Equipment ISDN
    Available Yes
    Auth. log No
    Honor ZMH Yes
    Callout Yes
    Modem type ISDN Linux
    Locked speed 0
    EMSI name The Wizard's ISDN line 2

    - T-t-that's all folks :))
    - Up - -

    - - - - - - - - - - - -
    Q 4.2 - How do I use GoldED together with MBSE?
    A 4.2 Since MBSE BBS version 0.33.12 GoldED and MBSE BBS can be used - together without problems as long as you use it to read the sysop mail. - The mbsetup program can export a file called /opt/mbse/etc/golded.inc - which will contain your main Aka's, Aka matching, sysop name and all your - mail areas. This file is only (re)created if you change the global settings - or one of the mail areas. The first time you must force this by making - a change somewhere. - -

    Now create /opt/mbse/etc/golded.cfg, here is what I wrote:

    -
    ; GoldED.cfg
    ;
    ; Internet Addressing
    ;
    INTERNETADDRESS Michiel_Broek@f2802.n280.z2.fidonet.org
    INTERNETGATE UUCP 2:292/875
    ;
    ;
    OUTBOUNDPATH /opt/mbse/var/bso/outbound
    REPLYLINK chain
    STYLECODES yes
    ;
    ;
    ; MESSAGE READER
    ;
    DISPMSGSIZE KBYTES
    DISPATTACHSIZE KBYTES
    DISPLOCALHIGH YES
    DISPPAGEBAR YES
    VIEWHIDDEN YES
    VIEWKLUDGE NO
    VIEWQUOTE YES
    ;
    INCLUDE /opt/mbse/etc/golded.inc
    ;
    ; The end.

    - Put in /opt/mbse/.profile the following line: export GOLDED=$HOME/etc - - -

    When you now start GoldED you use it as the sysop. Make sure that -the sysop's userrecord is the first user in the MBSE BBS userbase. If not, -the lastread pointers are not right. The GoldED nodelist compiler can be -added to the setup in menu 18.

    -
    - Up - -

    -

    - - - - - - - - - - - -
    Q 4.3 - How do I use MsgEd together with MBSE?
    A 4.3Since MBSE BBS version 0.35.05 MsgEd and MBSE BBS can be used - together without problems as long as you use it to read the sysop - mail. The mbsetup program can export a file called /opt/mbse/etc/msg.txt - which will contain your mail areas setup. This file is only - (re)created if you change the global settings or one of the mail -areas. The first time you must force this by making a change somewhere. -
    - Up - -

    -
    -

    5. Doors setup. -

    - - - - - - - - - - - -
    Q 5.1 - How do I run DOS doors under MBSE BBS?
    A 5.1 -
    Written by: Redy Rodriguez, sysop of Parolas BBS 2:348/609
    Fidonet: Redy rodriguez 2:348/609
    Email: redy@users.sourceforge.net
    Redy_Rodriguez@f609.n348.z2.fidospain.org
    -

    NO WARANTEE

    -

    The information gathered here, works for the indicated intention. - It is proven and working in PAROLAS BBS, however, I do not guarantee - that it works correctly in all the cases. The author is not responsible - for the damage this can cause. If you follow the instructions, and you - get not the expected result, or as a result of it you get undesired results, - you loose data or destroy your system, you you will be the only person - in charge.

    -

    INTRODUCTION

    -

    This document describes how I have been able to execute MS/DOS - doors in MBSEBBS. Probably it is not the best way to do it, but this - is the one that works for me. If somebody finds one more more effective, - or simpler or safer a solution, the I like to hear this solution.

    -

    WHAT IS NEEDED?

    -

    MBSEBBS is correctly compiled and working, in my case I have the -version 0.33.19, that is at the moment the most recent and stable, I suppose -that this method can be valid for newer versions. DOSEMU 1.0.2 I have tried -previous versions, but these do not work correctly with virtual ports. You -can download dosemu.1.02.tgz from www.dosemu.org - , you may also need to download the freedos archive dosemu-freedos-bin-1.02.tgz. - A partition with MS/DOS, I have on my disc a partition with installed - MS/DOS, and that is the one that I use, but I'm sure that many doors - could work correctly with the freedos. You also need sudo. Sudo - is a utility that let's ordinary users execute certain programs as superuser, - this is available with almost all Linux distributions.

    -

    COMPILING DOSEMU

    -

    Unpack dosemu in some directory, for example /usr/src, then changed - into that directory and execute 'make'. When this is ready we have -dosemu compiled. If we already had a previous version of dosemu it is -advisable to uninstall it before continuing. Copy dosemu-freedos-bin-1.02.tgz -to the toplevel directory of the dosemu source and execute:

    -
    ./install_systemwide -fd dosemu-freedos-bin-1.02.tgz

    - In the directory etc, within the directory where we have decompressed - the source code of dosemu we have configuration examples. Create the - directory /var/lib/dosemu if it does not exist the directory, and copy - global.conf to that directory. Also copy dosemu.conf to directory /etc - and copy dosemu.users.secure as dosemu.users to /etc. - - -

    CONFIGURE THE DOS PARTITION

    -

    Now we must configure the dos partition, in my case this exists - as a mounted dos partition in /dos/c. If this is not the case then you - could work with an image of freedos. I have created in my dos partition - a directory c:\doors where I install all doors that I want to use, and - a file called c:\doors.bat with the following contents:

    -
    @echo off
    c:
    cd \doors
    if exist %1.bat call %1 %2 %3 %4 %5 %6 %7 %8 %9
    c:\dosemu\exitemu

    - Change to the directory /var/lib/dosemu and create directory - called for example 'c': - - -
    mkdir c. 

    - A link to the mounted partition could be made but I prefer -to create a new directory and in that directory make links to dos program - which are only of interest for us. Many programs and directories of the - dos partition are not needed in dosemu and to run doors. Change to the - created directory and make links to everything what we have in our dos - partition (we will erase soon what we do not need). Autoexec.bat and -config.sys must copied instead of making links so we can modify them, because -surely we will want that they are different in dosemu, then in real dos. - - -
    cd c
    ln -s /dos/c/* .
    rm autoexec.bat
    rm config.sys
    cp /dos/c/autoexec.bat config.sys .

    - Create a directory dosemu and copy the typical utilities of -dosemu. - -
    mkdir dosemu 
    cp /usr/src/dosemu-1.02/1.0.2.0/commands/* dosemu

    - Now we modify the copy of config.sys and autoexec.bat to erase - everything what is not necessary to execute our games as doors, like - drivers for cdrom, mouse etc... We will clear the keyboard driver 'KEYB - XX' and make sure that in the path in autoexec.bat to include the directory - c:\dosemu. Also load the fossil emulator, for example add these two lines: - - -
    path %PATH%:c:\dosemu
    c:\dosemu\fossil

    - If there is another fossil, such as bnu or x00 in config.sys - or autoexec.bat we clear all references to these, we will load them -if that is necessary in the file that it executes the door when needed, - this can be necessary for some doors and for other not. Now we can erase - all the links to the directories who are not necessary, and that we do - not want that they are visible. - - -

    Then edit the file /etc/dosemu.conf and look for the line that - begins with "$_hdimage =" and change that to:

    -
    $_hdimage = "c" 

    - Now login as root and you should be able to execute our dos -emulator by executing '/usr/bin/dosemu.bin' - - -

    (to leave dosemu type in exitemu)

    -

    CONFIGURING SUDO

    -

    Normally the dos partition is not accessible to the users of the -BBS, except from within dosemu, and to be able to have access without activating -the setuid bit of dosemu, we use sudo so that any user of the BBS can execute -dosemu.bin as root. As root execute visudo to edit the configuration file -of sudo add the lines:

    -
    %bbs    ALL=NOPASSWD:/opt/mbse/bin/bbsdoor.sh
    %bbs ALL=NOPASSWD:/opt/dosemu/bin/dosemu.bin

    - The first command is a script that takes care of copying the - file door.sys to the dos partition, the second line is to allow to -execute dosemu.bin. Any user of group BBS can execute these commandos -like root without password is asked. - - -

    In order to test that this works login as user mbse and execute: -

    -
     sudo dosemu.bin 
    -

    INSTALLING A DOOR

    -

    First we need a pair of scripts. These scripts are installed when -you did install MBSE. These scripts are needed to execute the doors and are -installed in /opt/mbse/bin:

    -
    --- rundoor.sh ---

    #!/bin/bash
    #
    # rundoor.sh - Never
    call this script directly, create a symlink
    # to this
    file with the name of the door. For example
    # tu run the
    door ilord do:
    # cd /opt/mbse/bin
    # ln
    -s rundoor.sh ilord
    #
    # by Redy Rodriguez and Michiel
    Broek.
    #
    DOOR=`basename $0`
    COMMANDO="\" doors $DOOR $*\r\""

    /usr/bin/sudo /opt/mbse/bin/bbsdoor.sh $DOOR $1
    /usr/bin/sudo /opt/dosemu/bin/dosemu.bin \
    -F /var/lib/dosemu/global.conf \
    -I "`echo -e serial { com 1 virtual }"\n" keystroke $COMMANDO`"
    reset
    tput reset
    stty sane



    --- bbsdoor.sh ---
    #
    # Initialize DOS environment before starting a bbs door.
    # Parameters: $1 = name of the door
    # $2 = the nodenumber for this session
    #
    # by Redy Rodriguez, 22-Oct-2001

    if [ "$1" != "" ]; then
    if [ "$2" != "" ]; then
    mkdir -p /dos/c/doors/node$2 >/dev/null 2>&1
    # Copy door.sys to dos partition
    cat ~/door.sys >/dos/c/doors/node$2/door.sys
    # Create .dosemu/disclaimer in user home to avoid warning
    if [ ! -d $HOME/.dosemu ]; then
    mkdir $HOME/.dosemu
    fi
    if [ ! -f $HOME/.dosemu/disclaimer ]; then
    touch $HOME/.dosemu/disclaimer
    fi
    fi
    fi

    - The script rundoor.sh is never called directly, simply create - a link with the name of the door to this file, this name must be the -same as the one of the .bat file that starts the door in the doors directory - of the dos partition. Let me explain this with an example: - - -

    I have chosen the door Virtual Sysop, but it could be any other - door. My experience says to me that not all doors work correctly with - a serial port in virtual mode. This one is working at Parolas BBS.

    -

    Unpack Virtual Sysop in the dos partition, in the directory c:\doors\vsysop. - Execute as user mbse 'sudo dosemu.bin' and make sure that the door -works in local mode (these commands are for this door):

    -
    cd doors
    cd vsysop
    vsysop -local

    - If everything is correct then create the file c:\doors\vsysop.bat - with the following contents: - - -
    --- vsysop.bat ---
    @echo off
    C:\COMUNIC\X00\X00 E B,0,57600
    cd vsysop
    vsysop -D c:\doors\node%1\door.sys -BBSNAME PAROLAS
    deltree /y c:\doors\node%1
    C:\COMUNIC\X00\X00
    cd ..

    - Before passing the control to dosemu, the file door.sys will - be copied to c:\doors\node???? where the ???? is the node number from - which the door is invoked (to allow that several users can execute the - door at the same time). This nodenumber also is passed as the first parameters - to the .bat file, this is to indicate to which directory to copy the door.sys - file. - -

    The Virtual Sysop door supports door.sys and that is the only - dropfile that is generated by mbsebbs and that is supported by most -of the doors. If you need another format you must use a converter to change - the format of the dropfile.

    -

    I use the fossil X00, I have it installed in C:\COMUNIC\X00 and - this door works for me correctly with these parameters, it is alos possible - that it works without X00 or that you can load another fossil. -

    -

    Now create a link to rundoor.sh in /opt/mbse/bin called vsysop. - The name must be the same one that the name of the .bat file created - in the dos partition, but without the extension bat.

    -
    ln -s /opt/mbse/bin/rundoor.sh /opt/mbse/bin/vsysop

    - Now we execute mbsetup and enter the menu setup to add an entrance - like this (It puts option 16 to Yes): - - -
     8.3. EDIT MENU ITEM

    1. Sel. key V
    2. Type nr. 7 Run external program in shell
    3. Opt. data /opt/mbse/bin/vsysop /N
    1234567890123456789012345678901234567890123456789012345678901234
    4. Display
    5. Security 0 --------------------------------
    6. Min. age 0
    7. Max. lvl 0
    8. Password <null> 13. No door.sys No
    9. Credit 0 13. Y2K style No
    10. Lo-colors Normal display color 14. Use Comport Yes
    11. Hi-colors Bright display color 15. Run nosuid Yes
    12. Autoexec No 16. No Prompt Yes

    - And that is everything...
    - Up - -

    - - - - - - - - - - - -
    Q 5.2 - Dosemu compile tips
    A 5.2 -
    Written by: Rick Van Ruth, sysop of Vampyre's Heaven BBS 3:640/954
    - Dosemu still exhibits some file locking behaviour and this needs - to be overcome, especially if you are running multinode door games. The - following information was supplied by Bob Newell of Chung Kuo BBS (telnet - chungkuo.org) and I reiterate it here. - - -

    There is an issue in that Linux file locking does not map precisely - to DOS file locking. You need to patch DOSEMU and build a special version - to deal with this problem. Find the file "dosext/mfs/mfs.c" in your - DOSEMU source tree. Locate the following lines:

    -
    case DENY_ANY:
    fl.l_type = F_RDLCK;

    Change the second line to
    fl.l_type = !writing ? F_RDLCK : F_WRLCK;

    - and build a new version of DOSEMU. - - -

    To solve a problem of slow screen painting, locate "base/async/int.c" - in your source tree. Locate

    -
    case 0x2C:

    and just below, comment out or delete the line

    usleep(INT2F_IDLE_USECS);

    - and rebuild your DOSEMU.
    -
    - It is recommended to use both tips above as it will not harm -any dos door games.
    -
    - Up - -

    -

    - - - - - - - - - - - -
    Q 5.3 - Setting up for InterBBS games.
    A 5.3 -
    Written by: Rick Van Ruth, sysop of Vampyre's Heaven BBS 3:640/954
    - There are 2 methods for providing InterBBS setup. If your system - merely connects to one host for your games packets you need only perform - a few simple steps to have it working. If your system is a Host for InterBBS - games you will also need to add a script to separate different packets - for different downlink systems.
    -
    - Common to Both Methods:
    - With most BBS games you will need 2 directories in your dos -filesystem area. One for the inbound packets and one for netmail messages -door games produce to send outbound packets. - - -

    The easiest way to solve this is by creating symlinks from your - MBSE directories into the directory where your dos doors live (c:\doors). - The 2 directories you wish to link are /opt/mbse/var/inbound and /opt/mbse/var/msgs - - link them into your dos directories doors directory with the same -names ie: "inbound" and "msgs". Now according to dosemu you will have -a c:\doors\inbound and a c:\doors\msgs. We do not actually use the "msgs" -directory for anything other than a place to tell games where to write -its netmails to. These "netmails" are subsequently deleted from the system, -but the games need to be able to write them there.

    -

    1. The Easy Way - Single Host System:
    -

    -

    1A.First of all you will realise that door games running under - dosemu usually write files as owner root, chmod 0644. This is not good - for MBSE to transfer these files as it does not have permission to act - on the files. In order to force dosemu to write games files so that MBSE - can act upon them we need to alter /etc/sudoers and change the umask for - root running under sudo. To do this open /etc/sudoers (you must be root - to edit this file) and add the following line at the top of the file before - the specifications:

    -

    Defaults               umask=0000

    -

    This will allow dosemu to write files chmod 0666 (read/write everybody) - and MBSE will be able to manipulate them.
    -

    -

    For my example I will use the InterBBS dos door game called Barren - Realms Elite (BRE for short).

    -

    1B. Install Bre in c:\doors\bre and setup the necessary files - for its execution as a dos door from MBSE as per the dos doors faq. -

    -

    1C. Tell Bre (in its BBS.CFG) that the path for inbound packets - is c:\doors\inbound and the netmail path is c:\doors\msgs Bre will now - automatically process all inbound packets it finds in the inbound directory - for itself. It needs no assistance as it merely searches for the correct - filename in the directory.

    -

    1D. We need to link Bre's outbound path to our host nodes MBSE - mailbox for automatic transfer of games packets. First make sure you - have added an "outbox" for your uplink node in the nodes setup in MBSE - - Section 7, Select Uplink, Menu 1, Section 2 "outbox dir". eg: if your - uplink is 3:640/954 then MBSE will default to creating /opt/mbse/var/boxes/node3_640_954 - as the outbox (I will use this as an example). Note the flavour of your - uplinks node connection will apply to the outbox as well. Thus if that -particular node is set crashmail then anything you put in the outbox will -also be sent crashmail.

    -

    Next go to your Bre game directory. You will notice Bre has an - OUTBOUND directory, this is where it places all its game packets that - are to be sent to the uplink. We need to delete this directory and instead - create a symlink to the node outbox instead. If Bre is in c:\doors\bre - then the symlink command will be:

    -

    ln -s /opt/mbse/var/boxes/node3_640_954 /dos/c/doors/bre/OUTBOUND

    -

    Alter the above depending on where your linux path to your dos - is, also remember linux is case sensitive! Note you can also make as - many synlinks as you like to the nodes outbox, so if you have 2 or 3 -different games you send to that node you can link the outbox to each -games outbound directory. Also if you have different games to different -host nodes just link the game outbound directories to the outboxes of each -node.

    -

    Thats it. The system will now process inbound and outbound packets - automatically. You will however need to delete the netmails in the msgs - directory - I have included this in the Door game maintenance section - further on.

    -

    If you experience problems with your system polling nodes and -sending the game mail packets while a user is online within the game then -you might wish to use the dos "share.exe" so packet files are not being accessed -by both the game and the mailer at the same time. You can load share.exe -within your doors.bat in dos root directory.

    -

    2. The Hard Way - Multiple Host System

    -

    Follow steps 1A, 1B, 1C above, the change occurs for 1D (below).
    -

    -

    1D. We need a script to process the Bre outbound packets and add -them to MBSE's node outboxes path so they are sent. A script on how to do -this follows (with comments ). First remember to create your outboxes for -each node that you transfer games packets to. I will use 3:640/954 as above -and 1:123/456 for this example of 2 systems linked to the one Bre game. -

    -

    This script should be owned by user "mbse" and have the permissions - (chmod 755) -rwxr-xr-x. It is best kept in /opt/mbse/bin with your -dos game executing scripts. I call this script "dos_poll"

    -
    ------------------------------------------------------------------------
    #!/usr/bin/perl -U
    use File::Basename;
    use File::Copy;


    # Define the variables for the outboxes for our links
    $node1 = "/opt/mbse/var/boxes/node3_640_954";
    $node2 = "/opt/mbse/var/boxes/node1_123_456";
    # Define the linux path to Bre's outbound directory
    $bre_path = "/opt/mbse/dos/doors/bre/OUTBOUND";

    opendir(DIR, "$bre_path") || die;
    @dirlist = readdir(DIR);
    closedir(DIR);

    foreach $filename (@dirlist){
    $brefile = "$bre_path/$filename";
    ($filenameOnly, $pathname, $fileExtension) = fileparse($filename, '\..*');

    if($filenameOnly eq "048b0201") {
    move("$brefile","$node1");
    }
    if($filenameOnly eq "048b0203") {
    move("$brefile","$node2");
    }
    }

    # '048b0201' is the packet name Bre creates. You can find out what
    # your packet name is by running BRE PLANETARY and then checking inside
    # the Bre OUTBOUND directory - note no ext on name. You should also check
    # your nodes dat for which is which 048b0201 means from system 2 to system 1
    # so you would be system 2 in the nodes dat and 1 would be 3:640/954
    # 048b0203 is obviously to system 3 in the nodes dat - 1:/123/456 in our
    # example here

    ------------------------------------------------------------------------

    Thats it. You can run this 'dos_poll' script from the maintenance scripts described below.
    -
    - Up - -

    -

    - - - - - - - - - - - -
    Q 5.4 - Door Maintenance.
    A 5.4 -
    Written by: Rick Van Ruth, sysop of Vampyre's Heaven BBS 3:640/954
    - Ok, so you can setup doors, run inbound and outbound for interbbs - games. So how do you do maintenance?
    - Again by scripts. Again I will use BRE as an example. First -I create a maintenance batch file in my C: root directory. I have called - it maint.bat and for the bre game it looks like this: - - -
    cd \doors\bre
    BRE INBOUND
    BRE SCORES
    BRE REQUEST
    BRE PLANETARY
    exitemu

    - if you are familiar with Bre you will know this to be a standard - sort of maintenance except for the "exitemu" at the end. That is there - because we are going to use a script to start dosemu and call the maint.bat - - so afterwards we need it to exit dosemu.
    - Now a maintenance script to be called from your cron or whatever - else you are using to execute events on your system. I call this script - "dos_maint" and it also lives in /opt/mbse/bin
    -
    #!/bin/sh
    #
    COMMANDO="\" maint \r\""

    /usr/bin/sudo dosemu -dumb -E dir > /opt/mbse/log/dos.log -quiet -I "`echo keystroke $COMMANDO`"

    /bin/rm /opt/mbse/var/msgs/*.msg

    #/opt/mbse/bin/dos_poll # Uncomment this line if you are using the Multiple host script
    --------------------------------------------------------------------------------------------------

    - You will notice this script starts dosemu and calls maint.bat, - and then when its finished there it deletes all those games netmails - and if you run the script for multiple hosts for your games it can call - that as well. Please note the second line is all ONE line, it has most - probably wrapped here. - -

    You will notice that the script calls dosemu and not dosemu.bin, - this is because we need to tell dosemu to open a dumb terminal and not - display to a console or screen. By use of the redirection we redirect - the normal console output to a file, here I have used /opt/mbse/log/dos.log - as that is where all of MBSE's other logs reside.

    -

    Once "dos_maint" is run via the cron it will run maintenance on -your dos doors, process inbound/outbound interBBS game packets and have your -outbound packets ready to send. Thats about all there is to do :)

    -

    Note: You can make variants on these scripts for running daily - maintenance or just packet processing at certain times of day. They -are just variations on the information above, but if you have questions, -contact me!
    -

    -

    Have fun!

    -
    - Up - -

    - - - +
    # Anonymous ftp and members of group bbsftp have a chroot environment.
    +DefaultRoot     ~ bbsftp
    +

    This will make sure that users who are member of the + bbsftp group have a chrooted directory structure for their ftp directories. Also + make sure the line Umask 022 is changed to Umask 002.

    +
      +
    1. Add a username for the + node you whish to give an FTP feed. Use the following as root:
    2. +
    +
    useradd -g bbs -G bbsftp -d /opt/mbse/var/bbsftp/username 
    +-s /usr/bin/false -c "FTP Account for username" -m username
    +

    Note: this is one line! There will now be a user + added and have a home directory of /opt/mbse/var/bbsftp/username. Make sure + that directory has permission 0775 or 0770. Create in the username directory + two other directories, inbound and outbound. They must be owned by the user + and be a member of group bbs and have mode 0775. The modes 077x are needed + because the user and mbse must be able to read and write to these + directories.

    +
      +
    1. Try to login with ftp + from some other system with the choosen username and his password and + check the changes until now. You should not be able to escape from the + directories of this user and you should be able to upload files, + download and delete files. Check also if you uploaded a file if user + mbse can delete that file and also put a file in the users ftp directory + as user mbse, and check that you can download and delete is as ftp user. +
    2. +
    3. Make sure for the node + you want to change there is no mail left in the outbound. Now start + mbsetup, menu 7, open the setup of the node that will use ftp. In screen + 3, items 7 and 8, set these to Directory. Now enter screen 8, here you + will setup the directory session.
    4. +
    +
    9.               
    10.                  7.8  EDIT NODE DIRECTORY SESSION
    11.            
    12.                       Outbound settings
    13.                  1.   Files path      /opt/mbse/var/bbsftp/username/outbound
    14.                  2.   Check for lock  Yes               3.   Wait clear lock Yes
    15.                  4.   Check lockfile  /opt/mbse/var/bbsftp/username/lock.bsy
    16.                  5.   Create lock     Yes
    17.                  6.   Create lockfile /opt/mbse/var/bbsftp/username/lock.bsy
    18.                  
    19.                       Inbound settings
    20.                  7.   Files path      /opt/mbse/var/bbsftp/username/inbound
    21.                  8.   Check for lock  Yes               9.   Wait clear lock Yes
    22.                  10.  Check lockfile  /opt/mbse/var/bbsftp/username/lock.bsy
    23.                  11.  Create lock     Yes
    24.                  12.  Create lockfile /opt/mbse/var/bbsftp/username/lock.bsy
    +

    Save this and you are ready.

    +
      +
    1. A final note, since + this user is in group bbs and not in the bbs userdatabase he can never + telnet to your system with this account and get a shell. The user doesn't even have a valid shell.
    2. +
    +
    + +

    Up

    + + + + + + + + + + +
    +

    Q + 3.3

    +
    +

    Polling a + internet node fails.

    +
    +

    A 3.3

    +
    +

    There are several reasons why mbcico refuses to call + an internet node, most problems are nodelist related. A internet node with + binkp protocol should be listed with the flags CM,IBN before mbcico will make + a call. Also, in the nodelist system name field there should be the hosts + full qualified domainname so that mbcico can get that node's IP address. If + one of these items are missing, the node will not be called. To correct this + problem there are two options, make sure the node is listed with a dns name + and proper flags in the nodelist. The second option is to add a setup record + for that node and fill in the nodelist override fields. You can find these in + menu 7.3, item 5 can be filled with the nodelist flags, ie. CM,IBN and item 6 + can be used to give that node's fdn or IP address.

    +

    If the call still fails there are several things that must be right + before mbcico makes any internet call. In mbmon, screen 2 (SERVER STATS) + there are flags that indicate if the system is running, internet is available + and the bbs is open. If one of these is No, then no call will be made. (For + POTS the Internet flag does not matter of course).

    +

    In mbsetup, screen 18 (taskmanager), you need to set the maximum TCP + sessions to allow. This is inbound and outbound together. So if you set this + to 3 and 3 or more systems are already calling in via internet, your system + will not call anymore until the amount of TCP sessions drops below 3.

    +

    If you set this to high on an average cable/adsl connection, you can + get into trouble because you use up all upstream bandwidth. (We have seen a + lot of errors at a busy when the upstream speed was 64K and downspeed 512K + and about 4 sessions together). A good rule seems 1 TCP session for each 32K + bandwidth.

    +

    Then turn in that same screen debug on. After a minute mbtask rereads + his configuration.

    +

    Make a poll with mbout poll .

    +

    Watch the mbtask logfile and see what it does for that node. It should + be added to the calllist. If + not, it might be still a nodelist problem.

    +
    + +

    Up

    + + + + + + + + + + +
    +

    Q + 3.4

    +
    +

    Dialup script examples for MBSE

    +
    +

    A 3.4

    +
    +

    Dialup Script using mclient:

    +
    #!/bin/sh
    #
    # $Id$
    #
    # Dialup script for MBSE BBS.
    #
    #============================================================================
    # Copyright (C) 1997-2002
    #   
    # Michiel Broek                FIDO:           2:280/2802
    # Beekmansbos 10
    # 1971 BV IJmuiden
    # the Netherlands
    #
    # This file is part of MBSE BBS.
    #
    # This BBS is free software; you can redistribute it and/or modify it
    # under the terms of the GNU General Public License as published by the
    # Free Software Foundation; either version 2, or (at your option) any
    # later version.
    #
    # MBSE BBS is distributed in the hope that it will be useful, but
    # WITHOUT ANY WARRANTY; without even the implied warranty of
    # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
    # General Public License for more details.
    # 
    # You should have received a copy of the GNU General Public License
    # along with MBSE BBS; see the file COPYING.  If not, write to the Free
    # Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
    #============================================================================
    #
    #
    # Enter commands to make the dialup connection and to hangup the connection.
    #
    DIALCMD="mclient -d -c DDS"
    HANGUPCMD="mclient -k"
    #
    # Log to syslog
    #
    LOGGER="logger -p user.notice -t basename $0$$]"
     
    if [ -z "$DIALCMD" ]; then
        echo "This script is not configured, edit this script to use it."
        exit 1
    fi
     
    echo "Dial internet start" | $LOGGER
    #
    # Do 3 attempts to connect
    #
    connect=0; try=0;
    while let 'connect == 0'
    do
        # Count connect attepts
        #
        let try=try+1
        if [ $try == 4 ]; then
            echo "No internet connection, giving up" | $LOGGER
            $HANGUPCMD >>/dev/null
            exit 1
        fi
     
        echo "Call attempt $try"    | $LOGGER
        $DIALCMD >>/dev/null
        i=60;
        while let 'i > 0' && let 'connect == 0'
        do
            if [ -f $MBSE_ROOT/sema/is_inet ]; then
                connect=1
                echo "mbtask detected internet"     | $LOGGER
            fi
            let i=i-1
            sleep 1
        done
        #
        # Check if we have a connection
        #
        if [ ! -f $MBSE_ROOT/sema/is_inet ]; then
            echo "Failed, 10 seconds pause ..."     | $LOGGER
            sleep 10
        fi
    done
     
    #
    # Here we have a connection, now make all needed polls
    #
    $MBSE_ROOT/bin/mbout poll f5003.n280.z2 f19.n280.z2 -quiet
     
    #
    # Now we wait until the do_inet semafore appears, we
    # timeout at 25 seconds, must be enough.
    #
    i=25;
    while let 'i > 0'
    do
        if [ -f $MBSE_ROOT/sema/do_inet ]; then
            i=0;
        else
            let i=i-1;
            sleep 1
            echo "wait do_inet $i"
        fi
    done
     
    #
    # Now test until the do_inet semafore is gone.
    # Timeout is one hour.
    #
    i=3600;
    while let 'i > 0'
    do
        if [ ! -f $MBSE_ROOT/sema/do_inet ]; then
            i=0;
        else
            let i=i-1;
            sleep 1
            echo "wait ready $i"
        fi
    done
     
    echo "Internet sessions done, hangup"   | $LOGGER
    $HANGUPCMD >>/dev/null
    echo "Script ready"                     | $LOGGER
    exit 0
     
    ==============================================
     
     
    +

    Dialup Script using diald:

    +
    =================================================
    #!/bin/sh
     
    PATH=/opt/mbse:/opt/mbse/bin:/usr/bin:/usr/local/bin:/bin:/usr/sbin:/usr/local
    / sbin:$PATH
    cd /opt/mbse
    if [ -f /opt/mbse/tmp/ip.up ] ; then
            exit
    fi
    echo "up" > /var/run/diald.ctl
    sleep 15
     
    ping -c 10 -w 10 mail.iol.ie
    if [ -e /var/run/ppp0.pid ]  ; then
            touch /opt/mbse/tmp/ip.up
       cd /opt/mbse
       echo "Fetching News"
       /opt/mbse/fetchnews
       echo "Synching clock"
       telnet 192.168.0.2 9049
       bin/mbfido news
       echo "Fetching Mail"
       /usr/bin/fetchmail -f /opt/mbse/.fetchmailrc
       bin/soup
            if [ ! 'cat /opt/mbse/irex/s/rexbusy.0 | xargs ps --no-header' ] ;
            then
                    rm /etc/ftn/irex/s/rexbusy.0
            fi
     
       ./rexl
       fetchmail -f /opt/mbse/.fetchmailrc
       ./rexl -sf m
       /opt/mbse/bin/bink
     
      echo down > /var/run/diald.ctl
     
      bin/bres.sh  # >> /dev/null 2>&1
    fi
    rm /opt/mbse/tmp/ip.up
     
    ==================================
    + +

    Up

    + +
    + +
    + +
    + +

    4. BBS setup.

    + + + + + + + + + + +
    +

    Q + 4.1

    +
    +

    How to set up MBSE for ISDN.

    +
    +

    A 4.1

    +
    +

    Contributed by: J. Beekhuizen, 2:280/1018

    +

    Of course, you have to configure and build your kernel for ISDN + support and the correct drivers for your card. It is beyond the scope of this + document to explain how to do that.

    +

    To your /etc/inittab file add the following lines for your ISDN + devices ttyI0 and ttyI1.

    +
    # ISDN lines
    +I1:23:respawn:/usr/local/sbin/mgetty -x 4 -i /opt/mbse/etc/issue ttyI0
    +I2:23:respawn:/usr/local/sbin/mgetty -x 4 -i /opt/mbse/etc/issue ttyI1
    +

    To your mgetty.config file + [/usr/local/etc/mgetty_sendfax/mgetty.config on my system] set up the ttyI0 + and ttyI1 ports. With AT&E you set the MSN/EAZ the device should listen + to. This should for an MSN be your telephone number with the area code + but without the leading 0. For an EAZ the last digit of your EAZ.

    +

    The ISDN ports

    +
    port ttyI0
    +modem-type data
    +init-chat "" ATZ OK
    +AT&E714015437&W0 OK
    +AT&B512 OK
    +
    +port ttyI1
    +modem-type data
    +init-chat "" ATZ OK
    +AT&E714017198&W0 OK
    +AT&B512 OK
    +

    From the mbsetup menu #5 "Edit Modem + types" configure the ISDN modem type.

    +
    Modem type   ISDN Linux
    +Init string  ATZ\r
    +Init string
    +Init string
    +OK string    OK
    +Hangup       \d\p\p\p+++\d\p\p\pATH0\r
    +Info command ATI2\r
    +Dial command ATD\T\r
    +Connect      CONNECT 64000
    +Connect      CONNECT
    +[...]
    +Reset cmd    ATZ\r
    +Error string BUSY
    +Error string NO CARRIER
    +Error string NO DIALTONE
    +Error string NO ANSWER
    +Error string RING\r
    +Error string ERROR
    +Error string
    +Error string
    +Error string
    +Error string
    +Cost offset  0
    +EMSI speed   28800                   ! not relevant for ISDN
    +Strip dashes No
    +Available    Yes
    +

    And from #6 "Edit TTY lines info" the ISDN + lines

    +
    TTY name     ISDN Line 1
    +Device name  ttyI0
    +Phone or DNS 31-71-4015437
    +Line speed   64 kbits
    +Fido flags   CM,XA,MO,X75
    +Equipment    ISDN
    +Available    Yes
    +Auth. log    No
    +Honor ZMH    Yes
    +Callout      Yes
    +Modem type   ISDN Linux
    +Locked speed 0                                 ! not relevant for ISDN
    +EMSI name    The Wizard's ISDN line 1
    +
    +TTY name     ISDN Line 2
    +Device name  ttyI1
    +Phone or DNS 31-71-4017198
    +Line speed   64 kbits
    +Fido flags   CM,XA,MO,X75
    +Equipment    ISDN
    +Available    Yes
    +Auth. log    No
    +Honor ZMH    Yes
    +Callout      Yes
    +Modem type   ISDN Linux
    +Locked speed 0
    +EMSI name    The Wizard's ISDN line 2
    +

    T-t-that's all folks :))

    +
    + +

    Up

    + + + + + + + + + + +
    +

    Q + 4.2

    +
    +

    How do I use GoldED together with MBSE?

    +
    +

    A 4.2

    +
    +

    Since MBSE BBS version 0.33.12 GoldED and MBSE BBS + can be used together without problems as long as you use it to read the sysop + mail. The mbsetup program can export a file called /opt/mbse/etc/golded.inc + which will contain your main Aka's, Aka matching, sysop name and all your + mail areas. This file is only (re)created if you change the global settings + or one of the mail areas. The first time you must force this by making a + change somewhere.

    +

    Now create /opt/mbse/etc/golded.cfg, here is what I wrote:

    +
    ; GoldED.cfg
    +;
    +; Internet Addressing
    +;
    +INTERNETADDRESS Michiel_Broek@f2802.n280.z2.fidonet.org
    +INTERNETGATE UUCP 2:292/875
    +;
    +;
    +OUTBOUNDPATH /opt/mbse/var/bso/outbound
    +REPLYLINK chain
    +STYLECODES yes
    +;
    +;
    +; MESSAGE READER
    +;
    +DISPMSGSIZE KBYTES
    +DISPATTACHSIZE KBYTES
    +DISPLOCALHIGH YES
    +DISPPAGEBAR YES
    +VIEWHIDDEN YES
    +VIEWKLUDGE NO
    +VIEWQUOTE YES
    +;
    +INCLUDE /opt/mbse/etc/golded.inc
    +;
    +; The end.
    +

    Put in /opt/mbse/.profile the following line: export + GOLDED=$HOME/etc

    +

    When you now start GoldED you use it as the sysop. Make sure that the + sysop's userrecord is the first user in the MBSE BBS userbase. If not, the + lastread pointers are not right. The GoldED nodelist compiler can be added to + the setup in menu 18.

    +
    + +

    Up

    + + + + + + + + + + +
    +

    Q + 4.3

    +
    +

    How do I use MsgEd together with MBSE?

    +
    +

    A 4.3

    +
    +

    Since MBSE BBS version 0.35.05 MsgEd and MBSE BBS + can be used together without problems as long as you use it to read the sysop + mail. The mbsetup program can export a file called /opt/mbse/etc/msg.txt + which will contain your mail areas setup. This file is only (re)created if + you change the global settings or one of the mail areas. The first time you + must force this by making a change somewhere.

    +
    + +

    Up

    + +
    + +
    + +
    + +

    5. Doors setup.

    + + + + + + + + + + +
    +

    Q + 5.1

    +
    +

    How do I run DOS doors under MBSE BBS?

    +
    +

    A 5.1

    +
    Written by: Redy Rodriguez, sysop of Parolas BBS 2:348/609
    +Fidonet:    Redy rodriguez 2:348/609
    +Email:      redy@users.sourceforge.net
    +            Redy_Rodriguez@f609.n348.z2.fidospain.org
    +

    NO WARANTEE

    +

    The information gathered here, works for the indicated intention. It + is proven and working in PAROLAS BBS, however, I do not guarantee that it + works correctly in all the cases. The author is not responsible for the + damage this can cause. If you follow the instructions, and you get not the + expected result, or as a result of it you get undesired results, you loose + data or destroy your system, you you will be the only person in charge.

    +

    INTRODUCTION

    +

    This document describes how I have been able to execute MS/DOS doors + in MBSEBBS. Probably it is not the best way to do it, but this is the one + that works for me. If somebody finds one more more effective, or simpler or + safer a solution, the I like to hear this solution.

    +

    WHAT IS NEEDED?

    +

    MBSEBBS is correctly compiled and working, in my case I have the + version 0.33.19, that is at the moment the most recent and stable, I suppose + that this method can be valid for newer versions. DOSEMU 1.0.2 I have tried + previous versions, but these do not work correctly with virtual ports. You + can download dosemu.1.02.tgz from www.dosemu.org , you may also need to download + the freedos archive dosemu-freedos-bin-1.02.tgz. A partition with MS/DOS, I + have on my disc a partition with installed MS/DOS, and that is the one that I + use, but I'm sure that many doors could work correctly with the freedos. You + also need sudo. Sudo is a utility that let's ordinary users execute + certain programs as superuser, this is available with almost all Linux + distributions.

    +

    COMPILING DOSEMU

    +

    Unpack dosemu in some directory, for example /usr/src, then changed + into that directory and execute 'make'. When this is ready we have dosemu + compiled. If we already had a previous version of dosemu it is advisable to + uninstall it before continuing. Copy dosemu-freedos-bin-1.02.tgz to the + toplevel directory of the dosemu source and execute:

    +
    ./install_systemwide -fd dosemu-freedos-bin-1.02.tgz
    +

    In the directory etc, within the directory where we + have decompressed the source code of dosemu we have configuration examples. Create + the directory /var/lib/dosemu if it does not exist the directory, and copy + global.conf to that directory. Also copy dosemu.conf to directory /etc and + copy dosemu.users.secure as dosemu.users to /etc.

    +

    CONFIGURE THE DOS PARTITION

    +

    Now we must configure the dos partition, in my case this exists as a + mounted dos partition in /dos/c. If this is not the case then you could work + with an image of freedos. I have created in my dos partition a directory + c:\doors where I install all doors that I want to use, and a file called + c:\doors.bat with the following contents:

    +
    @echo off
    +c:
    +cd \doors
    +if exist %1.bat call %1 %2 %3 %4 %5 %6 %7 %8 %9
    +c:\dosemu\exitemu
    +

    Change to the directory /var/lib/dosemu and create + directory called for example 'c':

    +
    mkdir c. 
    +

    A link to the mounted partition could be made but I + prefer to create a new directory and in that directory make links to dos + program which are only of interest for us. Many programs and directories of + the dos partition are not needed in dosemu and to run doors. Change to the + created directory and make links to everything what we have in our dos + partition (we will erase soon what we do not need). Autoexec.bat and + config.sys must copied instead of making links so we can modify them, because + surely we will want that they are different in dosemu, then in real dos.

    +
    cd c
    +ln -s /dos/c/* .
    +rm autoexec.bat
    +rm config.sys
    +cp /dos/c/autoexec.bat config.sys .
    +

    Create a directory dosemu and copy the typical + utilities of dosemu.

    +
    mkdir dosemu 
    +cp /usr/src/dosemu-1.02/1.0.2.0/commands/* dosemu
    +

    Now we modify the copy of config.sys and + autoexec.bat to erase everything what is not necessary to execute our games + as doors, like drivers for cdrom, mouse etc... We will clear the keyboard + driver 'KEYB XX' and make sure that in the path in autoexec.bat to include + the directory c:\dosemu. Also load the fossil emulator, for example add these + two lines:

    +
    path %PATH%:c:\dosemu
    +c:\dosemu\fossil
    +

    If there is another fossil, such as bnu or x00 in + config.sys or autoexec.bat we clear all references to these, we will load + them if that is necessary in the file that it executes the door when needed, + this can be necessary for some doors and for other not. Now we can erase all + the links to the directories who are not necessary, and that we do not want + that they are visible.

    +

    Then edit the file /etc/dosemu.conf and look for the line that begins + with "$_hdimage =" and change that to:

    +
    $_hdimage = "c" 
    +

    Now login as root and you should be able to execute + our dos emulator by executing '/usr/bin/dosemu.bin'

    +

    (to leave dosemu type in exitemu)

    +

    CONFIGURING SUDO

    +

    Normally the dos partition is not accessible to the users of the BBS, + except from within dosemu, and to be able to have access without activating + the setuid bit of dosemu, we use sudo so that any user of the BBS can execute + dosemu.bin as root. As root execute visudo to edit the configuration file of + sudo add the lines:

    +
    %bbs    ALL=NOPASSWD:/opt/mbse/bin/bbsdoor.sh
    +%bbs    ALL=NOPASSWD:/opt/dosemu/bin/dosemu.bin
    +

    The first command is a script that takes care of + copying the file door.sys to the dos partition, the second line is to allow + to execute dosemu.bin. Any user of group BBS can execute these commandos like + root without password is asked.

    +

    In order to test that this works login as user mbse and execute:

    +
     sudo dosemu.bin 
    +

    INSTALLING A DOOR

    +

    First we need a pair of scripts. These scripts are installed when you + did install MBSE. These scripts are needed to execute the doors and are + installed in /opt/mbse/bin:

    +
    --- rundoor.sh ---
    +
    +#!/bin/bash
    +#
    +# rundoor.sh - Never
    +                     call this script directly, create a symlink
    +#              to this
    +                     file with the name of the door. For example
    +#              tu run the
    +                     door ilord do:
    +#              cd /opt/mbse/bin
    +#              ln
    +                     -s rundoor.sh ilord
    +#
    +# by Redy Rodriguez and Michiel
    +                     Broek.
    +#
    +DOOR=`basename $0`
    +COMMANDO="\" doors $DOOR $*\r\""
    +
    +/usr/bin/sudo /opt/mbse/bin/bbsdoor.sh $DOOR $1
    +/usr/bin/sudo /opt/dosemu/bin/dosemu.bin \
    +        -F /var/lib/dosemu/global.conf \
    +        -I "`echo -e serial { com 1 virtual }"\n" keystroke $COMMANDO`"
    +reset
    +tput reset
    +stty sane
    +
    +
    +
    +--- bbsdoor.sh ---
    +#
    +#  Initialize DOS environment before starting a bbs door.
    +#  Parameters: $1 = name of the door
    +#              $2 = the nodenumber for this session
    +#
    +#  by Redy Rodriguez, 22-Oct-2001
    +
    +if [ "$1" != "" ]; then
    +    if [ "$2" != "" ]; then
    +        mkdir -p /dos/c/doors/node$2 >/dev/null 2>&1
    +        # Copy door.sys to dos partition
    +        cat ~/door.sys >/dos/c/doors/node$2/door.sys
    +        # Create .dosemu/disclaimer in user home to avoid warning
    +        if [ ! -d $HOME/.dosemu ]; then
    +            mkdir $HOME/.dosemu
    +        fi
    +        if [ ! -f $HOME/.dosemu/disclaimer ]; then
    +            touch $HOME/.dosemu/disclaimer
    +        fi
    +    fi
    +fi
    +

    The script rundoor.sh is never called directly, + simply create a link with the name of the door to this file, this name must + be the same as the one of the .bat file that starts the door in the doors + directory of the dos partition. Let me explain this with an example:

    +

    I have chosen the door Virtual Sysop, but it could be any other door. My + experience says to me that not all doors work correctly with a serial port in + virtual mode. This one is working at Parolas BBS.

    +

    Unpack Virtual Sysop in the dos partition, in the directory + c:\doors\vsysop. Execute as user mbse 'sudo dosemu.bin' and make sure that + the door works in local mode (these commands are for this door):

    +
    cd doors
    +cd vsysop
    +vsysop -local
    +

    If everything is correct then create the file + c:\doors\vsysop.bat with the following contents:

    +
    --- vsysop.bat ---
    +@echo off
    +C:\COMUNIC\X00\X00 E B,0,57600
    +cd vsysop
    +vsysop -D c:\doors\node%1\door.sys -BBSNAME PAROLAS
    +deltree /y c:\doors\node%1
    +C:\COMUNIC\X00\X00
    +cd ..
    +

    Before passing the control to dosemu, the file door.sys + will be copied to c:\doors\node???? where the ???? is the node number from + which the door is invoked (to allow that several users can execute the door + at the same time). This nodenumber also is passed as the first parameters to + the .bat file, this is to indicate to which directory to copy the door.sys + file.

    +

    The Virtual Sysop door supports door.sys and that is the only dropfile + that is generated by mbsebbs and that is supported by most of the doors. If + you need another format you must use a converter to change the format of the + dropfile.

    +

    I use the fossil X00, I have it installed in C:\COMUNIC\X00 and this + door works for me correctly with these parameters, it is alos possible that + it works without X00 or that you can load another fossil.

    +

    Now create a link to rundoor.sh in /opt/mbse/bin called vsysop. The + name must be the same one that the name of the .bat file created in the dos + partition, but without the extension bat.

    +
    ln -s /opt/mbse/bin/rundoor.sh /opt/mbse/bin/vsysop
    +

    Now we execute mbsetup and enter the menu setup to + add an entrance like this (It puts option 16 to Yes):

    +
     8.3. EDIT MENU ITEM
    +
    + 1.  Sel. key  V
    + 2.  Type nr.  7         Run external program in shell
    + 3.  Opt. data /opt/mbse/bin/vsysop /N
    +               1234567890123456789012345678901234567890123456789012345678901234
    + 4.  Display
    + 5.  Security  0     --------------------------------
    + 6.  Min. age  0
    + 7.  Max. lvl  0
    + 8.  Password  <null>                    13. No door.sys No
    + 9.  Credit    0                         13. Y2K style   No
    + 10. Lo-colors Normal display color      14. Use Comport Yes
    + 11. Hi-colors Bright display color      15. Run nosuid  Yes
    + 12. Autoexec  No                        16. No Prompt   Yes
    +

    And that is everything...

    +
    + +

    Up

    + + + + + + + + + + +
    +

    Q + 5.2

    +
    +

    Dosemu compile + tips

    +
    +

    A 5.2

    +
    Written by: Rick Van Ruth, sysop of Vampyre's Heaven BBS 3:640/954
    +

    Dosemu still exhibits some file locking behaviour + and this needs to be overcome, especially if you are running multinode door + games. The following information was supplied by Bob Newell of Chung Kuo BBS + (telnet chungkuo.org) and I reiterate it here.

    +

    There is an issue in that Linux file locking does not map precisely to + DOS file locking. You need to patch DOSEMU and build a special version to + deal with this problem. Find the file "dosext/mfs/mfs.c" in your + DOSEMU source tree. Locate the following lines:

    +
    case DENY_ANY:
    +    fl.l_type = F_RDLCK;
    +
    +Change the second line to
    +    fl.l_type = !writing ? F_RDLCK : F_WRLCK;
    +

    and build a new version of DOSEMU.

    +

    To solve a problem of slow screen painting, locate + "base/async/int.c" in your source tree. Locate

    +
    case 0x2C:
    +
    +and just below, comment out or delete the line
    +
    +usleep(INT2F_IDLE_USECS);
    +

    and rebuild your DOSEMU.
    +
    + It is recommended to use both tips above as it will not harm any dos door + games.

    +
    + +

    Up

    + + + + + + + + + + +
    +

    Q + 5.3

    +
    +

    Setting up for InterBBS games.

    +
    +

    A 5.3

    +
    Written by: Rick Van Ruth, sysop of Vampyre's Heaven BBS 3:640/954
    +

    There are 2 methods for providing InterBBS setup. If + your system merely connects to one host for your games packets you need only + perform a few simple steps to have it working. If your system is a Host for + InterBBS games you will also need to add a script to separate different + packets for different downlink systems.
    +
    + Common to Both Methods:
    + With most BBS games you will need 2 directories in your dos filesystem area. One + for the inbound packets and one for netmail messages door games produce to + send outbound packets.

    +

    The easiest way to solve this is by creating symlinks from your MBSE + directories into the directory where your dos doors live (c:\doors). The 2 + directories you wish to link are /opt/mbse/var/inbound and /opt/mbse/var/msgs + - link them into your dos directories doors directory with the same names ie: + "inbound" and "msgs". Now according to dosemu you will + have a c:\doors\inbound and a c:\doors\msgs. We do not actually use the + "msgs" directory for anything other than a place to tell games + where to write its netmails to. These "netmails" are subsequently + deleted from the system, but the games need to be able to write them there.

    +

    1. The Easy Way - Single Host System:

    +

    1A.First of all you will realise that door games running under dosemu + usually write files as owner root, chmod 0644. This is not good for MBSE to + transfer these files as it does not have permission to act on the files. In + order to force dosemu to write games files so that MBSE can act upon them we + need to alter /etc/sudoers and change the umask for root running under sudo. To + do this open /etc/sudoers (you must be root to edit this file) and add the + following line at the top of the file before the specifications:

    +

    Defaults               umask=0000

    +

    This will allow dosemu to write files chmod 0666 (read/write + everybody) and MBSE will be able to manipulate them.

    +

    For my example I will use the InterBBS dos door game called Barren + Realms Elite (BRE for short).

    +

    1B. Install Bre in c:\doors\bre and setup the necessary files for its + execution as a dos door from MBSE as per the dos doors faq.

    +

    1C. Tell Bre (in its BBS.CFG) that the path for inbound packets is + c:\doors\inbound and the netmail path is c:\doors\msgs Bre will now + automatically process all inbound packets it finds in the inbound directory for + itself. It needs no assistance as it merely searches for the correct filename + in the directory.

    +

    1D. We need to link Bre's outbound path to our host nodes MBSE mailbox + for automatic transfer of games packets. First make sure you have added an + "outbox" for your uplink node in the nodes setup in MBSE - Section + 7, Select Uplink, Menu 1, Section 2 "outbox dir". eg: if your + uplink is 3:640/954 then MBSE will default to creating + /opt/mbse/var/boxes/node3_640_954 as the outbox (I will use this as an example). + Note the flavour of your uplinks node connection will apply to the outbox as + well. Thus if that particular node is set crashmail then anything you put in + the outbox will also be sent crashmail.

    +

    Next go to your Bre game directory. You will notice Bre has an OUTBOUND + directory, this is where it places all its game packets that are to be sent + to the uplink. We need to delete this directory and instead create a symlink + to the node outbox instead. If Bre is in c:\doors\bre then the symlink + command will be:

    +

    ln -s /opt/mbse/var/boxes/node3_640_954 /dos/c/doors/bre/OUTBOUND

    +

    Alter the above depending on where your linux path to your dos is, + also remember linux is case sensitive! Note you can also make as many + synlinks as you like to the nodes outbox, so if you have 2 or 3 different + games you send to that node you can link the outbox to each games outbound + directory. Also if you have different games to different host nodes just link + the game outbound directories to the outboxes of each node.

    +

    Thats it. The system will now process inbound and outbound packets + automatically. You will however need to delete the netmails in the msgs + directory - I have included this in the Door game maintenance section further + on.

    +

    If you experience problems with your system polling nodes and sending + the game mail packets while a user is online within the game then you might + wish to use the dos "share.exe" so packet files are not being + accessed by both the game and the mailer at the same time. You can load + share.exe within your doors.bat in dos root directory.

    +

    2. The Hard Way - Multiple Host System

    +

    Follow steps 1A, 1B, 1C above, the change occurs for 1D (below).

    +

    1D. We need a script to process the Bre outbound packets and add them + to MBSE's node outboxes path so they are sent. A script on how to do this + follows (with comments ). First remember to create your outboxes for each + node that you transfer games packets to. I will use 3:640/954 as above and + 1:123/456 for this example of 2 systems linked to the one Bre game.

    +

    This script should be owned by user "mbse" and have the + permissions (chmod 755) -rwxr-xr-x. It is best kept in /opt/mbse/bin with + your dos game executing scripts. I call this script "dos_poll"

    +
    ------------------------------------------------------------------------
    +#!/usr/bin/perl -U
    +use File::Basename;
    +use File::Copy;
    +
    +
    +# Define the variables for the outboxes for our links
    +$node1 = "/opt/mbse/var/boxes/node3_640_954";
    +$node2 = "/opt/mbse/var/boxes/node1_123_456";
    +# Define the linux path to Bre's outbound directory
    +$bre_path = "/opt/mbse/dos/doors/bre/OUTBOUND";
    +
    +  opendir(DIR, "$bre_path") || die;
    +  @dirlist = readdir(DIR);
    +  closedir(DIR);
    +
    +  foreach $filename (@dirlist){
    +         $brefile = "$bre_path/$filename";
    +        ($filenameOnly, $pathname, $fileExtension) = fileparse($filename, '\..*');
    +
    +    if($filenameOnly eq "048b0201") {
    +                move("$brefile","$node1");
    +    }
    +    if($filenameOnly eq "048b0203") {
    +                move("$brefile","$node2");
    +    }
    +  }
    +
    +# '048b0201' is the packet name Bre creates. You can find out what
    +# your packet name is by running BRE PLANETARY and then checking inside
    +# the Bre OUTBOUND directory - note no ext on name. You should also check
    +# your nodes dat for which is which 048b0201 means from system 2 to system 1
    +# so you would be system 2 in the nodes dat and 1 would be 3:640/954
    +# 048b0203 is obviously to system 3 in the nodes dat - 1:/123/456 in our
    +# example here
    +
    +------------------------------------------------------------------------
    +
    +Thats it. You can run this 'dos_poll' script from the maintenance scripts described below.
    + +

    Up

    + + + + + + + + + + +
    +

    Q + 5.4

    +
    +

    Door + Maintenance.

    +
    +

    A 5.4

    +
    Written by: Rick Van Ruth, sysop of Vampyre's Heaven BBS 3:640/954
    +

    Ok, so you can setup doors, run inbound and outbound + for interbbs games. So how do you do maintenance?
    + Again by scripts. Again I will use BRE as an example. First I create a + maintenance batch file in my C: root directory. I have called it maint.bat + and for the bre game it looks like this:

    +
    cd \doors\bre
    +BRE INBOUND
    +BRE SCORES
    +BRE REQUEST
    +BRE PLANETARY
    +exitemu
    +

    if you are familiar with Bre you will know this to + be a standard sort of maintenance except for the "exitemu" at the + end. That is there because we are going to use a script to start dosemu and + call the maint.bat - so afterwards we need it to exit dosemu.
    + Now a maintenance script to be called from your cron or whatever else you are + using to execute events on your system. I call this script + "dos_maint" and it also lives in /opt/mbse/bin

    +
    #!/bin/sh
    +#
    +COMMANDO="\" maint \r\""
    +
    +/usr/bin/sudo dosemu -dumb -E dir > /opt/mbse/log/dos.log -quiet -I "`echo keystroke $COMMANDO`"
    +
    +/bin/rm /opt/mbse/var/msgs/*.msg
    +
    +#/opt/mbse/bin/dos_poll # Uncomment this line if you are using the Multiple host script
    +--------------------------------------------------------------------------------------------------
    +

    You will notice this script starts dosemu and calls + maint.bat, and then when its finished there it deletes all those games + netmails and if you run the script for multiple hosts for your games it can + call that as well. Please note the second line is all ONE line, it has most + probably wrapped here.

    +

    You will notice that the script calls dosemu and not dosemu.bin, this + is because we need to tell dosemu to open a dumb terminal and not display to + a console or screen. By use of the redirection we redirect the normal console + output to a file, here I have used /opt/mbse/log/dos.log as that is where all + of MBSE's other logs reside.

    +

    Once "dos_maint" is run via the cron it will run maintenance + on your dos doors, process inbound/outbound interBBS game packets and have + your outbound packets ready to send. Thats about all there is to do :)

    +

    Note: You can make variants on these scripts for running daily + maintenance or just packet processing at certain times of day. They are just + variations on the information above, but if you have questions, contact me!

    +

    Have fun!

    +
    + +

    Up

    + +
    + +
    + + + +