Converted from CVS

This commit is contained in:
Mercurial Repos
2009-05-15 22:01:56 +02:00
commit b7b0017dd9
900 changed files with 203942 additions and 0 deletions

50
html/programs/index.htm Normal file
View File

@@ -0,0 +1,50 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<HTML>
<!-- $Id: index.htm,v 1.15 2004/04/13 18:24:13 mbroek Exp $ -->
<HEAD>
<META http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<META NAME="Language" content='en'>
<META http-equiv="Content-Style-Type" content="text/css">
<META name="author" lang="en" content="Michiel Broek">
<META name="copyright" lang="en" content="Copyright Michiel Broek">
<META name="description" lang="en" content="MBSE BBS Manual">
<META name="keywords" lang="en" content="MBSE BBS, MBSE, BBS, manual, fido, fidonet, gateway, tosser, mail, tic, mailer">
<TITLE>MBSE BBS Programs.</TITLE>
<LINK rel=stylesheet HREF="../manual.css">
</HEAD>
<BODY>
<BLOCKQUOTE>
<div align=right><h5>Last update 13-Feb-2004</h5></div>
<div align=center><h1>MBSE BBS Programs.</h1></div>
<ol>
<li><A HREF="mbaff.html">mbaff, Announce newfiles and filefind</A>
<li><A HREF="mball.html">mball, Allfiles and newfiles list creator</A>
<li><A HREF="mbcico.html">mbcico, The Fidonet mailer ala ifcico</A>
<li><A HREF="mbdiff.html">mbdiff, Nodelist difference processor</A>
<li><A HREF="mbfido.html">mbfido, Fidonet mail and files procesor</A>
<li><A HREF="mbfile.html">mbfile, Files database maintenance program</A>
<li><A HREF="mbindex.html">mbindex, Nodelist index compiler</A>
<li><A HREF="mblang.html">mblang, Language datafile compiler</A>
<li><A HREF="mblogin.html">mblogin, Unix login replacement</A>
<li><A HREF="mbmon.html">mbmon, The monitor program</A>
<li><A HREF="mbmsg.html">mbmsg, The messagebase utility program</A>
<li><A HREF="mbnntp.html">mbnntp, The news server</A>
<li><A HREF="mbout.html">mbout, The mailer outbound program</A>
<li><A HREF="mbpasswd.html">mbpasswd, The passwd wrapper</A>
<li><A HREF="mbsebbs.html">mbsebbs, The bbs program</A>
<li><A HREF="mbseq.html">mbseq, Sequence number creator</A>
<li><A HREF="mbsetup.html">mbsetup, The setup program</A>
<li><A HREF="mbstat.html">mbstat, The bbs status change program</A>
<li><A HREF="mbtoberep.html">mbtoberep, The toberep.data lister</A>
<li><A HREF="mbuser.html">mbuser, The userbase maintenance program</A>
<li><A HREF="mbuseradd.html">mbuseradd, The adduser wrapper</A>
</ol>
<A HREF="../index.htm"><IMG SRC="../images/b_arrow.png" ALT="Main" border="0">Back to Main index</A>
</BLOCKQUOTE>
</BODY>
</HTML>

99
html/programs/mbaff.html Normal file
View File

@@ -0,0 +1,99 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<HTML>
<!-- $Id: mbaff.html,v 1.6 2003/11/08 18:49:36 mbroek Exp $ -->
<HEAD>
<META http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<META NAME="Language" content='en'>
<META http-equiv="Content-Style-Type" content="text/css">
<META name="author" lang="en" content="Michiel Broek">
<META name="copyright" lang="en" content="Copyright Michiel Broek">
<META name="description" lang="en" content="MBSE BBS Manual">
<META name="keywords" lang="en" content="MBSE BBS, MBSE, BBS, manual, fido, fidonet, gateway, tosser, mail, tic, mailer">
<TITLE>MBSE BBS Programs - mbaff - Announce new files and Filefind processor.</TITLE>
<LINK rel=stylesheet HREF="../manual.css">
</HEAD>
<BODY>
<BLOCKQUOTE>
<div align="right"><h5>Last update 30-Jan-2001</h5></div>
<div align="center"><H1>mbaff - Announce new files and FileFind processor.</H1></div>
<H3>Synopsis.</H3>
<code><strong>mbaff</strong> [command] &lt;options&gt;</code>
<P>&nbsp;
<H3>Description.</H3>
<P>
<strong>mbaff</strong>
is the new files report generator and filefind server for mbsebbs.
In order to run <strong>mbaff</strong>
you must first start <strong>mbsed</strong>,
this is the deamon which controls all bbs activities.
<P>
When <strong>mbaff</strong>
is run with the commandline command <strong>announce</strong>
the first thing it does is to scan all the file databases for files
from which the announced flag is not yet set, and that area has a valid
newfiles groupname. These files are uploads for example.
If such a file is found the announced flag is set and
the file is added to the
<strong>toberep.data</strong>
file. This file may already contain
new files who were received as .tic files and processed by the
<strong>mbfido</strong> program.
After this is done the <strong>toberep.data</strong>
file is compared against the newfiles
reports to see if there is anything to report. If that's the case the
creation of reports begins in the echomail areas specified. After that the
<strong>toberep.data</strong>
file is erased and the mailout semafore set. <br>
The files to announce are divided into groups, the names of the groups are
set in the file download areas. If you plan this well, you can make seperate
announcements for several networks, announce files bij groups of file, ie. HAM
or .jpg pictures, GNU/Linux etc.
<P>
When
<strong>mbaff</strong>
is run with the commandline command
<strong>filefind</strong>
it will search each echomail area for unreceived messages addressed to
<strong>allfix</strong> or <strong>filefind</strong>.
It will read the message header and mark the message as received. The
search options are set on the subject line. All file areas for which the
filefind flag is set to true will be searched for the requested search
patterns. If there are files found a reply will be generated for the
user who wrote the request. If the reply area is different from the scan
area, the reply is placed in the reply area. If it's not set, the reply
goes into the same area. If the netmail option is set, the reply will
be sent by netmail. To prevent echomail overflow the replies in the same
area are limited to 15 found files, replies in the other echomail area
are limited to 50 files. Netmail replies will contain up to 100 files.
<P>&nbsp;<P>
<H3>Environment.</H3>
<P>
In order to run <strong>mbaff</strong> you need to set one global environment variable
<strong>$MBSE_ROOT</strong>.
This variable must point to the root of the bbs directoy structure. The
main configuration file
<strong>config.data</strong>
must be present in the ~/etc subdirectory.
<P>&nbsp;<P>
<H3>Commands.</H3>
<P>
<code><strong>mbaff announce</strong></code> - Announce new files.<br>
<code><strong>mbaff filefind</strong></code> - Process filefind requests.
<P>&nbsp;<P>
<H3>OPTIONS</H3>
<P>
<code><strong>mbaff [command] -quiet</strong></code> - Quiet mode, no screen output.
Use this switch if you run <strong>mbaff</strong> from the crontab.
<P>
<A HREF="index.htm"><IMG SRC="../images/larrow.png" ALT="Back" Border="0">Back to index</A>&nbsp;
<A HREF="../index.htm"><IMG SRC="../images/b_arrow.png" ALT="Index" Border="0">Back to main index</A>
</BLOCKQUOTE>
</BODY>
</HTML>

75
html/programs/mball.html Normal file
View File

@@ -0,0 +1,75 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<HTML>
<!-- $Id: mball.html,v 1.7 2005/08/11 15:28:25 mbse Exp $ -->
<HEAD>
<META http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<META http-equiv="Content-Style-Type" content="text/css">
<META NAME="Language" content='en'>
<META name="author" lang="en" content="Michiel Broek">
<META name="copyright" lang="en" content="Copyright Michiel Broek">
<META name="description" lang="en" content="MBSE BBS Manual">
<META name="keywords" lang="en" content="MBSE BBS, MBSE, BBS, manual, fido, fidonet, gateway, tosser, mail, tic, mailer">
<TITLE>MBSE BBS Programs - Allfile listing generator.</TITLE>
<LINK rel=stylesheet HREF="../manual.css">
</HEAD>
<BODY>
<BLOCKQUOTE>
<div align="right"><h5>Last update 11-Aug-2005</h5></div>
<div align="center"><H1>mball - Allfiles listing generator</H1></div>
<H3>Synopsis.</H3>
<P>
<code><strong>mball</strong> [commands] &lt;options&gt;</code>
<P>&nbsp;<P>
<H3>Description.</H3>
<P>
<strong>mball</strong> is the allfiles and newfiles listing generator that
can be made available on your bbs for your users to get a complete listing
of wat is available for download. When used with the <strong>-zip</strong>
option it can also produce complessed versions of these two listings. The
resulting files are created in the current directory. After the creation of
these files you can hatch them into your bbs with the programs <strong>
mbfido tic</strong> when you properly setup a .tic file area for this purpose
and create records for the hatch manager.
<P>
Just before the reports are created, and if you defined WWW and FTP logfiles
with <b>mbsetup</b> in menu 1.13, the logfiles are analysed and and files
downloaded from the bbs are counted as valid downloads. To make sure downloads
are only counted once, a status file is created in ~/var, this marks the date
the last time the logfiles are checked. For the best results make sure you run
<b>mball</b> before any WWW and FTP logfiles are rotated, else you might miss
some downloads.
<P>&nbsp;<P>
<H3>Environment.</H3>
<P>
In order to run <strong>mball</strong> you need to set the global variable
<strong>$MBSE_ROOT</strong>. This variable must point to the root of the bbs
directory structure. The main configuration file <strong>config.data</strong>
must be present in the ~/etc directory.
<P>&nbsp;<P>
<H3>Commands.</H3>
<P>
<code><strong>mball list</strong> </code> - Create allfiles.txt and newfiles.txt files.
<p>&nbsp;<P>
<H3>Options.</H3>
<P>
<code><strong>mball [command] -quiet</strong></code> - Quiet mode, supress screen output.<br>
<code><strong>mball list -zip</strong> </code> - Create zipped listings as well.
<p>&nbsp;
<H3>Setup.</H3>
<P>
In <strong>mbsetup</strong> menu 1.13 you need to set the days to include in newfiles listings and the maximum security level.
Also define valid paths to logfiles that are created by your web and ftp server.
<P>
<A HREF="index.htm"><IMG SRC="../images/larrow.png" ALT="Index" Border="0">Back to index</A>&nbsp;
<A HREF="../index.htm"><IMG SRC="../images/b_arrow.png" ALT="Main" Border="0">Back to Main index</A>
</BLOCKQUOTE>
</BODY>
</HTML>

295
html/programs/mbcico.html Normal file
View File

@@ -0,0 +1,295 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<HTML>
<!-- $Id: mbcico.html,v 1.9 2005/06/19 18:42:52 mbse Exp $ -->
<HEAD>
<META http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<META http-equiv="Content-Style-Type" content="text/css">
<META NAME="Language" content='en'>
<META name="author" lang="en" content="Michiel Broek">
<META name="copyright" lang="en" content="Copyright Michiel Broek">
<META name="description" lang="en" content="MBSE BBS Manual">
<META name="keywords" lang="en" content="MBSE BBS, MBSE, BBS, manual, fido, fidonet, gateway, tosser, mail, tic, mailer">
<TITLE>MBSE BBS Programs - mbcico - The Fidonet mailer.</TITLE>
<LINK rel=stylesheet HREF="../manual.css">
</HEAD>
<BODY>
<BLOCKQUOTE>
<div align="right"><h5>Last update 19-Jun-2005</h5></div>
<div align="center"><H1>mbcico - The Fidonet mailer.</H1></div>
This is work in progress....
<P>
<h3>Synopsis.</H3>
<P>
<code>-a&lt;inetaddr&gt; -l&lt;ttydevice&gt; &lt;node&gt; ...</code><br>
<code>-n&lt;phone&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</code>forced phone number<br>
<code>-l&lt;ttydevice&gt;&nbsp;</code>forced tty device<br>
<code>-t&lt;tcpmode&gt;&nbsp;&nbsp;&nbsp;</code>telnet TCP/IP mode, must be one of ifc|itn|ibn, forces TCP/IP<br>
<code>-a&lt;inetaddr&gt;&nbsp;&nbsp;</code>supply internet hostname if not in nodelist<br>
<code> &lt;node&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</code>should be in domain form, e.g. f11.n22.z3<br>
<code>-h&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</code>show this help message<br>
<br>
&nbsp;or: <code>mbcico tsync|yoohoo|**EMSI_INQC816|-t ibn|-t ifc|-t itn</code> (this is answer mode)
<P>&nbsp;<P>
<H3>Description.</H3>
<P>
<strong>mbcico</strong> stands for MBse "Internet - Fidonet Copy In /Copy Out",
this is a FidoNet(r) compatible transport agent. It is based on <strong>
ifcico</strong> written by Eugene G. Crosser, &lt;crosser@average.org&gt;,
2:5020/230@FidoNet. I changed the name of the program to make the difference
between <strong>ifcico</strong> and <strong>mbcico</strong>. Nowadays it is
quite different then ifcico.
<P>
Currently it supports FTS-0001, YooHoo/2U2 and EMSI handshake protocols,
Xmodem, Telink, Modem7, Hydra with zlib compression extension (FSP-xxxx),
SEAlink with and without overdrive and crash recovery,
Bark file and update requests, WaZoo protocols: DietIFNA,
plain Zmodem (aka ZedZip, EMSI flag "ZMO") and ZedZap, WaZoo file and
update requests (nodelist flag should be XA). WaZoo file and update requests
do also work with FTS-0001 sessions, this is supported by several well known DOS
mailers also.
Password protected requests and update requests are implemented.
<P>
There is also a special protocol optimized to use over TCP/IP connections,
contributed by Stanislav Voronyi &lt;stas@uanet.kharkov.ua&gt;, it is
identified by EMSI proto code TCP (not registered) and nodelist flag IFC.
The default port is 60179. A telnet variant is installed at port 60177, the
nodelist flag is ITN:60177. The port number is needed because the default port
in the nodelist is port 23.
<P>
There is also a <strong>Binkp/1.1</strong> implementation, this is a
bi-directional TCP/IP protocol.
This protocol is prefferred over the IFC protocol because it is
more efficient. Nodelist flag is IBN, the default port is 24554, and the
nodelist request flag is XX. This binkp implementation uses zlib packet
compression opt PLZ (FSP-1032) to increase the transfer speed and to lower
the network bandwith usage. There is also support for the stream compression
modes GZ and BZ2 (compatible with binkd).
<P>
Outbound directory structure is BinkleyTerm compatible, with domains and
point subdirectories (full 5d). There are separate "protected" and
"unprotected" inbound directories for the incoming sessions with the nodes
that are in your setup. Files received during outbound sessions are always
stored in the "protected" inbound.
<P>
"Magic" file request processors are executable files placed in the "magic"
directory. If a request is made for a file with matching name, the
executable from the "magic" directory is run, and its stdout output is mailed
to the requestor. Full requestor's address, in the form of "John Smith of
1:234/56/7" is passed to the executable in the command line. An example of
such file is on my system, the filename in the magic directory is <b>STATUS</b>.
<pre>
echo " Hello $1 $2,"
echo ""
echo " Status report for MBSE BBS Development"
echo " --------------------------------------"
echo ""
echo "Date : `date`"
echo "System: `uname -mrs`"
echo "Uptime: `uptime`"
echo ""
echo "`df -T`"
echo ""
echo "`free`"
echo ""
echo "Gtx, Michiel Broek"
</pre>
If you file request STATUS from my system you will get something like:
<pre>
Hello John Doe,
Status report for MBSE BBS Development
--------------------------------------
Date : Sat Nov 8 17:29:07 CET 2003
System: Linux 2.4.20 i586
Uptime: 17:29:07 up 88 days, 20:02, 1 user, load average: 0.00, 0.00, 0.00
Filesystem Type 1k-blocks Used Available Use% Mounted on
/dev/hda2 ext3 5921096 3405184 2210276 61% /
/dev/hdb1 ext3 6198404 5133056 750476 88% /opt
total used free shared buffers cached
Mem: 94280 91360 2920 0 13152 46276
-/+ buffers/cache: 31932 62348
Swap: 136512 32380 104132
Gtx, Michiel Broek
</pre>
Non-executable
files in the magic directory contain the full names to magic filenames. The
magic NODELIST can thus point to the full path and filename of your latest
nodelist. These magic names are automatic maintained by the <strong>mbfido</strong>
program when the magic name is set in the .tic file that you receive.
<P>
To run <strong>mbcico</strong> in master mode, you need to make dialout
devices read/writeable for <strong>mbcico</strong>, and do the same for
the directory where your uucp locks are created (usually /var/locks).
<P>&nbsp;<P>
<h3>Answer Mode.</h3>
<P>
To make <strong>mbcico</strong> work in answer mode, you need <strong>
mgetty</strong> written by Gert Doering. <strong>mbcico</strong> must be
started with one of the following parameters:
<P><PRE>
FTS-0001 call: "/opt/mbse/bin/mbcico tsync"
FTS-0006 call: "/opt/mbse/bin/mbcico yoohoo"
EMSI call: "/opt/mbse/bin/mbcico **EMSI_....."
</PRE><P>
In the latter case the received EMSI packet should be passed whitout trailing
CR). To make this work <strong>mgetty</strong> must be compiled with the
-DFIDO option. Other getty programs might work.
<P>
To answer TCP/IP calls the following lines should be added to /etc/inetd.conf:
<P><PRE>
binkd stream tcp nowait mbse /opt/mbse/bin/mbcico mbcico -t ibn
fido stream tcp nowait mbse /opt/mbse/bin/mbcico mbcico -t ifc
tfido stream tcp nowait mbse /opt/mbse/bin/mbcico mbcico -t itn
</PRE><P>
If your system uses xinetd the file /etc/xinetd.d/mbsebbs could be:
<P><PRE>
#:MBSE BBS services are defined here.
service binkp
{
socket_type = stream
protocol = tcp
wait = no
user = mbse
instances = 10
server = /opt/mbse/bin/mbcico
server_args = -t ibn
}
service tfido
{
socket_type = stream
protocol = tcp
wait = no
user = mbse
instances = 10
server = /opt/mbse/bin/mbcico
server_args = -t itn
}
service fido
{
socket_type = stream
protocol = tcp
wait = no
user = mbse
instances = 10
server = /opt/mbse/bin/mbcico
server_args = -t ifc
}
</PRE><P>
In the file /etc/services the following lines must be present:
<P><PRE>
binkd 24554/tcp # mbcico IBN mode
fido 60179/tcp # mbcico IFC mode
tfido 60177/tcp # mbcico ITN mode
</PRE>
<P>&nbsp;<P>
<h3>Calling Mode.</h3>
<P>
You never need to call nodes with <b>mbcico</b> by hand, <b>mbtask</b> will
start <b>mbcico</b> with the right commandline.<BR>
<B>Note:</B> you should not call nodes with mbcico directly, let
<b>mbtask</b> do the calling.
If you want to call a node make a <a href="mbout.html">poll</a> command.
<P>&nbsp;<P>
<h3>Environment.</H3>
<P>
In order to run the mbcico you need to set one global environment variable
<strong>$MBSE_ROOT</strong>
This variable must point to the root of the bbs directoy structure.
<P>&nbsp;<P>
<H3>Return Codes.</H3>
<P>
<pre>
0 - No errors
1..32 - OS errors, SIGHUP, SIGKILL, etc.
100 - Commandline error.
101 - Configuration error.
103 - Disk full.
108 - File transfer error.
111 - Node not in nodelist.
112 - Node may not be called (Hold, Down, not ZMH).
113 - Could not make connection.
114 - Cannot open tty port.
115 - Node is locked.
116 - No IP address.
117 - Unknown session type.
118 - Not Zone Mail Hour.
119 - Modem error.
120 - Not port available.
121 - Session error.
122 - EMSI session error.
123 - FTSC session error.
124 - Wazoo session error.
125 - YooHoo session error.
126 - Outbound scan error.
127 - Cannot poll.
</pre>
These codes are also stored in status files for nodes, with the extension
of ".sts". These are small datafiles containing three decimal numbers.
<ol>
<li>Time retry code, this is the next call attempt time. This is an unsigned
long representing the number of seconds since the epoch. Before this time
the node may not be called. This is set after a failed call, a random time
in the near future is selected.
<li>Retries, this is the number of consequtive call attempts made that returned
"call failed" or other errors. This field is zeroed when the call succeeds and
when a new "poll" is created. If the value is 30, the node won't be called
anymore.
<li>Code, this is the return code of the last attempt.
</ol>
<p>&nbsp;<p>
<h3>Configuration.</H3>
<P>
The behaviour of mbcico can be configured with <strong>mbsetup</strong>,
section 1.14 If something doesn't do what you want, set the debug on for
that problem. This will produce huge logfiles, but also a lot of information.
Important flags are Device IO, EMSI debug, File forward, Locking, Outboundscan
and Session.
<P>&nbsp;<P>
<h3>Bugs.</H3>
<P>
Incoming calls from McMail mailers, McMail is quite hasty
to establish an EMSI session, and times out in less than a second. So
if your system is heavy loaded, or not too fast, McMail cannot connect
with your system. This is a known problem with McMail 1.0 and older,
later versions are ok.
<P>&nbsp;<P>
<H3>Authors.</H3>
<P>
<pre>
Eugene G. Crosser &lt;crosser@average.org&gt; Orginal ifcico.
Stanislav Voronyi &lt;stas@uanet.kharkov.ua&gt; TCP/IP code.
Martin Junius Rewrite of opentcp().
Omen Technology Inc Zmodem protocol.
Arjen G. Lentz, Joaquim H. Homrighausen Hydra transfer protocol.
Cristof Meerwald Implementation of Hydra in ifcico.
P. Saratxaga Tty driver code, yoohoo extensions.
Dima Maloff Binkp protocol.
Michiel Broek Rewrite for MBSE BBS.
</pre>
<P>
<A HREF="index.htm"><IMG SRC="../images/larrow.png" ALT="Index" Border="0">Back to index</A>&nbsp;
<A HREF="../index.htm"><IMG SRC="../images/b_arrow.png" ALT="Main" Border="0">Back to Main index</A>
</BLOCKQUOTE>
</BODY>
</HTML>

64
html/programs/mbdiff.html Normal file
View File

@@ -0,0 +1,64 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<HTML>
<!-- $Id: mbdiff.html,v 1.6 2003/11/08 18:49:36 mbroek Exp $ -->
<HEAD>
<META http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<META http-equiv="Content-Style-Type" content="text/css">
<META NAME="Language" content='en'>
<META name="author" lang="en" content="Michiel Broek">
<META name="copyright" lang="en" content="Copyright Michiel Broek">
<META name="description" lang="en" content="MBSE BBS Manual">
<META name="keywords" lang="en" content="MBSE BBS, MBSE, BBS, manual, fido, fidonet, gateway, tosser, mail, tic, mailer">
<TITLE>MBSE BBS Programs - mbdiff - Nodelist difference file processor.</TITLE>
<LINK rel=stylesheet HREF="../manual.css">
</HEAD>
<BODY>
<BLOCKQUOTE>
<div align="right"><h5>Last update 30-Jan-2001</h5></div>
<div align="center"><H1>mbdiff - Nodelist difference file processor.</H1></div>
<H3>Synopsis.</H3>
<P>
<code><strong>mbdiff</strong> [nodelist] [nodediff] &lt;options&gt;</code>
<P>&nbsp;<P>
<H3>Description.</H3>
<P>
<strong>mbdiff</strong> applies a (compressed) nodediff file against the
nodelist of the week before to create a new nodelist. The result is a new
plain nodelist and a nodelist compressed with zip.
<P>&nbsp;<P>
<H3>Environmet.</H3>
<P>
In order to run <strong>mbdiff</strong> you must set the global variable
<strong>$MBSE_ROOT</strong>. This variable must point to the root directory
of the bbs structure. The main configuration file <strong>config.data</strong>
must be present in the ~/etc directory.
<P>&nbsp;<P>
<H3>Commands.</H3>
<P>
<code><strong>mbdiff</strong> [nodelist] [nodediff]</code> The nodelist must be the full
path and filename without the dot and daynumber extension. The nodediff is
the full path and filename to the (compressed) nodediff file fitting on the
latest nodelist. It is adviced to make a seperate working directory where
you keep the nodelists. Don't do this in your normal nodelist directory.
When the operation is successfull, the new nodelist is in the working directory
and the old list is removed. A compressed version of the nodelist is also
placed in the working directory. From here you can hatch the new compressed
nodelist with the <strong>mbfido</strong> program.
<P>&nbsp;<P>
<H3>Options.</H3>
<P>
<code><strong>-quiet</strong></code> - supress screen output, this switch is needed when
<strong>mbdiff</strong> runs on the background.
<P>
<A HREF="index.htm"><IMG SRC="../images/larrow.png" ALT="Index" Border="0">Back to index</A>&nbsp;
<A HREF="../index.htm"><IMG SRC="../images/b_arrow.png" ALT="Main" Border="0">Back to Main index</A>
</BLOCKQUOTE>
</BODY>
</HTML>

277
html/programs/mbfido.html Normal file
View File

@@ -0,0 +1,277 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<HTML>
<!-- $Id: mbfido.html,v 1.10 2005/08/26 18:26:38 mbse Exp $ -->
<HEAD>
<META http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<META http-equiv="Content-Style-Type" content="text/css">
<META NAME="Language" content='en'>
<META name="author" lang="en" content="Michiel Broek">
<META name="copyright" lang="en" content="Copyright Michiel Broek">
<META name="description" lang="en" content="MBSE BBS Manual">
<META name="keywords" lang="en" content="MBSE BBS, MBSE, BBS, manual, fido, fidonet, gateway, tosser, mail, tic, mailer">
<TITLE>MBSE BBS Programs - mbfido - The Fidonet mail and files processor.</TITLE>
<LINK rel=stylesheet HREF="../manual.css">
</HEAD>
<BODY>
<BLOCKQUOTE>
<div align=right><h5>Last update 26-Aug-2005</h5></div>
<div align=center><H1>mbfido, the fidonet mail and files processor.</H1></div>
<h3>Synopsis.</H3>
<P>
<code>mbfido [command(s)] &lt;options&gt;</code>
<P>&nbsp;<P>
<H3>Description.</H3>
<P>
<strong>mbfido</strong>
is the program to process fidonet mail and files. In order to run mbfido
you must first start <strong>mbtask</strong>,
this is the deamon which controls all bbs activities. To prevent that
<strong>mbfido</strong> will run more than once at the same time a lock
is placed in the protected inbound with the pid of the running
<strong>mbfido</strong> program. The gateway to and from internet is also
handled by <strong>mbfido</strong>.
<P>&nbsp;<P>
<H3>Specifications.</H3>
<p>
The recognized mail packets are type 2+ following the FSC-0039 standard with
a fallback to the old stone age packets.
Can handle messages of maximum 429467295 bytes, or less if you have less
memory available, the practical limit is about 1 Meg. Note that most mailprocessors
are only guaranteed to work to maximum 16 KBytes.
Recent experiments in the LINUX echo show that this is still true,
although most tossers seem to process mail up to 32 KBytes.
<P>&nbsp;<P>
<H3>Tossing Mail.</H3>
<P>
First make sure you have the necessary message areas in your setup. At least
you need the badmail and dupemail areas and a netmail area for each network
you participate in. If you don't create badmail and dupemail areas then
bad (unknown area etc) and dupes are lost and you cannot check the reason why.
If you don't create the netmail areas for each network, then netmail to your
system will dissapear. It is not possible to "retoss" the badmail yet after
you have created any missing echomail areas.
<P>
To prevent .pkt name collision the toss of incoming mail is done in parts.
The first run is to process all uncompressed mailpackets and add mail to the
outbound. Then each compressed ARCmail archive will be uncompressed and
processed and mail will be imported and forwarded as necessary. During all
these passes all filenames are sorted by date and time, the oldest files are
processed first.
<P>
The recognized mail packets are type 2+ following the FSC-0039 standard with
a fallback to the old stone age packets. The packets are checked for being
addressed to one of your own aka's and for a correct password. The
password check may be switched off in the nodes setup. After all the packet
header checks the messages will be extracted from the packet file.
<P>
When messages are extracted from the packets, the date format is checked for
Year2000 bugs from other tossers. Several checks are done by ideas of Tobias
Ernst of 2:2476/418. It is also possible to run the <strong>pktdate</strong>
utility before each packet will be processed. Whatever date format us used in
the original message, <strong>mbfido</strong> will always rewrite the date
field in the right FTS-0001 format.
<P>
If the message is a netmail the message is checked for DOMAIN, INTL, FMPT and
TOPT kludges so that full 4d or 5d addressing will be possible. Then a check
is done if this netmail is addressed to one of our aka's. If it's addressed to
"sysop" or "postmaster" the name is replaced with the sysop's name. If the
message is addressed to one of the names defined in the service setup, that
mail will be handled by the service manager, ie. given to areamgr, filemgr or
send further as email to your local system.
<BR>
Then the message is checked if it is addressed to an existing bbs user, and if
so it will be imported into the netmail area of the main zone of the bbs.
If it's not addressed to a bbs user, the message will be readdressed to the
sysop. If the message is not for one of our aka's the message will be put in the
mailqueue for further routing.
<P>
If the message is a echomail message it will be checked for being a duplicate by
storing the CRC32 value of the AREA: line, message subject, origin line,
message date and msgid kludge and testing if that CRC32 value exists in the
echomail duplicate database. If there is no msgid in the message, the whole
message body will be include to complete the CRC32 dupe check.
Also the existance of the echomail area is checked and the node must be linked to that area.
If the message is not in a passthru area and is not a duplicate it
is finally imported in the message base.
After that is the message will be forwarded to downlinks
by adding the message to the mailqueue.
<P>&nbsp;<P>
<h3>Adding mail and files to the outbound.</h3>
<P>
Adding mail and file to the outbound is done in two passes. The first pass is to put all
outgoing mail into the ~/var/queue/z.n.n.p directory, the last letters are
replaced by the digits of the nodenumber.
The extension can be qqq for packed mail, nnn for normal unpacked mail, hhh for
hold unpacked mail and ccc for crash unpacked mail. Adding mail and files to
this directory can allways be done, even if one of the nodes you are adding mail
for is having a mail session with your system. This is a safe operation.<br>
In the second pass, these temp files are really added to the outbound, but
only if the destination node is not locked, ie. there is no current mailsession
with that node. If there is a mail session going, these temp files will stay in
the temp directory and are added to the outbound in a later run of
<strong>mbfido</strong>. If adding the mail to the outbound succeeds
the temporary files and directory is removed.
<P>&nbsp;<P>
<H3>Alias file.</H3>
<P>
If the file /opt/mbse/etc/aliases exists, mbfido will try to fetch ftn-style
aliases from there.
If "from" address of a message from FidoNet matches <b>right</b> side
of some entry in alias file, then the Reply-To: header is created
in the RFC message with the name part taken from the left side of the
sysalis entry and domain part taken from myfqdn (below). E.g., if a
fidonet message comes from "John Smith of 1:234/567.89@fidonet" and
there is an entry in the sysalias file:
<pre>
"jsmith: John.Smith@p89.f567.n234.z1.fidonet.org"
</pre>
and Domain name value is "mbse.nl", then the resulting message will
contain a line: "Reply-To: jsmith@mbse.nl".
<P>&nbsp;<P>
<H3>Commands.</H3>
<P>
<code><strong>mbfido</strong> areas</code>
This command will check all file and mail groups if areas files are defined and
if the setting <b>Auto change</b> is set to Yes. Then the areafile is read and
the areas in that file are compared with the defined areas. Missing areas are
created and areas not in the areafile are removed or blocked depending if there
are files or messages present in these areas. This is also a good command to
create large bulks of new areas on your system.
<P>
<code><strong>mbfido</strong> mail &lt;recipient&gt;</code>
This command is used by your MTA to deliver email addressed to for example
Michiel_Broek@f2802.n280.z2.fidonet.org
<P>
<code><strong>mbmail</strong> &lt;recipient&gt;</code>
This is the same as above.
<P>
<code><strong>mbfido</strong> notify &lt;nodes&gt;</code>
This command will send notify messages to all nodes in your setup which
have the notify option set to on. If you enter nodes as option you may use
wilcards, ie 2:*/* to send messages to all nodes in zone 2. If you specify
exactly one node, messages will be generated even if that node has the
notify function off. From cron you should not specify any nodes, this will
just send to all your links the information about their setup. Each node
will receive a status report for files and mail, and area list for all
file areas and mail areas to each aka a node has, and a flow report for
mail for each aka.
<P>
<code><strong>mbfido</strong> roll</code>
This command will only do something if a new week or month has begun.
If this is true the statistic records in several databases are updated.
You should run this command each midnight from cron to be sure that this when it is
time to do so. This command is always executed before one of the scan, toss or tic commands so
if you don't do this in cron, it will still happen.
<P>
<code><strong>mbfido</strong> scan</code>
Scan for new messages entered at the bbs or by other utilities. If the file
~/tmp/echomail.jam or ~/tmp/netmail.jam exists,
mbfido will only scan the messages in areas which are
pointed at in this file. This is a lot faster then a full mailscan.
If it is not present, all messagebases are scanned
to see if there is a new message. If you specify
<strong>-full</strong> on the commandline a full messagebase scan is forced.
It is wise to do this sometimes, on my bbs I run this once a day.
<P>
<code><strong>mbfido</strong> tag</code>
The command will create tag- and areas files in the doc directory for each group of
mail and files.
<P>
<code><strong>mbfido</strong> test &lt;node&gt;</code>
This is for testing of the mail routing. The node on the commandline must be in
the format f28.n280.z2 etc. The results are printed on the tty. If you have
debug logging on in menu 1.5.16 items 17 and 18, then all needed debug
information is written to the logfile. You can use this to debug your routing.
<P>
<code><strong>mbfido</strong> tic</code>
Process incoming files accompanied with .tic control files. Several actions can
take place on the incoming file before they are imported in the BBS areas.
Options are rearchiving, replacing banners (with your add), check for DOS
viruses, running scripts for certain filename patterns, send these files to
other nodes etc. All options can be defined for each area. If as a result from
one of the actions there are new files hatched, for example after processing
a nodelist difference file which created a new nodelist, the .tic processing
will start again, until there is really nothing more to do.
<P>
<code><strong>mbfido</strong> toss</code>
Toss incoming fidonet netmail and or echomail. By default mail in the protected
inbound directory will be processed, uncompressed .pkt files and compressed
arcmail bundles are recognized, filename case doesn't matter.
<P>
<code><b>mbfido</b> news</code> Scan all defined newsgroups for new newsarticles.
New articles are fetched from the newsserver and stored in your messagebase and
send to your up- and downlinks. This is for use with an NNTP gateway.
<P>
<code><strong>mbfido</strong> uucp</code>
This will read a standard a newsbatch from stdin and gate the articles
to Fidonet and the local message base. This is for use with an UUCP gateway, this
mode should be called by uuxqt. The newsbatch may be compressed or uncompressed or
a single news article.
<P>
<code><strong>mbnews</strong></code>
This is an alternative to <strong>mbfido uucp -quiet</strong>.
<P>&nbsp;<P>
<h3>Options.</h3>
<P>
<code><strong>mbfido</strong> [command] -nocrc</code>
Disable CRC checking of incoming TIC files. Only use this if you know what
you are doing.
<P>
<code><strong>mbfido</strong> scan -full</code>
Force scanning of all message bases for new entered mail. You need this if
mail in entered with other editors then from mbse. Also, running it once a
day is adviced to catch any missed messages.
<P>
<code><strong>mbfido</strong> news -learn</code>
Scan the newsserver for news articles, and update the news dupes database only.
Use this switch if you start using mbfido to gate news articles for the first time.
Articles will not be gated with this switch, mbfido will just learn which articles
already exist. Normally you only need to use this switch once.
<P>
<code><strong>mbfido</strong> [command] -nodupe</code>
Disable checking for duplicate's. Normally you should not use this switch.
This switch doesn't work with the news command, only for echomail and tic files.
<P>
<code><strong>mbfido</strong> [command] -quiet</code>
Quiet mode, all output to the current tty is supressed. Use this flag if
you toss mail from a script (started by cron) after mail is received.
<P>
<code><strong>mbfido</strong> toss -unsecure</code>
Toss mail without checking if the echomail is for your own system en without
checking if the sending node is connected to your system. Nodes who are
excluded from a certain echo, can stil not enter messages in that echo.
<P>
<code><strong>mbfido</strong> [command] -unprotect</code>
Toss from the unprotected inbound directory. The default is to toss from the
protected inbound directory.
<P>&nbsp;<P>
<h3>Environment.</H3>
<P>
In order to run the bbs you need to set one global environment variable
<strong>$MBSE_ROOT</strong>
This variable must point to the root of the bbs directoy structure.
<P>&nbsp;<P>
<h3>Bugs.</H3>
<P>
There are still bugs, this program is under development.
<P>
<A HREF="index.htm"><IMG SRC="../images/larrow.png" ALT="Index" Border="0">Back to index</A>&nbsp;
<A HREF="../index.htm"><IMG SRC="../images/b_arrow.png" ALT="Main" Border="0">Back to Main index</A>
</BLOCKQUOTE>
</BODY>
</HTML>

192
html/programs/mbfile.html Normal file
View File

@@ -0,0 +1,192 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<HTML>
<!-- $Id: mbfile.html,v 1.16 2007/06/08 19:02:19 mbse Exp $ -->
<HEAD>
<TITLE>MBSE BBS Programs - mbfile - File database maintenance program.</TITLE>
<META http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<META NAME="Language" content='en'>
<META http-equiv="Content-Style-Type" content="text/css">
<META name="author" lang="en" content="Michiel Broek">
<META name="copyright" lang="en" content="Copyright Michiel Broek">
<META name="description" lang="en" content="MBSE BBS Manual">
<META name="keywords" lang="en" content="MBSE BBS, MBSE, BBS, manual, fido, fidonet, gateway, tosser, mail, tic, mailer">
<LINK rel=stylesheet HREF="../manual.css">
</HEAD>
<BODY>
<BLOCKQUOTE>
<div align="right"><h5>Last update 08-Jun-2007</h5></div>
<div align="center"><H1>mbfile - File database maintenance program.</H1></div>
<H3>Synopsys.</H3>
<code><strong>mbfile</strong> [commands] &lt;options&gt;</code>
<P>&nbsp;<P>
<H3>Description.</H3>
<P>
<strong>mbfile</strong>
is the filedatabase maintenance program for mbsebbs. In order to run mbfile you
must have started <strong>mbsed</strong>,
this is the deamon which controls all bbs activities.
<P>
The main purpose of <strong>mbfile</strong>
to do automatic maintenance on the downloadable files on the bbs, such as
removing or moving old files, checking the database and packing the database.
The best way to do the maintenance is to run <strong>mbfile</strong>
from the crontab. example:
<P><pre>
30 05 * * * export MBSE_ROOT=/opt/mbse; /opt/mbse/bin/mbfile kill pack index -quiet
</pre>
Other functions in <b>mbfile</b> are meant to do manual maintenance such as
adding, deleting or moving files.
<P>&nbsp;<P>
<H3>Environment.</H3>
<P>
In order to run the bbs you need to set one global environment variable
<strong>$MBSE_ROOT</strong>
This variable must point to the root of the bbs directoy structure. The
main configuration file <strong>config.data</strong>
must exist in the subdirectory ~/etc.
<P>&nbsp;<P>
<H3>Commands.</H3>
<P>
<code><strong>mbfile</strong> adopt &lt;area&gt; &lt;file&gt; "[description]"</code>
Adopt a file to the filebase. The description is optional, but if present it
should be enclosed in quotes. The optional description may be at most 255 characters.
Default mbfile will try to use the FILE_ID.DIZ if this is present. The file to
adopt needs to be in your current directory and will be copied to the new area.
If you have virus scanners defined, the file will be checked for virusses.
<P>
<code><strong>mbfile</strong> check [area]</code>
Check the database integrity. All files in the filedatabase must exist on
disk and all files on disk must exist in the filedatabase. There are some
exceptions, files.bbs, files.bak, 00index, index*.html, header, readme and
files that start with a dot.
Of all files the date and time is checked, the size and the crc
value of the file. If there is something wrong, the error is corrected or the
file is removed. If the area is a CD-rom area, the check that files on disk
must exist in the filedatabase is skipped.
If no area number is given, all areas are checked.
<P>
<code><strong>mbfile</strong> delete &lt;area&gt; "&lt;filemask&gt;"</code>
Mark file(s) in an area for later deletion. You can use wildcards, and if you do
surround them with quotes to prevent shell expansion.
The file is not removed until you run <strong>mbfile pack</strong>.
<P>
<code><strong>mbfile</strong> import &lt;area&gt;</code>
Import files to the given area using files.bbs descriptions. There are two
possibilities, import from CD-rom or just from a temporary directory.
<UL>
<LI>Import from a temporary directory: Put the files to import there including the
files.bbs file.
<LI>Import from CD-rom: Go into the directory on the CD
where the files are. If the files.bbs is not in the same directory,
you must enter the full filename and path where the files.bbs is with
<b>mbsetup</b> 8.4.area.6.
</UL>
To start the import, type <code>mbfile import area</code> where area is the
number of the destination filearea.
The files are not checked for FILE_ID.DIZ inside the
archives. If you have virus scanners defined, the files are checked for
virusses before they are added the the bbs. If you don't want these fresh files
to be announced, add the <code>-announce</code> option on the commandline. This
may be a good idea if you migrate from another bbs system.
<P>
<code><strong>mbfile</strong> index</code>
Create fast filerequest index for the <strong>mbcico</strong> filerequest
processor. In each directory with the downloadable files is also a
<strong>files.bbs</strong> file written in msdos cr/lf format. This includes a
download counter.
Also, if defined, in each available download area for ftp/http, <b>00index</b>
and <b>index.html</b> files are
created, starting at the ftp pub directory. If the area contains gif or jpg
images, thumbnails are created using the <b>convert</b> program if you have that
installed. The thumbnails have the same filenames as the original images, only
they start with a dot. The convert command is defined with <b>mbsetup</b> menu
1.19.8, if you don't have it or don't want thumbnails, make that entry empty.
The index command only rebuilds area index files (files.bbs, index.html and
00index) when there was a change in the area.
<P>
<code><strong>mbfile</strong> kill</code>
Mark files to delete or move files in areas that have the <strong>download age</strong>
set or the <strong>filedate age</strong> set. A setting of 0 is ignored.
Areas on CD-rom are always skipped.
If the Move to Area option is set the files are moved to the given area. The
upload date and download date are reset to the current date and time.
So if you set in the destination area aging of 14 days, files will stay
there for 14 days after the move. This is good for automatic "last chance" areas.
<P>
<code><strong>mbfile</strong> list [area]</code>
List all defined file areas, the number of files, the total size of the files
and the primary group. If and area is given on the commandline, the files in
that area are listed.
<P>
<code><strong>mbfile</strong> move &lt;from&gt; &lt;to&gt; &lt;file&gt;</code>
This command will move a file from one area to another. No actions on the file
are performed.
<P>
<code><strong>mbfile</strong> pack</code>
This command will actualy remove the records of files that are marked for
deletion. If the file is still on disk, it will be removed also. So when
you delete files with mbsetup or with mbfile, they are still in your database and on disk
until you run <strong>mbfile pack</strong>.
<P>
<code><strong>mbfile</strong> rearc &lt;area&gt; "&lt;filemask&gt;"</code>;
Re-archive file(s) in an file area to the archiver that must be set in the
<a href="../setup/files.html">file area setup</a>.
<P>
<code><strong>mbfile</strong> sort &lt;area&gt;</code>
Sort the files in area on the long filenames. The sort is case insensitive. When
the sort is completed, the command <strong>mbfile index</strong> will automatic
run to rebuild all indexes.
<P>
<code><strong>mbfile</strong> toberep</code>
Shows which files are to be reported. This lists only the files that are
received during .tic processing, new uploaded files are not displayed. This list
is automatic removed after newfiles are announced.
See also <A HREF="mbtoberep.html">mbtoberep</A>.
<P>
<code><strong>mbfile</strong> undelete &lt;area&gt; "&lt;filemask&gt;"</code>
Mark a file that is marked for deletion to be available again, ie. undo the deletion
mark. You can use wildcards, and if you do
surround them with quotes to prevent shell expansion.
<P>&nbsp;<P>
<H3>Options.</H3>
<P>
<code><strong>mbfile</strong> [command] -quiet</code>
Quiet mode, no screen output. Use this switch if you run <strong>mbfile</strong> from the crontab.
<P>
<code><strong>mbfile</strong> [command] -announce</code>
Announce mode, use this switch with the adopt and import commands to prevent
that the added file(s) will be announced. This can be usefull if you add lots of
files that you don't want to announce these as new files.
<P>
<code><strong>mbfile</strong> [command] -force</code>
With the adopt, import and move commands files that already exist in the
destination area are not overwritten. With this switch you can force to
overwrite the existing file.
<P>
<code><strong>mbfile</strong> [command] -virus</code>
Supress virus scanning of files during adopt or import. Use with care.
<P>
<A HREF="index.htm"><IMG SRC="../images/larrow.png" ALT="Index" Border="0">Back to index</A>&nbsp;
<A HREF="../index.htm"><IMG SRC="../images/b_arrow.png" ALT="Main" Border="0">Back to Main index</A>
</BLOCKQUOTE>
</BODY>
</HTML>

View File

@@ -0,0 +1,68 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<HTML>
<!-- $Id: mbindex.html,v 1.5 2003/11/08 18:49:36 mbroek Exp $ -->
<HEAD>
<META http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<META http-equiv="Content-Style-Type" content="text/css">
<META NAME="Language" content='en'>
<META name="author" lang="en" content="Michiel Broek">
<META name="copyright" lang="en" content="Copyright Michiel Broek">
<META name="description" lang="en" content="MBSE BBS Manual">
<META name="keywords" lang="en" content="MBSE BBS, MBSE, BBS, manual, fido, fidonet, gateway, tosser, mail, tic, mailer">
<TITLE>MBSE BBS Programs - mbindex - Nodelist Index Compiler.</TITLE>
<LINK rel=stylesheet HREF="../manual.css">
</HEAD>
<BODY>
<BLOCKQUOTE>
<div align="right"><h5>Last update 30-Jan-2001</h5></div>
<div align="right"><H1>mbindex - Nodelist Index Compiler.</H1></div>
<H3>Synopsis.</H3>
<P>
<code><strong>mbindex</strong> &lt;options&gt;</code>
<P>&nbsp;<P>
<H3>Description.</H3>
<P>
<strong>mbindex</strong> is the nodelist index compiler. It will create
an index file containing the sorted fidonet addresses as index file to the
raw nodelists in the defined nodelist directory. Several other programs
use this index file for fast retreival of data from the nodelists. Compiling
new nodelist indexes can always be done, while compiling the result
is stored in temporary index files and only after successfull compilation the
original indexes are renamed and the temporary files get the normal names.
The renamed (old) indexes stay on disk including the previous version of the
old raw nodelist. They stay there in case some program had the nodelist or
index still open. So in the nodelist directory there are current nodelists,
previous
nodelists, current indexes and previous indexes, and during compiling the
temporary indexes. There is no need to manually remove (and not wise to do so)
files from the nodelist directory.
<P>
The nodelists in the nodelist directory are the normal uncompressed nodelists
in MS-DOS format (with CR/LF). The filename extensions must be two or 3 digits.
So if you have a private pointlist named <strong>bestbbs.pts</strong> you
will have to rename that to <strong>bestbbs.999</strong> to make it work.
<P>&nbsp;<P>
<H3>Environment.</H3>
<P>
In order to run <strong>mbindex</strong> you must set the global variable
<strong>$MBSE_ROOT</strong>. This variable must point to the root directory
of the bbs structure. The main configuration file <strong>config.data</strong>
must be present in the ~/etc directory.
<P>&nbsp;<P>
<H3>Options.</H3>
<P>
<code><strong>mbindex</strong> -quiet</code> Quiet mode, no screen output. Use the switch
if you run <strong>mbindex</strong> from a shellscript or from the crontab.
<P>&nbsp;<P>
<A HREF="index.htm"><IMG SRC="../images/larrow.png" ALT="Index" Border="0">Back to index</A>&nbsp;
<A HREF="../index.htm"><IMG SRC="../images/b_arrow.png" ALT="Main" Border="0">Back to Main index</A>
</BLOCKQUOTE>
</BODY>
</HTML>

38
html/programs/mblang.html Normal file
View File

@@ -0,0 +1,38 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<HTML>
<!-- $Id: mblang.html,v 1.5 2003/11/08 18:49:36 mbroek Exp $ -->
<HEAD>
<META http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<META http-equiv="Content-Style-Type" content="text/css">
<META NAME="Language" content='en'>
<META name="author" lang="en" content="Michiel Broek">
<META name="copyright" lang="en" content="Copyright Michiel Broek">
<META name="description" lang="en" content="MBSE BBS Manual">
<META name="keywords" lang="en" content="MBSE BBS, MBSE, BBS, manual, fido, fidonet, gateway, tosser, mail, tic, mailer">
<TITLE>MBSE BBS Programs - mblang - Language Data Compiler.</TITLE>
<LINK rel=stylesheet HREF="../manual.css">
</HEAD>
<BODY>
<BLOCKQUOTE>
<div align="right"><h5>Last update 30-Jan-2001</h5></div>
<div align="center"><H1>mblang - Language Data Compiler</H1></div>
<H3>Synopsis.</H3>
<P>
<code><strong>mblang</strong> [language data file] [language source text]</code>
<P>&nbsp;<P>
<H3>Description.</H3>
<P>
<strong>mblang</strong> compiles the source textfile to language datafile
which is used by the <strong>mbsebbs</strong> program. You only need to
use this program if you install a new language file. When you build the
complete mbse bbs package, this command is run automatic for you.
<P>
<A HREF="index.htm"><IMG SRC="../images/larrow.png" ALT="Index" Border="0">Back to index</A>&nbsp;
<A HREF="../index.htm"><IMG SRC="../images/b_arrow.png" ALT="Main" Border="0">Back to Main index</A>
</BLOCKQUOTE>
</BODY>
</HTML>

122
html/programs/mblogin.html Normal file
View File

@@ -0,0 +1,122 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<HTML>
<!-- $Id: mblogin.html,v 1.8 2007/08/25 19:31:59 mbse Exp $ -->
<HEAD>
<META http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<META http-equiv="Content-Style-Type" content="text/css">
<META NAME="Language" content='en'>
<META name="author" lang="en" content="Michiel Broek">
<META name="copyright" lang="en" content="Copyright Michiel Broek">
<META name="description" lang="en" content="MBSE BBS Manual">
<META name="keywords" lang="en" content="MBSE BBS, MBSE, BBS, manual, fido, fidonet, gateway, tosser, mail, tic, mailer">
<TITLE>MBSE BBS Programs - mblogin - Unix login replacement for MBSE BBS.</TITLE>
<LINK rel=stylesheet HREF="../manual.css">
</HEAD>
<BODY>
<BLOCKQUOTE>
<DIV align=right><h5>Last update 25-Aug-2007</h5></DIV>
<DIV align=center><H1>mblogin - Unix login replacement for MBSE BBS.</H1></DIV>
<H3>Synopsis.</H3>
<P>
<code><strong>mblogin</strong> [-p] [-h hostname] [user]</code>
<P>&nbsp;<P>
<H3>Description.</H3>
<P>
<strong>mblogin</strong> replaces the standard Unix login program for MBSE BBS.
You can use this program from <strong>mgetty</strong> for modem/ISDN access,
or from <strong>inetd</strong> to allow telnet access.
This program logs in the systems syslog facility because the normal login
program does this too. It uses the file <code>/opt/mbse/etc/login.defs</code>
for the behaviour you prefere. All options in this file are well commented. It uses
the bbs user database to see who are allowed to login. Users can use their
Fidonet name, Unix name or Handle. If the name is found in the userbase, the
name is replaced with the real Unix name to do the password check and to start
the <strong>mbsebbs</strong> program. If the user is not found in the user base,
the user is asked if he wants to register as a new user. This behaviour can be
turned off. If the user uses the name <strong>bbs</strong> he will start the
<strong>mbnewusr</strong> program directly. All other users are not allowed to
login, not even root. If you change it in the file
<code>/opt/mbse/etc/login.defs</code> you may allow user <strong>mbse</strong>
to login. I advice against it, you should use <strong>ssh</strong> if you want
remote access to do maintenance.
<P>&nbsp;<P>
<H3>How to use from inetd.</H3>
<P>
If your system is connected to the internet you may want to let users login
using telnet. The changes you need to make are different for each operating
system mbse supports. The right lines for your distribution should already
be present, but they are not set active, in other words, you still need to
make changes to allow telnet login to work.
I will describe how to use it from inetd.
When you make changes to your system to
change the telnet login, make sure you are already logged into your system as root
from another terminal. If you make a mistake and can't login anymore you will be
glad that you are still logged in on another terminal. Here are the tested
setups:
<UL>
<LI>GNU/Linux: edit the telnet line in /etc/inetd.conf:<BR>
<code>telnet stream tcp nowait root /usr/sbin/tcpd in.telnetd -L /opt/mbse/bin/mblogin</code><br>
After changing this file do a <b>kill -HUP pid</b> where pid is the pid of the
inetd process.
<LI>FreeBSD: edit the telnet line in /etc/inetd.conf:<BR>
<code>telnet stream tcp nowait root /usr/libexec/telnetd telnetd -p /opt/mbse/bin/mblogin</code><br>
After changing this file do a <b>kill -HUP pid</b> where pid is the pid of the
inetd process.
<LI>NetBSD: append a line in /etc/gettytab just below the line with the default
entry:<br>
<code>mbsebbs:cd:ck:np:lo=/opt/mbse/bin/mblogin:sp#38400:</code><br>
The speed entry 38400 doesn't seem to be important.
Then edit the telnet line in /etc/inetd.conf:<BR>
<code>telnetd stream tcp nowait root /usr/libexec/telnetd telnetd -g mbsebbs</code><br>
After changing this file do a <b>kill -HUP pid</b> where pid is the pid of the
inetd process.
</UL>
Now you can test it with <code>telnet localhost</code> or from another machine
with <code>telnet your.machine.com</code>. Check if you can still do other
logins such as ssh, rlogin and login on local consoles.
<P>&nbsp;<p>
<H3>How to use from xinetd.</H3>
<P>
This is how to use xinetd, Read the section above also.
Here is a tested setups:
This has to be done as root. You have to create a service under /etc/xinetd.d
named telnet if you dont have it yet installed, if it is already installed just
modify the server_args line to match this:
<pre>
server_args = -L /opt/mbse/bin/mblogin
</pre>
Your /etc/xinetd.d/telnet file should look something like this:
<pre>
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
}
</pre>
This will replace the standard login program on xinetd 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
standard login prompt.
<p>&nbsp;<p>
<H3>How to use from mgetty</H3>
<P>
This is described with the setup for <A HREF="../mgetty.html">mgetty</A>.
<P>
<A HREF="index.htm"><IMG SRC="../images/larrow.png" ALT="Index" Border="0">Back to index</A>&nbsp;
<A HREF="../index.htm"><IMG SRC="../images/b_arrow.png" ALT="Main" Border="0">Back to Main index</A>
</BLOCKQUOTE>
</BODY>
</HTML>

119
html/programs/mbmon.html Normal file
View File

@@ -0,0 +1,119 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<HTML>
<!-- $Id: mbmon.html,v 1.9 2003/11/08 19:57:26 mbroek Exp $ -->
<HEAD>
<META http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<META http-equiv="Content-Style-Type" content="text/css">
<META NAME="Language" content='en'>
<META name="author" lang="en" content="Michiel Broek">
<META name="copyright" lang="en" content="Copyright Michiel Broek">
<META name="description" lang="en" content="MBSE BBS Manual">
<META name="keywords" lang="en" content="MBSE BBS, MBSE, BBS, manual, fido, fidonet, gateway, tosser, mail, tic, mailer">
<TITLE>MBSE BBS Programs - mbmon - MBSE BBS Monitor.</TITLE>
<LINK rel=stylesheet HREF="../manual.css">
</HEAD>
<BODY>
<BLOCKQUOTE>
<div align=right><h5>Last update 28-Aug-2003</h5></div>
<div align=center><h1>mbmon - MBSE BBS Monitor</H1></div>
<H3>Sysnopsis.</H3>
<P>
<code><strong>mbmon</strong></code>
<P>&nbsp;<P>
<H3>Description.</H3>
<P>
<strong>mbmon</strong> is the monitor program so that you can see what is
happening on your bbs. It can show all processes and actions of all programs,
show system statitistics, disk useage, and the last callers list.
<strong>mbmon</strong> must run on the same system where the bbs is. When
started it will also report that the sysop is present on the system for chat so
that users of your bbs can page you for a chat. If a user pages you, this will
be shown in every screen of <strong>mbmon</strong> and a beep will sound every
few seconds.<BR>
<TABLE align=center width="90%" border=0 cellspacing=0 cellpadding=5>
<TR>
<TD align=center>
<A HREF='../images/mbmon1.png'>
<IMG border=0 SRC='../images/mbmon1-tn.png' ALT='A user is paging'></A><BR>
<Div align='center'>Main menu, a user is paging.</Div>
</TD>
<TD align=center>
<A HREF='../images/mbmon2.png'>
<IMG border=0 SRC='../images/mbmon2-tn.png' ALT='chat with a user'></A><BR>
<Div align='center'>Chat with a user.</Div>
</TD>
</TR>
</TABLE>
<P>&nbsp;<P>
<H3>Environment.</H3>
<P>
In order to run <strong>mbmon</strong> you must set the global variable
<strong>$MBSE_ROOT</strong>. This variable must point to the root directory
of the bbs structure.
<P>&nbsp;<p>
<H3>Menu 1.</H3>
<P>
This screen shows the running bbs programs and what they are doing.
<P>&nbsp;<P>
<H3>Menu 2.</H3>
<P>
This screen displays the actual mbtask server status and some internal
variables. The left side of the screen are more statistics and counters, the
right side displays the actual bbs open status, Zone Mail Hour status, if
Internet is alive, if internet is needed, if mbtask is internal running and the
system load average. Consult this screen if you think mbse doesn't run.
<P>&nbsp;<P>
<H3>Menu 3.</H3>
<P>
This screen displays the filesystem usage. Removeable filesystems such as CD's are not displayed,
only filesystems that the bbs could use.
<P>&nbsp;<P>
<H3>Menu 4.</H3>
<P>
This screen shows some bbs information.
<P>&nbsp;<P>
<H3>Menu 5.</H3>
<P>
This menus shows the lastcallers of the bbs. It shows the username, location,
userlevel, the device they logged in from, the starttime, the duration, the
number of calls, the linespeed and the actions they have done.
The action fields mean:
<b>H</b>idden, <B>D</b>ownload, <b>U</b>pload, <b>R</b>ead messages, <b>P</b>ost
messages, <b>C</b>hat, <b>O</b>ffline reader, <b>E</b>xternal door.
<P>&nbsp;<P>
<H3>Menu 6.</H3>
<P>
Chat with any user. Using this menu you enter the chatserver and you can chat in
any channel just as the users of your bbs can do. The chatserver works just like
an IRC server. Type /HELP for help.
<P>&nbsp;<P>
<H3>Menu 7.</H3>
<P>
Respond to a sysop page. This is actually the same as chat with any user, the
only difference is that you will join channel #sysop immediatly. If the user is
not yet connected after his page, he will also be connected to the channel as
soon as possible.
<P>&nbsp;<P>
<H3>Menu 8.</H3>
<P>
This shows the software information.
<P>
<A HREF="index.htm"><IMG SRC="../images/larrow.png" ALT="Index" Border="0">Back to index</A>&nbsp;
<A HREF="../index.htm"><IMG SRC="../images/b_arrow.png" ALT="Main" Border="0">Back to Main index</A>
</BLOCKQUOTE>
</BODY>
</HTML>

93
html/programs/mbmsg.html Normal file
View File

@@ -0,0 +1,93 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<HTML>
<!-- $Id: mbmsg.html,v 1.5 2003/11/08 18:49:36 mbroek Exp $ -->
<HEAD>
<META http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<META http-equiv="Content-Style-Type" content="text/css">
<META NAME="Language" content='en'>
<META name="author" lang="en" content="Michiel Broek">
<META name="copyright" lang="en" content="Copyright Michiel Broek">
<META name="description" lang="en" content="MBSE BBS Manual">
<META name="keywords" lang="en" content="MBSE BBS, MBSE, BBS, manual, fido, fidonet, gateway, tosser, mail, tic, mailer">
<TITLE>MBSE BBS Programs - mbmsg - Message Base Utility.</TITLE>
<LINK rel=stylesheet HREF="../manual.css">
</HEAD>
<BODY>
<BLOCKQUOTE>
<div align="right"><h5>Last update 30-Jan-2001</h5></div>
<div align="center"><H1>mbmsg - Message Base Utility</H1></div>
<H3>Sysnopsis.</H3>
<P>
<code><strong>mbmsg</strong> [commands] &lt;options&gt;</code>
<P>&nbsp;<P>
<H3>Description.</H3>
<P>
<strong>mbmsg</strong>
is the message base utility program for mbsebbs. In order to run mbmsg you
must have started <strong>mbsed</strong>,
this is the deamon which controls all bbs activities.
<P>
The main purpose of <strong>mbmsg</strong>
is to link messages after tossing mail, and to maintain the size of the message
bases and the age of the messages. The best way to do the maintenance is to
run <strong>mbmsg</strong>
from the crontab. example:
<pre>
30 05 * * * export MBSE_ROOT=/bbs; /bbs/bin/mbmsg kill pack link -quiet
</pre>
Another purpose is to automatic post messages in message areas. Echomail and
netmail is possible.
<P>&nbsp;<P>
<H3>Environment.</H3>
<P>
In order to run <strong>mbmsg</strong> you must set the global variable
<strong>$MBSE_ROOT</strong>. This variable must point to the root directory
of the bbs structure. The main configuration file <strong>config.data</strong>
must be present in the ~/etc directory.
<P>&nbsp;<P>
<H3>Commands.</H3>
<P>
<code><strong>mbmsg</strong> link</code> Link all messages by subject ignoring
Re: in the subject lines. You should run this after tossing or scanning mail.
<p>
<code><strong>mbmsg</strong> kill</code> Kill messages in areas that have the
<strong>age</strong> set or the <strong>maximum</strong> messages set.
A setting of 0 is ignored. The messages are not removed from the message base,
they are only marked as deleted.
<P>
<code><strong>mbmsg</strong> pack</code> This command actualy removes the
messages who have the deleted flag set.
The lastread pointers are updated and the messages renumbered. After this
command there is no way you can recover your messages, except from backups.
<P>
<code><strong>mbmsg</strong> post &lt;to&gt; &lt;#&gt; &lt;subj&gt; &lt;file&gt; &lt;flavor&gt;
</code> This command posts a message in numbered area. If a field
consists of more then one word it must be surounded with quotes.
The <strong>to </strong> field can be "Michiel Broek" for a full name or
"Michiel_Broek@f16.n2801.z2.fidonet" for netmail addressing. Look out:
you need underscore between the firstname and lastname, no spaces.
Flavor can be one or more of the characters "c", "i", "h" or "p" to set the Crash,
Immediate, Hold or Private flags.
If no flavor is needed, use the - (minus sign) as a placeholder.
<p>&nbsp;<P>
<H3>Options.</H3>
<P>
<code><strong>mbmsg</strong> [command] -area &lt;#&gt;</code>
Process only one area &lt;#&gt; number.
<P>
<code><strong>mbmsg</strong> [command] -quiet</code> Quiet mode,
no screen output. Use this switch if you run <strong>mbmsg</strong>
from the crontab.
<P>
<A HREF="index.htm"><IMG SRC="../images/larrow.png" ALT="Index" Border="0">Back to index</A>&nbsp;
<A HREF="../index.htm"><IMG SRC="../images/b_arrow.png" ALT="Main" Border="0">Back to Main index</A>
</BLOCKQUOTE>
</BODY>
</HTML>

68
html/programs/mbnntp.html Normal file
View File

@@ -0,0 +1,68 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<HTML>
<!-- $Id: mbnntp.html,v 1.3 2005/08/26 21:29:37 mbse Exp $ -->
<HEAD>
<META http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<META http-equiv="Content-Style-Type" content="text/css">
<META NAME="Language" content='en'>
<META name="author" lang="en" content="Michiel Broek">
<META name="copyright" lang="en" content="Copyright Michiel Broek">
<META name="description" lang="en" content="MBSE BBS Manual">
<META name="keywords" lang="en" content="MBSE BBS, MBSE, BBS, manual, fido, fidonet, gateway, tosser, mail, tic, mailer">
<TITLE>MBSE BBS Programs - mbnntp - News server.</TITLE>
<LINK rel=stylesheet HREF="../manual.css">
</HEAD>
<BODY>
<BLOCKQUOTE>
<div align="right"><h5>Last update 26-Aug-2005</h5></div>
<div align="center"><H1>mbnntp - News server</H1></div>
<H3>Synopsis.</H3>
<P>
<code><strong>mbnntp</strong></code> You should not run this from the
commandline, instead it should be run by <b>inetd</b> or <b>xinetd</b>.
<P>&nbsp;<P>
<H3>Description.</H3>
<P>
<strong>mbnntp</strong> is a RFC977 and RFC2980 compatible news server.
The purpose is to make echomail available to newsreader clients so that bbs
users can use their favourite newsreader to participate in echomail. It will
not make your newsgroups available if you have any, the bbs user can get these
directly from the internet. The bbs echomail areas are only made available if
they have a valid newsgroup name set in the area setup. If this is not alread
set, invent your own newsgroup name. For example the WWB echomail area MBSE
could be set as fido.wwb.mbse, but you can use anything as long as it doesn't
conflict with real newsgroups.
<P>
To use the server, the user must login in the
news server with his bbs unix name and password, thus the user must exist on the
bbs. The access to the areas is the same as if the user would be logged into the
bbs.
<P>&nbsp;<P>
<H3>Installation.</H3>
<P>
If installed from <b>inetd</b> add the following line to
<code>/etc/inetd.conf</code>:
<pre>
nntp stream tcp nowait mbse /opt/mbse/bin/mbnntp mbnntp
</pre>
<P>&nbsp;<P>
<H3>Building.</H3>
<P>
If you did run <code>./configure --enable-newsgate</code> when you compiled the
mbse package, <b>mbnntp</b> will be build as a not working program. This is
intended to prevent loops between real news and echomail. With normal builds
without <code>--enable-newsgate</code> (recommended) <b>mbnntp</b> will function
as newsserver.
<P>
<A HREF="index.htm"><IMG SRC="../images/larrow.png" ALT="Index" Border="0">Back to index</A>&nbsp;
<A HREF="../index.htm"><IMG SRC="../images/b_arrow.png" ALT="Main" Border="0">Back to Main index</A>
</BLOCKQUOTE>
</BODY>
</HTML>

110
html/programs/mbout.html Normal file
View File

@@ -0,0 +1,110 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<HTML>
<!-- $Id: mbout.html,v 1.8 2003/11/08 20:15:31 mbroek Exp $ -->
<HEAD>
<META http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<META http-equiv="Content-Style-Type" content="text/css">
<META NAME="Language" content='en'>
<META name="author" lang="en" content="Michiel Broek">
<META name="copyright" lang="en" content="Copyright Michiel Broek">
<META name="description" lang="en" content="MBSE BBS Manual">
<META name="keywords" lang="en" content="MBSE BBS, MBSE, BBS, manual, fido, fidonet, gateway, tosser, mail, tic, mailer">
<TITLE>MBSE BBS Programs - mbout - The Outbound Manager.</TITLE>
<LINK rel=stylesheet HREF="../manual.css">
</HEAD>
<BODY>
<BLOCKQUOTE>
<div align="right"><h5>Last update 17-Mar-2001</h5></div>
<div align="center"><H1>mbout - The Outbound Manager</H1></div>
<H3>Synopsis.</H3>
<P>
<code><strong>mbout</strong> [command] &lt;params&gt; &lt;options&gt;</code>
<P>&nbsp;<P>
<H3>Description.</H3>
<P>
<strong>mbout</strong> is the outbound manager for MBSE BBS. It can ask
information from the nodelists, create and remove polls, request and send files and
display the outbound status. Most of the tasks such as create and remove
polls should be done from the crontab.
<P>&nbsp;<P>
<H3>Environment.</H3>
<P>
In order to run <strong>mbout</strong> you must set the global variable
<strong>$MBSE_ROOT</strong>. This variable must point to the root directory
of the bbs structure. The main configuration file <strong>config.data</strong>
must be present in the ~/etc directory.
<P>&nbsp;<P>
<H3>Commands.</H3>
<P>
<code><strong>mbout</strong> att &lt;node&gt; &lt;flavor&gt; &lt;file&gt;</code> will attach
the specified file to the specified node. The node should be in the format
f2802.n280.z2, flavor should be crash, immediate, normal or hold. Only the first
letter of the flavor parameter is needed.
If the node is not in the nodelist, the status is Down or Hold, then this command fails.
To non-CM nodes you mus use the <strong>Immediate</strong> flavor if you want to send the file direct.
The flavors Hold and Normal are still allowed. The file must be in the directory range
from where file attaches are allowed.
<P>
<code><strong>mbout</strong> poll [node..node]</code> creates poll requests in the outbound
for one or more nodes. The node should be in the format f2802.n280.z2. The semafore
<strong>scanout</strong> is created so that the mailer will start calling.
The mailer will handle the poll request as if it should deliver immediate mail,
so the node will be called as long as the poll request exists, even to nodes which are not CM.
The error counter for the node to poll will be reset to zero, so a node that was
previous marked undialable will be called again.
If a call to a node is successfull, the poll file will be removed by <strong>mbcico</strong>.
If a node is not in the nodelist or has the status Down or Hold, no poll will be created for that node.
<P>
<code><strong>mbout</strong> stop [node..node]</code> removes poll requests that are
leftover when polling nodes didn't succeed. There is no check if the node is
in the nodelist or has the status Down or Hold, the poll is always removed.
<P>
<code><strong>mbout</strong> req &lt;node&gt; &lt;file&gt; [file..file]</code> creates
filerequests to a node. One or more filenames may be given including wildcards.
It is not possible to do update or password protected uploads yet. If there
is already a requestlist for that node, the new requests will be added. This
command does not call a node, you need to create a poll request to make the
actual call. This is also practical if you want some files from your uplink,
just make the requests and the actual request is send when your normal
scheduled poll to your uplink is processed.
<P>
<code><strong>mbout</strong> reset [node..node]</code> resets the nodes "try"
counter to zero. So if a node is undiable, the counter is 30 or more, then by
resetting this counter that node will be called again. The outbound is rescanned
after this command so that calling will start immediatly.
<P>
<code><strong>mbout</strong> stat</code> shows the status of the mailer outbound.
This status is also written to the logfile.
<P>
<code><strong>mbout</strong> node &lt;node&gt;</code> will show the nodelist information for
a certain node.
<P>&nbsp;<P>
<H3>Options.</H3>
<P>
<code><strong>mbout</strong> [commands] -quiet</code> will suppress screen output. This is
usefull if you run <strong>mbout</strong> from the crontab or from background
scripts.
<P>&nbsp;<P>
<H3>Examples.</H3>
<P>
This is an example of crontab entries that writes the outbound status to the
logfile and creates and stops polling of 2 nodes.<br>
<pre>
00 00 * * * export MBSE_ROOT=/opt/mbse; $MBSE_ROOT/bin/mbout stat -quiet
00 01 * * * export MBSE_ROOT=/opt/mbse; $MBSE_ROOT/bin/mbout poll f98.n100.z92 f0.n100.z92 -quiet
00 02 * * * export MBSE_ROOT=/opt/mbse; $MBSE_ROOT/bin/mbout stop f98.n100.z92 f0.n100.z92 -quiet
</pre>
<P>
<A HREF="index.htm"><IMG SRC="../images/larrow.png" ALT="Index" Border="0">Back to index</A>&nbsp;
<A HREF="../index.htm"><IMG SRC="../images/b_arrow.png" ALT="Main" Border="0">Back to Main index</A>
</BLOCKQUOTE>
</BODY>
</HTML>

View File

@@ -0,0 +1,55 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<HTML>
<!-- $Id: mbpasswd.html,v 1.9 2005/08/27 12:06:48 mbse Exp $ -->
<HEAD>
<META http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<META http-equiv="Content-Style-Type" content="text/css">
<META NAME="Language" content='en'>
<META name="author" lang="en" content="Michiel Broek">
<META name="copyright" lang="en" content="Copyright Michiel Broek">
<META name="description" lang="en" content="MBSE BBS Manual">
<META name="keywords" lang="en" content="MBSE BBS, MBSE, BBS, manual, fido, fidonet, gateway, tosser, mail, tic, mailer">
<TITLE>MBSE BBS Programs - mbuseradd - The useradd wrapper.</TITLE>
<LINK rel=stylesheet HREF="../manual.css">
</HEAD>
<BODY>
<BLOCKQUOTE>
<div align="right"><h5>Last update 27-Aug-2005</h5></div>
<div align="center"><H1>mbpasswd - The password wrapper.</H1></div>
<H3>Description.</h3>
<P>
<strong>mbpasswd</strong> is the wrapper for the <strong>passwd</strong> program
is present on all GNU/Linux systems. To use <b>passwd</b> to change the password of
another user is only allowed by <b>root</b>. The mbpasswd program overcomes this limitation.
The wrapper <b>mbpasswd</b> is run from the bbs by user <b>mbse</b> when a new
user is being registered to set his password. It can also be started from the
bbs when an existing user changes his password. If you as sysop use
<strong>mbsetup</strong> to change a users password it will be used too.
His password under Unix is then always the same as his password in the bbs program.
This is necessary for the user to be able to get his email using the pop3 protocol.<P>
You never need to run <strong>mbpasswd</strong> by hand, in fact it is protected so that
it can only be started by the bbs or mbsetup.
<P>&nbsp;<P>
<H3>Environment.</H3>
<P>
<strong>mbpasswd</strong> must be installed setuid root and setgid root, ls -la looks like this:<br>
<pre>
-rws--s--x 1 root root 6644 Jun 26 21:23 /opt/mbse/bin/mbpasswd*
</pre>
<P>&nbsp;<P>
<H3>Commands.</H3>
<P>
Not mentioned here because <b>mbpasswd</b> is only called by other programs,
running manually is not supported.
<P>
<A HREF="index.htm"><IMG SRC="../images/larrow.png" ALT="Index" Border="0">Back to index</A>&nbsp;
<A HREF="../index.htm"><IMG SRC="../images/b_arrow.png" ALT="Main" Border="0">Back to Main index</A>
</BLOCKQUOTE>
</BODY>
</HTML>

147
html/programs/mbsebbs.html Normal file
View File

@@ -0,0 +1,147 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<HTML>
<!-- $Id: mbsebbs.html,v 1.8 2005/09/03 14:25:39 mbse Exp $ -->
<HEAD>
<META http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<META http-equiv="Content-Style-Type" content="text/css">
<META NAME="Language" content='en'>
<META name="author" lang="en" content="Michiel Broek">
<META name="copyright" lang="en" content="Copyright Michiel Broek">
<META name="description" lang="en" content="MBSE BBS Manual">
<META name="keywords" lang="en" content="MBSE BBS, MBSE, BBS, manual, fido, fidonet, gateway, tosser, mail, tic, mailer">
<TITLE>MBSE BBS Programs - mbsebbs - The main BBS program.</TITLE>
<LINK rel=stylesheet HREF="../manual.css">
</HEAD>
<BODY>
<BLOCKQUOTE>
<div align="right"><h5>Last update 03-Sep-2005</h5></div>
<div align="center"><H1>mbsebbs - The main BBS program</H1></div>
<H3>Synopsis.</H3>
<P>
<code><strong>mbsebbs</strong></code>
<P>&nbsp;<P>
<H3>Description.</H3>
<P>
<strong>mbsebbs</strong> is the main bbs program for the users.
To be able to use the bbs, the bbs mustbe set open with <strong>mbstat open</strong>
or users may not login. This is normally done at system boot.
Also Zone Mail Hour is honored if the user logs in
on a tty that has the <strong>honor ZMH</strong> flag set to true. If it
is ZMH and the ZMH flag is true, the user will be kicked out of the bbs. You
should only set this flag on the modem lines where you need to be available
for ZMH if your "Fidonet" network requires that.
<P>
The first visible action is to show the logo.ans file. Because it is not
known who is trying to login, you only need to place this file in the
default language directory.
<P>
The next check is to see if the user is allowed to login on the tty he
currently is on.
If this tty is not available or is not in your setup, the user is kicked
out. If he is allowed to login, a message is shown at which port he is on,
unless you have turned this feature off in the setup.
<P>
If the user login is successfull, his favourite language will be loaded.
Then it is checked if the user is the Sysop, if so, the Sysop flag is set.
If the users Date of Birth is invalid, he is forced to enter the right
Date of Birth.
The next check is to see if the user has passed the expiry date, this is a
usefull feature for systems with donating users.
Finally the access limits are set for the user and time remaining for today and
download limits are set.
<P>
After successfull login the user can be presented with a bunch of advertising
screens. I will only name the screens without filename extension, as these
screens are searched for in the following order;<br>
<ol>
<li>filename.ans in the users favourite language directory.
<li>filename.ans in the default language directory.
<li>filename.asc in the users favourite language directory.
<li>filename.asc in the default language directory.
<li>If nothing is found, nothing is displayed.
</ol>
Here is the list of displayed screens:
<ol>
<li><strong>mainlogo</strong>. Here you can put a logo or something.
<li><strong>welcome</strong>. This screen can contain information about the session
the user has, his download limits, time left etc.
<li><strong>welcome1</strong> is shown if the user has show bulletins set to true.
<li><strong>welcome2</strong> is shown if the user has show bulletins set to true.
<li><strong>welcome3</strong> is shown if the user has show bulletins set to true.
<li><strong>welcome4</strong> is shown if the user has show bulletins set to true.
<li><strong>welcome5</strong> is shown if the user has show bulletins set to true.
<li><strong>welcome6</strong> is shown if the user has show bulletins set to true.
<li><strong>welcome7</strong> is shown if the user has show bulletins set to true.
<li><strong>welcome8</strong> is shown if the user has show bulletins set to true.
<li><strong>welcome9</strong> is shown if the user has show bulletins set to true.
<li><strong>birthday</strong> is shown if the user logs in at his birthday and if he
has show bullentins set to true.
<li><strong>dd-mm</strong> is shown if <strong>dd</strong> is the date of today and
<strong>mm</strong> is the current month and if the user has show bulletins
set to true.
<li><strong>sec20</strong> is shown if the user has the security level in the
filename, level 20 in this example. Als the display bulletins must be set to
true.
<li><strong>news</strong> is shown if the user has the display bulletins set to
true.
<li><strong>onceonly</strong> is shown only if the user has never seen this screen,
the test is to compare the users last login date against the date of this file.
</ol>
<P>
After all these screens the users Offline Reader areas are checked to see if
you as sysop didn't change the message areas. If you made changes, the users
setup is adjusted and he will be notified. This means he sees a list
with deleted areas and new areas.
<P>
Next if the user has newmail scan set to true all message bases are checked to
see if the user has new mail. This includes a check to see if he has Unix mail.
If there is Unix mail, those mails are retrieved from the POP3 server and stored
in his private mailbox.
If there is new mail for the user, the user sees a list of areas with the messages
in it and he is offered to read and reply these messages.
<P>
Then if the user has show newfiles set to true and he is not a new bbs user
he will see a list of new files you have on your bbs. During this display
he can tag files for later download.
<P>
The final setup is to set the users "do not disturb" flag and then the menu
system is started. The menu system will run forever, until the user chooses
to logoff, the connection is lost or his daily timelimit is reached. For the
possibilities and setup of the menus see
<A HREF="../menus/index.htm">MBSE BBS Menu System</A>
<P>&nbsp;<P>
<H3>Environment.</H3>
<P>
In order to run <strong>mbsebbs</strong> you must set the global variable
<strong>$MBSE_ROOT</strong>. This variable must point to the root directory
of the bbs structure. The main configuration file <strong>config.data</strong>
must be present in the ~/etc directory.
<P>
If the environment variable <strong>CONNECT</strong> is present, a log entry
will be made with the connect speed.
<P>
If the environment variable <strong>CALLER_ID</strong> is present, a log entry
will be made with the caller id.
<P>
The environment variable <strong>LOGNAME</strong> must contain the unix
username. This is set by the <b>mblogin</b> program.
<P>
If the environment variable <strong>REMOTEHOST</strong> is present, a log entry
will be made with the name or IP address of the remote host.
<P>
If the environment variable <strong>TERM</strong> is present, a log entry
will be made with the terminal type of the remote user.
<P>
<P>&nbsp;<P>
<A HREF="index.htm"><IMG SRC="../images/larrow.png" ALT="Index" Border="0">Back to index</A>&nbsp;
<A HREF="../index.htm"><IMG SRC="../images/b_arrow.png" ALT="Main" Border="0">Back to Main index</A>
</BLOCKQUOTE>
</BODY>
</HTML>

49
html/programs/mbseq.html Normal file
View File

@@ -0,0 +1,49 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<HTML>
<!-- $Id: mbseq.html,v 1.5 2003/11/08 18:49:36 mbroek Exp $ -->
<HEAD>
<META http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<META http-equiv="Content-Style-Type" content="text/css">
<META NAME="Language" content='en'>
<META name="author" lang="en" content="Michiel Broek">
<META name="copyright" lang="en" content="Copyright Michiel Broek">
<META name="description" lang="en" content="MBSE BBS Manual">
<META name="keywords" lang="en" content="MBSE BBS, MBSE, BBS, manual, fido, fidonet, gateway, tosser, mail, tic, mailer">
<TITLE>MBSE BBS Programs - mbseq - Sequence number creator.</TITLE>
<LINK rel=stylesheet HREF="../manual.css">
</HEAD>
<BODY>
<BLOCKQUOTE>
<div align="right"><h5>Last update 31-Jan-2001</h5></div>
<div align="center"><H1>mbseq - Sequence number creator</H1></div>
<H3>Synopsis.</H3>
<P>
<code><strong>mbseq</strong></code>
<P>&nbsp;<P>
<H3>Description.</H3>
<P>
<strong>mbseq</strong> writes a eight character hexadecimal unique sequence
number to the stdout. This number is received from <strong>mbsed</strong>
which keeps track of the generated sequence numbers. This written number can
be used in shell scripts to create unique filenames for Fidonet .pkt files,
for example:
<P>
<code>
cp temp.pkt `mbseq`.pkt
</code>
<P>&nbsp;<P>
<H3>Bugs.</H3>
<P>
Nah, it's only 50 lines code, what could go wrong?
<P>
<A HREF="index.htm"><IMG SRC="../images/larrow.png" ALT="Index" Border="0">Back to index</A>&nbsp;
<A HREF="../index.htm"><IMG SRC="../images/b_arrow.png" ALT="Main" Border="0">Back to Main index</A>
</BLOCKQUOTE>
</BODY>
</HTML>

View File

@@ -0,0 +1,62 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<HTML>
<!-- $Id: mbsetup.html,v 1.7 2003/11/08 18:49:36 mbroek Exp $ -->
<HEAD>
<META http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<META http-equiv="Content-Style-Type" content="text/css">
<META NAME="Language" content='en'>
<META name="author" lang="en" content="Michiel Broek">
<META name="copyright" lang="en" content="Copyright Michiel Broek">
<META name="description" lang="en" content="MBSE BBS Manual">
<META name="keywords" lang="en" content="MBSE BBS, MBSE, BBS, manual, fido, fidonet, gateway, tosser, mail, tic, mailer">
<TITLE>MBSE BBS Programs - mbsetup - The Setup Program.</TITLE>
<LINK rel=stylesheet HREF="../manual.css">
</HEAD>
<BODY>
<BLOCKQUOTE>
<div align="right"><h5>Last update 05-May-2002</h5></div>
<div align="center"><H1>mbsetup - The Setup Program</H1></div>
<H3>Synopsis.</H3>
<P>
<code><strong>mbsetup</strong> [init]</code>
<P>&nbsp;<P>
<H3>Description.</H3>
<P>
<strong>mbsetup</strong> is the setup program for MBSE BBS. It should be run
only by user <strong>mbse</strong> and it fails to start if you are not.
If it is started with the optional paramater <b>init</b> only the databases are
initialized. This is automagic done by <b>mbtask</b> when you start the system
for the very first time. You should never need to use this switch.
When <b>mbsetup</b> is started without arguments the databases will be checked
and initialized before the main screen is displayed.
Both methods are being used to make sure all needed databases excist.
For a detailed description of all setup options see
<A HREF="../setup/index.htm">MBSE BBS Setup Guide</A><br>
<b>mbsetup</b> uses locking to protect the system databases. Some setup menus
can only be entered if the bbs is free, ie. no users logged on, no mailer
sessions, not tossing mail etc. If the bbs is free, then these menus can be
entered and the bbs will be closed. No users can login, tossers do not run etc.
Only mailer calls are still accepted. So be carefull not to stay too long in
these menus, you are blocking normal bbs use. In the top status bar this
situation is displayed.
<P>&nbsp;<P>
<H3>Environment.</H3>
<P>
In order to run <strong>mbsetup</strong> you must set the global variable
<strong>$MBSE_ROOT</strong>. This variable must point to the root directory
of the bbs structure. The main configuration file <strong>config.data</strong>
must be present in the ~/etc directory. If it is not present, ie you run
<strong>mbsetup</strong> for the first time, a default
<strong>config.data</strong> will be created. This will also happen with
several other databases.
<P>
<A HREF="index.htm"><IMG SRC="../images/larrow.png" ALT="Index" Border="0">Back to index</A>&nbsp;
<A HREF="../index.htm"><IMG SRC="../images/b_arrow.png" ALT="Main" Border="0">Back to Main index</A>
</BLOCKQUOTE>
</BODY>
</HTML>

79
html/programs/mbstat.html Normal file
View File

@@ -0,0 +1,79 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<HTML>
<!-- $Id: mbstat.html,v 1.5 2003/11/08 18:49:36 mbroek Exp $ -->
<HEAD>
<META http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<META http-equiv="Content-Style-Type" content="text/css">
<META NAME="Language" content='en'>
<META name="author" lang="en" content="Michiel Broek">
<META name="copyright" lang="en" content="Copyright Michiel Broek">
<META name="description" lang="en" content="MBSE BBS Manual">
<META name="keywords" lang="en" content="MBSE BBS, MBSE, BBS, manual, fido, fidonet, gateway, tosser, mail, tic, mailer">
<TITLE>MBSE BBS Programs - mbstat - MBSE BBS Status Changer.</TITLE>
<LINK rel=stylesheet HREF="../manual.css">
</HEAD>
<BODY>
<BLOCKQUOTE>
<div align="right"><h5>Last update 07-Jul-2001</h5></div>
<div align="center"><H1>mbstat - MBSE BBS Status Changer</H1></div>
<H3>Synopsis.</H3>
<P>
<code><strong>mbstat</strong> [commands] &lt;options&gt;</code>
<P>&nbsp;<P>
<H3>Description.</H3>
<P>
<strong>mbstat</strong> changes the bbs status between open and close, can wait
for all users to logoff and wait for critical utilities to stop their actions.
<P>&nbsp;<P>
<H3>Environment.</H3>
<P>
In order to run <strong>mbstat</strong> you must set the global variable
<strong>$MBSE_ROOT</strong>. This variable must point to the root directory
of the bbs structure. The main configuration file <strong>config.data</strong>
must be present in the ~/etc directory.
<P>&nbsp;<P>
<H3>Commands.</H3>
<P>
<code><strong>mbstat</strong> semafore scanout</code> will set the internal
semafore <i>scanout</i> in the <b>mbtask</b> daemon. The following semafore's
are valid: scanout, mailout, mailin, mbindex, reqindex, msglink.
<P>
<code><strong>mbstat</strong> close</code> will close the bbs for users.
Users that are just logging in to the bbs will be thrown out after a short message.
Users already logged in will be thrown out when they pass by a menu prompt.
So users who are doing file transfers can finish their transfers before being disconnected.
<P>
<code><strong>mbstat</strong> open</code> opens the bbs for users.
This should be run from one of the system startup scripts right after you started
<strong>mbsed</strong>. If you installed everything as it should this
command is already executed at system startup.
<P>
<code><strong>mbstat</strong> wait</code> will
wait for the bbs to become free. This includes a check for utilities that
do critical actions so they can finish their job without corrupting the bbs
databases. The default is to wait 60 minutes. If the semafore
<strong>upsdown</strong> exists it will wait only 30 seconds.
<P>
You should run <strong>mbstat close wait</strong> in your system shutdown script so
that the system shutdown will wait for a clean shutdown of the bbs before
the rest of your system goes down. If you installed everything as it should
be then these commands are already installed in your system shutdown scripts.
<P>
<H3>Options.</H3>
<P>
<code><strong>mbstat</strong> [command] -quiet</code> will supress screen output.
This is good for using mbstat in scripts.
<P>
<A HREF="index.htm"><IMG SRC="../images/larrow.png" ALT="Index" Border="0">Back to index</A>&nbsp;
<A HREF="../index.htm"><IMG SRC="../images/b_arrow.png" ALT="Main" Border="0">Back to Main index</A>
</BLOCKQUOTE>
</BODY>
</HTML>

432
html/programs/mbtask.html Normal file
View File

@@ -0,0 +1,432 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<HTML>
<!-- $Id: mbtask.html,v 1.16 2008/02/10 13:29:42 mbse Exp $ -->
<HEAD>
<META http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<META http-equiv="Content-Style-Type" content="text/css">
<META NAME="Language" content='en'>
<META name="author" lang="en" content="Michiel Broek">
<META name="copyright" lang="en" content="Copyright Michiel Broek">
<META name="description" lang="en" content="MBSE BBS Manual">
<META name="keywords" lang="en" content="MBSE BBS, MBSE, BBS, manual, fido, fidonet, gateway, tosser, mail, tic, mailer">
<TITLE>MBSE BBS Programs - mbtask - MBSE BBS Taskmanager.</TITLE>
<LINK rel=stylesheet HREF="../manual.css">
</HEAD>
<BODY>
<BLOCKQUOTE>
<div align="right"><h5>Last update 10-Feb-2008</h5></div>
<div align="center"><H1>mbtask - MBSE BBS Taskmanager</H1></div>
<H3>Sysopsis.</H3>
<P>
<code><strong>mbtask</strong> [-nd]</code>
<P>&nbsp;<P>
<H3>Description.</H3>
<P>
<strong>mbtask</strong> is the taskmanager for the whole MBSE BBS system.
This deamon keeps track of all client actions,
does the logging for the clients, does database locking, authorizes clients,
set/resets users "do not disturb flags", sends and receives chat messages,
keeps track of Zone Mail Hour, the status of the mail and files in the outbound,
and the BBS open/close status.
Communication between <strong>mbsed</strong> and the client programs is done via Unix
Datagram sockets. The protocol used to communicate between <strong>mbtask</strong>
and the clients is explained later.
This daemon also watches the semafore directory for some special files.
It also starts programs when they are needed.
The very first time <b>mbtask</b> is started it creates a default config.data and task.data,
the main configuration and task configuration files.
Then it calls <b>mbsetup init</b> to build the default databases.
<b>mbtask</b> should be started at system boot so the bbs system will start working.
The init script that is installed on your system will do that.
<P>
After startup and initalization <b>mbtask</b> runs internally once per second forever.
If there is nothing to do then this time will slowly increase upto 5 seconds. This time will be reset
to one second as soon as there is work to be done. The actual work is to check a number of external and
internal semafore's and act on these.
But before any program is started a number of things are checked:
<OL>
<LI>Check the system's load average. If it is too busy the processing of background
tasks is suspended until your system load drops.
The default setup is set at 1.50 but you can change that with mbsetup. Experience
will learn what the best value will be and I need some feedback on that.<br>
<LI>The UPS semafore <b>upsalarm</b> will be checked. This means that the system is running on
battery power and no new jobs are started.
<LI>The UPS semafore <b>upsdown</b> will be checked. This is the fatal one, if
this one exists <b>mbtask</b> will try to stop all current running jobs.
If there are no jobs left running then <b>mbtask</b> will stop itself.
The upsdown semafore means that the system
will shutdown and power off, that's why it's fatal and there is no way back.<br>
<LI>The status of the bbs will be checked, is it open or closed. If it is closed, no
jobs will be started.
<LI>The Zone Mail Hour is checked. If ZMH begins the semafore's <b>zmh</b> is
created.
If ZMH ends the semafore <b>zmh</b> is removed.
<LI>Each twenty seconds a ping is send to the IP addresses defined with <b>mbsetup</b> to
check if the internet can be reached. If both ping addresses fail, it is assumed that
the internet can't be reached. After a status change, the outbound will be
scanned.
<LI>Scan the mailer outbound for work. This builds a list of nodes with mail
in the outbound and sets the necessary flags on nodes who may be called.
If a node needs to be called, <b>mbtask</b> will spawn <b>mbcico</b> to
call this node. The number of free modem and ISDN ports and the maximum
number of TCP/IP sessions and already registered sessions, determine
howmany sessions will be started. The sessions will be started at
intervals of 20 seconds.
It will also set a time when something will change for a node, ie. a zone
mail hour is reached, or a mail window for a node with Txx flags is
reached. Internally this scheduler runs at the UTC clock because Fidonet
has all times defined in UTC.
</OL>
Each new minute the timestamp of semafore <b>mbtask.last</b> is updated so that you can check that
<b>mbtask</b> is running. Also each minute is checked if the system configuration files are
changed, is so they are reloaded. There is no need to stop and start <b>mbtask</b> if you made
changes to the system configuration.
Then all kind of internal semafore's will be checked. The commands that are executed have default
values, but they can be changed wit mbsetup. The commands can be scripts as well.
The checks and actions are:
<P>
<table border=1 bgcolor='#FFFF99' cellspacing=0 cellpadding=3>
<tr>
<th align=left bgcolor='#000080'><font color='#FFFFFF'>Semafore</font></th>
<th align=left bgcolor='#000080'><font color='#FFFFFF'>Speed</font></th>
<th align=left bgcolor='#000080'><font color='#FFFFFF'>Tasktype</font></th>
<th align=left bgcolor='#000080'><font color='#FFFFFF'>Depends on</font></th>
<th align=left bgcolor='#000080'><font color='#FFFFFF'>Job to run</font></th>
</tr>
<tr><td>mailout</td><td>Fast</td><td>mbfido</td><td>Max. 1 mbfido task</td><td>mbfido scan web -quiet</td></tr>
<tr><td>mailin</td><td>Fast</td><td>mbfido</td><td>Max. 1 mbfido task</td><td>mbfido tic toss web -quiet</td></tr>
<tr><td>newnews</td><td>Fast</td><td>mbfido</td><td>Max. 1 mbfido task</td><td>mbfido news web -quiet</td></tr>
<tr><td>mbindex</td><td>Fast</td><td>mbindex</td><td>No other tasks</td><td>mbindex -quiet and if exist: goldnode</td></tr>
<tr><td>msglink</td><td>Fast</td><td>mbfido</td><td>No other tasks</td><td>mbmsg link -quiet</td></tr>
<tr><td>reqindex</td><td>Fast</td><td>mbfile</td><td>No other tasks</td><td>mbfile index -quiet</td></tr>
<tr><td>scanout</td><td>Slow</td><td>call</td><td>Only 1 call task</td><td>mbcico -r1</td></tr>
</table>
<P>
The Fast and Slow values mean: Fast is each second, Slow is check each 20 seconds.
As you can see, the system will not do too much at the same time. Jobs like compiling
new nodelists or create file request indexes have a very low priority. Because this
daemon checks the semafore's each second it responds much better that the old scripts
running on the cron daemon. The system will be expanded so that more outgoing calls
will be done at the same time, ie. ISDN and analogue calls, and if they are present
internet calls, will be made at the same time.
<P>
The <b>mbtask</b> program keeps also track of a unique number generator, this is
just a simple counter that is increased each time it is asked for a new number.
It will take years for the numbers to repeat. Even if the status file is lost
the chance that numbers are repeated on your system are almost zero. The first
time the counter is initialized it is set to the current unix time in seconds
since 1 januari 1970. This counter is used by several programs to create unique
.pkt filenames, msgid numbers etc.
<P>
The commandline option <b>-nd</b> is only for debugging, it allows to start
without becoming a daemon, <b>mbtask</b> will run in the foreground. This
option is only usefull for developers.
<P>&nbsp;<P>
<H3>Environment.</H3>
<P>
In order to run <strong>mbtask</strong> you must set the global variable
<strong>$MBSE_ROOT</strong>. This variable must point to the root directory
of the bbs structure.
<P>&nbsp;<P>
<H3>Security.</H3>
<P>
<strong>mbtask</strong> is installed setuid root. This is needed to initialize
a raw socket for the ping function. After that is done the privilege drops to
user <strong>mbse</strong> before the child process is created and the rest
of the initialisation is done.
The child process can never get root privileges because it is spawned by user mbse.
<P>&nbsp;<P>
<H3>Communications.</H3>
<P>
Communication between the server and the clients is established by
Unix datagram sockets. There can be only 1 server running.
The server will accept connections from clients on your local machine only.
The limit for the amount of clients that can connect to the server is set to 100.
<P>
The server creates a Unix datagram socket at startup and waits for connections.
The name of this this socket is /opt/mbse/tmp/mbtask.
When a client connects it creates a Unix datagram socket in /opt/mbse/tmp, the name is
the name of the program, added with the pid of the program. So if <b>mbcico</b> is started
with pid 2312 the socket will be /opt/mbse/tmp/mbcico2312.
<P>
All commands are 4 capital letters followed by a colon, a number indicating
how much data fields will follow. If that number is higher than zero, the
data fields are seperated with commas. The command is terminated
with a ; character. Examples are:<br>
<pre>
GCLO:0; Zero datafields command.
DOPE:1,dbname; One datafield command.
</pre>
All commands will receive a reply as soon as possible. If a
resource is temporary not available, a reply will follow too, telling
this condition. Replies can also contain optional data. Examples:<br>
<pre>
100:0; Response 100, no data.
200:1,Syntax error; One datafield.
</pre>
Because data fields in commands and replies are separated and terminated by
, and ; characters these characters need to be escaped. Also characters outside
the us-ascii range must be escaped. This is done by translating the character
to a backslash followed by the hexadecimal number of the character.
The server has a 10 minute timeout for receiving data when a connection
is established. The clients need to "ping" the server at regular intervals
to prevent a disconnect. All official MBSE BBS programs do that. The pid
send with most commands is the pid of the calling program. Since this number
is unique, it is used to keep track of the connected clients.
<P>
The commands are divided in 26 catagories, most unused at this time.
<P>
<pre>
Catagories:
Cat. Description
---- -------------------------------------------
Axxx Accounting, system monitor info etc.
Cxxx Chatting
Dxxx Disk watch
Gxxx Global commands.
Mxxx MIB commands.
Sxxx Status commands.
Group A, Accounting.
Command: AINI:5,pid,tty,uid,prg,city; Initialize connection, and who am I.
Reply: 100:1,line; Ok, linen is a logical linennumber for the bbs.
200:1,Syntax Error; Error.
Command: ADOI:2,pid,doing; What am I doing right now.
Reply: 100:0; Ok.
200:1,Syntax Error; Error.
Command: ACLO:1,pid; Close my connection.
Reply: 107:0; Connection closed.
200:1,Syntax Error; Error, connection is still open.
Command: ALOG:5,fil,prg,pid,grade,txt; Write a line of text in logfile with grade.
Reply: 100:0; Ok.
201:1,errno; Error, number in errno.
Command: ATCP:1,pid; Registrate this session as TCP/IP session.
Reply: 100:0; Ok.
200:1,Syntax Error; Error.
Command: AUSR:3,pid,uid,city; Set username and city
Reply: 100:0; Ok.
200:1,Syntax Error; Error.
Command: ADIS:2,pid,flag; Set Do Not Disturb flag.
Reply: 100:0; Ok.
200:1,Syntax Error; Error.
Command: ATIM:1,time; Set new Client/Server timer in seconds.
Reply: 100:0; Ok.
200:1,Syntax Error; Error.
Command: ADEF:0; Set Client/Server timer to default (10 minutes).
Reply: 100:0; Ok.
200:1,Syntax Error; Error.
Command: ATTY:2,pid,tty; Set new tty name.
Reply: 100:0; Ok.
200:1,Syntax Error; Error.
Group C, Chatting
Command: CIPM:1,pid; Is Personal Message present.
Reply: 100:2,fromname,message; Yes, from .. with message text.
100:0; No.
Command: CSPM:3,fromuser,touser,txt; Send personal message to user.
Reply: 100:1,n; n: 0=Ok, 1=Do not disturb, 2=Buffer full, 3=Error.
100:0; Impossible.
Command: CSYS:2,pid,1; Sysop available for chat (from mbmon).
CSYS:2,pid,0; Sysop goes away (from mbmon).
Reply: 100:0; Always Ok.
Command: CPAG:2,pid,reason; Page sysop for a chat.
Reply: 100:1,n; 1=busy, 2=sysop not available, 3=error.
100:0; Ok
Command: CCAN:1,pid; Cancel sysop page.
Reply: 100:0; Always Ok.
Command: CCKP:0; Check sysop page (from mbmon).
Reply: 100:3,pid,1,reason; Page is active.
100:3,pid,0,reason; Page is cancelled, user still online.
100:0; No page active.
Command: CISC:1,pid; Check sysop in chatmode.
Reply: 100:1,1; Yes and drop into chatmode.
100:1,0; No.
Command: CCON:4,pid,username,unixname,n; Connect to chatserver with username. n=1 user is sysop.
Reply: 100:1,error; Error with message.
100:0; Ok.
Command: CCLO:1,pid; Close chat session.
Reply: 100:1,error; Error.
100:0; Ok.
Command: CPUT:2,pid,message; Put message on chatserver.
Reply: 100:2,0,error; Error, not fatal and continue.
100:2,1,error; Error, fatal and disconnect chat.
100:0; Ok.
Command: CGET:1,pid; Get message from chatserver.
100:2,0,message; If message present.
100:2,1,error; Error and disconnect chat.
100:0; No new message.
Group D, Disk watch command.
Command: DRES:0; Reset and reread disk tables.
Reply: 100:0; Always Ok.
Command: DSPC:0; Enough free diskspace.
Reply: 100:1;n; 0=No, 1=Yes, 2=Unknown, 3=Error.
Command: DGFS:0; Get filesystem status (see note below).
100:n,data1, ..., data10; Maximum 10 filesystems datalines.
Group G, Global commands.
Command: GNOP:0; No OPerations.
Reply: 100:0; Ok.
Command: GPNG:1,data; Ping, echo data.
Reply: 100:1,data; Ping reply.
Command: GVER:0; Give server version.
Reply: 100:1,Version ....; Version reply.
Command: GSTA:0; Get complete mbsed status record. (13 fields)
Reply: 100:19,start,laststart,daily,startups,clients,tot_clients,tot_peak,syntax_errs,
com_errs,today_clients,today_peak,today_syntax,today_comerr,bbsopen,
is_zmh,do_inet,processing,system_load,sequence;
Command: GMON:1,n; Get registration info line, 1=First, 0=Next line.
Reply: 100:7,pid,tty,user,program,city,isdoing,starttime;
100:0; No more lines.
Command: GSYS:0; Get bbs statistics.
100:7,calls,pots_calls,isdn_calls,network_calls,local_calls,startdate,lastcaller;
Command: GLCC:0; Get Lastcallers count
100,1,n; Return counter value.
Command: GLCR:1,recno; Get Lastcaller record
100:9,user,location,level,tty,time,minsmcalls,speed,cations;
201:1,16; Not available.
Group M, MIB commands.
Command: MSMS:6,kbrcvd,kbsent,direction,state,itype,freqs; Set Mailer Session
Reply: 100,0;
Command: MGMS:0; Get Mailer Session
Reply: 100:12,kbrcvd,kbsent,sessin,sessout,sess_sec,sess_unseq,sess_bad,ftsc,yoohoo,emsi,binkp,freqs;
Command: MSTN:3,in,out,bad; Set Tosser Netmail
Reply: 100,0;
Command: MGTN:0; Get Tosser Netmail
Reply: 100:3,in,out,bad;
Command: MSTI:3,in,out,bad; Set Tosser Internet-email
Reply: 100,0;
Command: MGTI:0; Get Tosser Internet-email
Reply: 100:3,in,out,bad;
Command: MSTE:4,in,out,bad,dupe; Set Tosser Echomail
Reply: 100:0;
Command: MGTE:0; Get Tosser Echomail
Reply: 100:4,in,out,bad,dupe;
Command: MSTR:4,in,out,bad,dupe; Set Tosser RFC-news
Reply: 100:0;
Command: MGTR:0; Get Tosser RFC-news
Reply: 100:4,in,out,bad,dupe;
Command: MGTT:0; Get Tosser Totals
Reply: 100:4,in,out,bad,dupe;
Command: MSFF:6,in,out,bad,dupe,magics,hatched; Set Tosser Files
Reply: 100:0;
Command: MGFF:0; Get Tosser Files
Reply: 100:6,in,out,bad,dupe,magics,hatched;
Command: MSBB:9,sessions,minutes,posted,uploads,kbupload,downloads,kbdownload,chats,chatminutes; Set BBS
Reply: 100:0;
Command: MGBB:0; Get BBS
Reply: 100:9,sessions,minutes,posted,uploads,kbupload,downloads,kbdownload,chats,chatminutes
Command: MGOB:0; Get Outbound Size
Reply: 100:1,size;
Group S, Status commands.
Command: SBBS:0; Get BBS Status (open, zmh, shutdown).
Reply: 100:2,0,The system is open for use;
100:2,1,The system is closed right now!;
100:2,2,The system is closed for Zone Mail Hour!;
Command: SOPE:0; Open the BBS.
Reply: 100:0; Ok.
Command: SCLO:1,mesage; Close the BBS with reason.
Reply: 100:0; Ok.
Command: SFRE:0; Is the BBS Free.
Reply: 100:1,Running utilities: n Active users: n;
100:0; It's free.
Command: SSEQ:0; Get next unique sequence number.
Reply: 100:1,number; Next unique sequence number.
Command: SEST:1,semafore; Get status of internal semafore.
Reply: 100:1,n; 1 = set, 0 = not set.
200:1,16; Semafore not known.
Command: SECR:1,semafore; Set semafore
Reply: 100:0; Ok.
200:1,16; Error.
Command: SERM:1,semafore; Remove semafore
Reply: 100:0; Ok (also if there was no semafore).
200:1,16; Semafore not known.
</pre>
Note: in reply of DGFS the reply is 100:n,size free mountpoint fstype,.....
where n = 1 for 1 filesystem, and 10 for a total of 10 filesystems. There
will never be a reply for more then 10 filesystems. The reported filesystems
are collected by a thread process of mbtask that only includes the filesystems
actually used by mbse.
This is used by the <b>mbmon</b> program to get a "live" view of your filesystems.
The GSPC command is used by utilities to check if enough space is available to
continue to work safely.
<P>&nbsp;<P>
<A HREF="index.htm"><IMG SRC="../images/larrow.png" ALT="Index" Border="0">Back to index</A>&nbsp;
<A HREF="../index.htm"><IMG SRC="../images/b_arrow.png" ALT="Main" Border="0">Back to Main index</A>
</BLOCKQUOTE>
</BODY>
</HTML>

View File

@@ -0,0 +1,47 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<HTML>
<!-- $Id: mbtoberep.html,v 1.5 2003/11/08 18:49:36 mbroek Exp $ -->
<HEAD>
<META http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<META http-equiv="Content-Style-Type" content="text/css">
<META NAME="Language" content='en'>
<META name="author" lang="en" content="Michiel Broek">
<META name="copyright" lang="en" content="Copyright Michiel Broek">
<META name="description" lang="en" content="MBSE BBS Manual">
<META name="keywords" lang="en" content="MBSE BBS, MBSE, BBS, manual, fido, fidonet, gateway, tosser, mail, tic, mailer">
<TITLE>MBSE BBS Programs - mbtoberep - List newfiles to report.</TITLE>
<LINK rel=stylesheet HREF="../manual.css">
</HEAD>
<BODY>
<BLOCKQUOTE>
<div align="right"><h5>Last update 31-Jan-2001</h5></div>
<div align="center"><H1>mbtoberep - List newfiles to report</H1></div>
<H3>Synopsis.</H3>
<P>
<code><strong>mbtoberep</strong></code>
<P>&nbsp;<P>
<H3>Description.</H3>
<P>
<strong>mbtoberep</strong> is a small utility to list the file
~/etc/toberep.data which contains the newfiles found on your system before
<strong>mbaff announce</strong> is run. This program is intended for system
development but I decided to leave it in the distribution for now. If you
pipe the output thru more or less you are able to inspect the records.
<P>&nbsp;<P>
<H3>Environment.</H3>
<P>
In order to run <strong>mbtoberep</strong> you must set the global variable
<strong>$MBSE_ROOT</strong>. This variable must point to the root directory
of the bbs structure. The main configuration file <strong>config.data</strong>
must be present in the ~/etc directory.
<P>
<A HREF="index.htm"><IMG SRC="../images/larrow.png" ALT="Index" Border="0">Back to index</A>&nbsp;
<A HREF="../index.htm"><IMG SRC="../images/b_arrow.png" ALT="Main" Border="0">Back to Main index</A>
</BLOCKQUOTE>
</BODY>
</HTML>

71
html/programs/mbuser.html Normal file
View File

@@ -0,0 +1,71 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<HTML>
<!-- $Id: mbuser.html,v 1.5 2003/11/08 18:49:36 mbroek Exp $ -->
<HEAD>
<META http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<META http-equiv="Content-Style-Type" content="text/css">
<META NAME="Language" content='en'>
<META name="author" lang="en" content="Michiel Broek">
<META name="copyright" lang="en" content="Copyright Michiel Broek">
<META name="description" lang="en" content="MBSE BBS Manual">
<META name="keywords" lang="en" content="MBSE BBS, MBSE, BBS, manual, fido, fidonet, gateway, tosser, mail, tic, mailer">
<TITLE>MBSE BBS Programs - mbuser - User Database Maintenance.</TITLE>
<LINK rel=stylesheet HREF="../manual.css">
</HEAD>
<BODY>
<BLOCKQUOTE>
<div align="right"><h5>Last update 02-Feb-2001</h5></div>
<div align="center"><H1>mbuser - User Database Maintenance</H1></div>
<H3>Sysnopsis.</H3>
<P>
<code><strong>mbuser</strong> [commands] &lt;options&gt;</code>
<P>&nbsp;<P>
<H3>Description.</H3>
<P>
<strong>mbuser</strong> is the user database maintenance program. It can delete
users upto a certain level who have not called for a number of days. It can
also pack the user database. This is not really a pack of the database, the
deleted records are zeroed but the database is never shrinked. Every user
once in this database will keep his record forever. This is to be sure that
all LastRead Pointers will be correct. Records that are zeroed can be
reused for new users. <strong>mbuser</strong> must run setuid root and
setgid root because it executes /usr/sbin/userdel to delete the Unix account
of the user that is removed from the bbs.
<P>&nbsp;<P>
<H3>Environment.</H3>
<P>
In order to run <strong>mbuser</strong> you must set the global variable
<strong>$MBSE_ROOT</strong>. This variable must point to the root directory
of the bbs structure. The main configuration file <strong>config.data</strong>
must be present in the ~/etc directory. <strong>mbuser</strong> must be
installed setuid root and setgid root, ls -la looks like this:<br>
<pre>
-rws--s--x 1 root root 23560 Jun 19 19:50 /opt/mbse/bin/mbuser*
</pre>
<P>&nbsp;<P>
<H3>Commands.</H3>
<P>
<code><strong>mbuser</strong> kill [n] [l]</code> will mark users to delete who have not
called in <strong>n</strong> days upto and including level <strong>l</strong>.
<P>
<code><strong>mbuser</strong> pack</code> will delete (zero) the users marked for deletion.
You should also run this command if you marked users to delete with
<strong>mbsetup</strong>.
<P>&nbsp;<P>
<H3>Options.</H3>
<P>
<code><strong>mbuser</strong> [command] -quiet</code> will suppress screen output, this is
for running <strong>mbuser</strong> in the background or from the crontab.
<P>
<A HREF="index.htm"><IMG SRC="../images/larrow.png" ALT="Index" Border="0">Back to index</A>&nbsp;
<A HREF="../index.htm"><IMG SRC="../images/b_arrow.png" ALT="Main" Border="0">Back to Main index</A>
</BLOCKQUOTE>
</BODY>
</HTML>

View File

@@ -0,0 +1,71 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<HTML>
<!-- $Id: mbuseradd.html,v 1.7 2005/08/27 14:17:14 mbse Exp $ -->
<HEAD>
<META http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<META http-equiv="Content-Style-Type" content="text/css">
<META NAME="Language" content='en'>
<META name="author" lang="en" content="Michiel Broek">
<META name="copyright" lang="en" content="Copyright Michiel Broek">
<META name="description" lang="en" content="MBSE BBS Manual">
<META name="keywords" lang="en" content="MBSE BBS, MBSE, BBS, manual, fido, fidonet, gateway, tosser, mail, tic, mailer">
<TITLE>MBSE BBS Programs - mbuseradd - The useradd wrapper.</TITLE>
<LINK rel=stylesheet HREF="../manual.css">
</HEAD>
<BODY>
<BLOCKQUOTE>
<div align="right"><h5>Last update 27-Aug-2005</h5></div>
<div align="center"><H1>mbuseradd - The useradd wrapper.</H1></div>
<H3>Sysnopsis.</H3>
<P>
<code><strong>mbuseradd</strong> [gid] [username] [comment] [userdir]</code>
<P>&nbsp;<P>
<H3>Description.</H3>
<P>
<strong>mbuseradd</strong> is the wrapper for the <strong>useradd</strong>
program that should be present on most GNU/Linux systems. <strong>useradd</strong>
may only be executed by <strong>root</strong> and there are some other minor
things that need to be done as <strong>root</strong> to create a new Unix
account that can be used with MBSE BBS. The solution for these problems is
<strong>mbuseradd</strong>, this little program runs setuid root and setgid
root. If it fails to do that it aborts. <strong>mbuseradd</strong> is called
by <strong>mbnewusr</strong> and checks if it's called like that.
If it is successfull the user will
have an entry in /etc/passwd, the comment is his Fidonet name, and his shell
is $MBSE_ROOT/bin/mbsebbs.
<P>
If all this is successfull until now, the homedirectory for this user is
created and the right ownership and permissions are set. In his homedirectory
the empty file <strong>.hushlogin</strong> is placed to prevent check for
new mail when he logs into your system. This is the Unix mailcheck that is
skipped and has nothing todo with the check for new mail in the bbs. All
other directories that are needed for the bbs are created by <b>mbsebbs</b>.
<P>&nbsp;<P>
<H3>Environment.</H3>
<P>
In order to run <strong>mbuseradd</strong> you must set the global variable
<strong>$MBSE_ROOT</strong>. This variable must point to the root directory
of the bbs structure. The main configuration file <strong>config.data</strong>
must be present in the ~/etc directory. <strong>mbuseradd</strong> must be
installed setuid root and setgid root, ls -la looks like this:<br>
<pre>
-rws--s--x 1 root root 6644 Jun 26 21:23 /opt/mbse/bin/mbuseradd*
</pre>
<P>&nbsp;<P>
<H3>Commands.</H3>
<P>
Not mentioned here because <b>mbuseradd</b> is only called by mbnewusr,
running manually is not supported.
</pre>
<P>
<A HREF="index.htm"><IMG SRC="../images/larrow.png" ALT="Index" Border="0">Back to index</A>&nbsp;
<A HREF="../index.htm"><IMG SRC="../images/b_arrow.png" ALT="Main" Border="0">Back to Main index</A>
</BLOCKQUOTE>
</BODY>
</HTML>