home *** CD-ROM | disk | FTP | other *** search
-
- BMS
- Batch Mail Server
-
- The BMS system implements a full fledged mail server subsystem under
- AmigaUUCP. It provides a manual and/or automated file transfer and
- update capability.
-
- The system is implemented with a single program called BMS through
- which you can execute various functions.
-
- (I)
- INSTALLATION
-
- In order to install BMS you must create an assignment called BMS:
- then run BMS INSTALL:
-
- 1> makedir uulib:bms
- 1> assign bms: uulib:bms
- 1> bms install
-
- BMS will automatically setup defaults. Initially the file access area
- is limited to UUPUB: and BMS:PUB. BMS creates BMS:PUB and BMS:TMP, and
- BMS's permanent database resides in BMS:BMS.DB
-
- If you have a custom mailer with USER BOUNCING then you must add two
- dummy users to your PASSWD file, named 'bms_in' and 'bms_err'.
-
- Setup an alias for bms-manager to point to an appropriate mailbox.
- This is where BMS will mail text message describing events (such
- as somebody dequeueing your node or a GET you started completing)
-
- You must setup a DCRON entry for the BMS system. The command 'BMS
- BATCH' should be run several times between uucico calls to process
- incomming requests and queue outgoing requests. NOTE!!! Your path must
- have UUCP:C at the time your startup DCron (this is a bug in BMS)
-
- IN GENERAL EVERY NODE HAS A BMS:PUB/FILES TEXT FILE RETRIEVABLE BY
- OTHER PEOPLE. This file should contain a description of what is
- available on your system.
-
-
- (II)
- REGISTRATION
-
- Before you can make any requests you must register with the remote
- BMS node you wish to make requests from. The form of the
- registration command is as follows:
-
- 1> BMS REGISTER dest_path RETPATH ret_path ALIAS alias
-
- You must specify the path to the remote machine (dest_path) and the
- return path from the remote machine (ret_path). You can also specify
- an optional alias (now or later) to reduce the amount of typing you
- must do when you make requests. So, for example, if my machine was
- 'uunet!overload' and I wanted to register with a remote site called
- 'uunet!able!test' then I would say:
-
- BMS constructs it's special user name by appending a '!bms_in' to the
- path. The path format you use must work with this!
-
-
- 1> BMS REGISTER uunet!able!test RETPATH able!uunet!overload ALIAS test
-
- Note that the RETPATH is RELATIVE THE REMOTE SITE. You must specify a
- return path that the remote site can use to get back to you. You may
- not request any files until the BMS system has received a response from
- the remote site.
-
- This requirement greatly reduces the number of bounces the remote site
- will suffer. Considering that a remote site 'hub' (such as my machine)
- will service several connections at once with new ones comming in every
- day, reducing the number of bounces that I (and other sites) get is
- very, very important. Many sites would not be able to offer BMS
- services if they had to deal with a huge number of bounces.
-
- TESTING THE REGISTRATION
-
- 1> BMS
- REGISTRATION <defaults> ALIAS=default STAT=0:<unknown> to=off
- REGISTRATION uunet!able!test ALIAS=test STAT=1:REG-SEND to=off
-
- The 'STAT' field indicates the current status. 'REG-SEND' indicates
- that the BMS system will send off the registration request. When DCron
- comes around and runs 'BMS BATCH' (which you can also do manually),
- this will set to 'REG-SENT' and to=6d (timeout of 6 days).
-
- When the remote BMS system gets the request it will respond with an
- acknowledgement. You should receive this acknowledgement in a
- reasonable amount of time, it all depends how often your site and the
- remote site gets mail.
-
- If the remote BMS system responds then the status will change to:
-
- 1> BMS
- REGISTRATION <defaults> ALIAS=default STAT=0:<unknown> to=off
- REGISTRATION uunet!able!test ALIAS=test STAT=1:REG-CONNECTED to=29d
-
- This indicates that you are now 'connected' to the remote site. The
- timeout of 29 days simply means that your BMS system will send a
- keepalive packet out once a month. Theoretically once a registration
- is established it will never get lost unless manually dequeued.
-
- Note in 'STAT=1:...', the '1' is the IDentifier for the registration.
-
- LOCAL TESTING
-
- You can test the BMS system locally without batching to the outside
- world by creating a dummy machine in your UULIB:Domain file with an
- entry called 'test MD UU <your_machine_name_goes_here>'... Registering
- for local tests would work as follows... my machine is called 'overload'
- so I would:
-
- (1) modify my UULIB:Domain file adding the dummy 'test' entry given
- above
-
- (2) BMS REGISTER test RETPATH overload ALIAS test
-
-
- RECEIVING REMOTE REGISTRATIONS
-
- When you receive a remote registration. That is, some tries to
- register with you, your BMS status will show a line as follows:
-
- 1> BMS
- REGISTRATION <defaults> ALIAS=default STAT=0:<unknown> to=off
- REGISTRATION <remote_mach> ALIAS=<none> STAT=2:REG-REMOTE to=179d
-
- The <remote_mach> is the RETPATH the other person specified when they
- connected with you. For received registrations the registration
- remains valid for 179 days. This 'timeout' is reset back to 179
- whenever the remote machine sends a keepalive packet to you, which
- occurs every month.
-
- VARIABLES
-
- You can modify various BMS variables globally or for specific
- registrations.
-
- 1> BMS VARS D=default
- REGISTRATION <defaults> ALIAS=default STAT=0:<unknown> to=off
- PARAMS:
- MaxRxBpd 100000 <not implemented yet>
- MaxTxBpd 100000 MAXIMUM BYTES TRANSMITTED PER DAY
- MaxRxBpw 400000 <not implemented yet>
- MaxTxBpw 400000 MAXIMUM BYTES TRANSMITTED PER WEEK
- MaxRxMail 56000 <not implemented yet>
- MaxTxMail 56000 MAXIMUM OUTGOING EMAIL MESSAGE SIZE
- MinMail 15000 MINIMUM OUTGOING EMAIL MESSAGE SIZE
- MirRxBpd 30000 <not implemented yet> (mirroring)
- MirTxBpd 50000 <not implemented yet> (mirroring)
- CacBwPerc 10 <not implemented yet> (caching)
- ReqSwamp 10 <not implemented yet>
- MirSwamp 20 <not implemented yet>
-
- The variables pretty much speak for themsevles. You may modify a
- variable as shown below. If no destination is specified then the
- DEFAULTS are modified.
-
- 1> BMS MaxTxBpd 50000
-
- You may modify the variable(s) relating to a specific destination by
- specifying a D=<destination> where <destination> is either an alias or
- a full destination path to a registered destination.
-
- 1> BMS MaxTxBpd 50000 D=test
-
- You may list the variables associated with all registered nodes using
- 'BMS VARS'. It may look something like the following:
-
- 1> BMS MaxTxBpd 300000 D=test
- 1> BMS VARS
-
- REGISTRATION <defaults> ALIAS=default STAT=0:<unknown> to=off
- PARAMS:
- MaxRxBpd 100000
- MaxTxBpd 100000
- MaxRxBpw 400000
- MaxTxBpw 400000
- MaxRxMail 56000
- MaxTxMail 56000
- MinMail 15000
- MirRxBpd 30000
- MirTxBpd 50000
- CacBwPerc 10
- ReqSwamp 10
- MirSwamp 20
- REGISTRATION test ALIAS=test STAT=1:REG-CONNECTED to=15d
- PARAMS:
- MaxRxBpd 100000 (default)
- MaxTxBpd 300000
- MaxRxBpw 400000 (default)
- MaxTxBpw 400000 (default)
- MaxRxMail 56000 (default)
- MaxTxMail 56000 (default)
- MinMail 15000 (default)
- MirRxBpd 30000 (default)
- MirTxBpd 50000 (default)
- CacBwPerc 10 (default)
- ReqSwamp 10 (default)
- MirSwamp 20 (default)
-
-
- Note that the MaxTxBpd variable(s) refer to the maximum number of
- bytes per day BMS is allowed to send GLOBALLY. This is NOT on a
- per-node basis.
-
- If you have 5 registrations and MaxTxBpd is set to 100000 on all of
- them (i.e. the default), the BMS system will not transmit more then
- 100000 bytes per day overall. If you give one registration a lower
- value you effectively limit data sent to the registration to the lower
- value, but it still counts as data sent overall. If you give one
- registration a limit of 200000 that allows no more then 100000 to the
- other nodes overall, except 200000 to that specific node, but no more
- then 200000 overall.
-
- A variable overide may be restored to the 'default' by setting it's
- value to 0. E.G
-
- 1> BMS MaxTxBpd 0 D=test
-
- Sets MaxTxBpd for the TEST registration back to whatever the default
- has been specified at. GENERALLY YOU DO NOT WANT TO SET DEFAULTS TO 0.
- This applies only to variable overides for specific registrations that
- you wish to restore back to using the default values.
-
-
- FILE ACCESS
-
- You can set global file access with ADDFILE, REMFILE, and RESTRICT.
- Normally file access permissions are specified for the default
- node and take effect globally. You can also specify file access
- permissions for specific registrations by giving the D=name
- argument:
-
- 1> BMS ADDFILE uucp:c
- 1> BMS FILES
- REGISTRATION <defaults> ALIAS=default STAT=0:<unknown> to=off
- ACCESS: UUPUB:
- ACCESS: BMS:PUB
- ACCESS: uucp:c
- REGISTRATION test ALIAS=test STAT=1:REG-CONNECTED to=5d
- REGISTRATION overload ALIAS=<none> STAT=2:REG-REMOTE to=154d
-
- 1> BMS RESTRICT uucp:c/fubar D=test
- 1> BMS FILES
- REGISTRATION <defaults> ALIAS=default STAT=0:<unknown> to=off
- ACCESS: UUPUB:
- ACCESS: BMS:PUB
- ACCESS: uucp:c
- REGISTRATION test ALIAS=test STAT=1:REG-CONNECTED to=4d
- ACCESS: -uucp:c/fubar
- REGISTRATION overload ALIAS=<none> STAT=2:REG-REMOTE to=154d
-
- 1> BMS REMFILE uucp:c
- 1> BMS FILES
- REGISTRATION <defaults> ALIAS=default STAT=0:<unknown> to=off
- ACCESS: UUPUB:
- ACCESS: BMS:PUB
- REGISTRATION test ALIAS=test STAT=1:REG-CONNECTED to=4d
- ACCESS: -uucp:c/fubar
- REGISTRATION overload ALIAS=<none> STAT=2:REG-REMOTE to=154d
-
-
- ADDFILE adds a file to those allowed to sent to remote nodes REMFILE
- removes a file from the access list RESTRICT disallows a specific file.
-
- THE BMS SYSTEM IS FULLY CAPABLE OF TRANSFERING DIRECTORY HIERARCHIES.
- Thus, there are cases where allowing a directory but restricting one or
- more subdirectories will be a useful feature to have.
-
- GETTING DIRECTORY LISTINGS
-
- Current this is not supported in an automatic manner but to allow
- people to query your system as to what is supported you should create a
- BMS:PUB/FILES file, a text file containing general information and a
- list of available files.
-
- So, until I work in an automated directory thingy please use the GET
- command below to obtain this file.
-
-
- GETTING FILES AND DIRECTORIES
-
- You can retrieve files and/or directories with the GET command.
- For example, if I wanted to retrieve something from the machine
- 'test' I would say:
-
-
- 1> BMS D=test GET bms:pub/files TO uupub:files.test
-
- D=test - node you want to get files from
- bms:pub/files - remote file/dir to get (full path)
- uupub:files.test - local file/dir to put results in (full path)
-
- AS WITH ALL OTHER TRANSFER COMMANDS, YOU MUST BE 'REGISTERED' WITH THE
- REMOTE NODE BEFORE YOU MAY RETRIEVE ANY DATA.
-
- the BMS system appends the suffix '-XXX' to all incomming
- files/directories until the file or directory is completely received,
- then renames it back to what it was supposed to be.
-
-
- COMMANDS
-
- BMS HELP Help!
-
- Print out a quick list of available commands. NOTE! Not all
- commands have been implemented, see below!
-
- BMS [STATUS] [VARS] [FILES] [STATS] [ACTIVE] [ALL] [DEBUG] [D=dest]
-
- Display the status of the BMS system. This is the default
- (you do not need the 'STATUS' keyword). If not destination
- is specified all destinations are displayed.
-
- VARS Display the state of various parameters
-
- ACTIVE Display all active communication connections and all
- files transfers in progress
-
- FILES Display the file access list
-
- ALL Display dequeued nodes that have not timed out. These
- normally do not show up in the list.
-
- STATS NOT IMPLEMENTED YET
-
- BMS INSTALL Install the BMS system on your system
-
- Install BMS on your system. This command will create appropriate
- directories and setup BMS files, storing default information.
-
- You must do further installation such as, for example, running
- BMS BATCH at periodic intervals.
-
- BMS BATCH Run BMS Batching
-
- This command is normally run from your S:Crontab several times a
- day. You probably want to run it at least twice between uucico
- runs.
-
- This command scans all incomming mail for the BMS system and
- generates appropriate responses. Incomming mail is always routed
- through a dummy user called 'bms_in'.
-
- Responses may include lharc'ing and uuencoding various materials
- and the outbound queuing of said materials.
-
- BMS REGISTER <destination_bms_system> [RETPATH <return_path>] [ALIAS <alias>]
-
- This command requests that your BMS system contact and register
- itself with a remote BMS system. If the nominal email address of
- your system is not sufficient for the remote site to be able to
- respond then you should specify a return path RELATIVE TO THE
- REMOTE SITE. Note that email paths do not include user names.
-
- BMS constructs it's special user name by appending a '!bms_in' to
- the path. The path format you use must work with this!
-
- If you with to associate an alias with the system you may do so at
- this time with the ALIAS command.
-
- BMS RENAME <destination_bms_system> TO <newpath_for_dest_bms_system>
-
- This command instructs BMS to use a different mail path when
- communicating with the specified destination.
-
- BMS D=<destination_bms_system> ALIAS <alias>
-
- This command changes the alias name used to identify the specified
- destination BMS system.
-
- BMS DEQUEUE <id> [MESSAGE <message>]
-
- Dequeue a request, either locally or remotely generated. Dequeueing
- a remote request results in an abort message being sent to the
- remote BMS site, aborting any additional mailings that have yet to
- be sent from that site.
-
- When Dequeuing remote requests you may specify a message to be sent
- to the remote user describing why the request has been dequeued.
-
- BMS DESTROY <id>
-
- USE THIS COMMAND ONLY AS A LAST RESORT! This command *destroys* a
- communications subtree, leaving the remote end hanging. You should
- NOT destroy communications unless something goes very very wrong.
- Use BMS DEQUEUE to dequeue a communication if you want to abort it.
-
- BMS STOP <id>
- BMS START <id>
-
- NOT IMPLEMENTED YET
-
- BMS RETRY <id>
-
- This command should not normally be used. This command forces a
- timeout for whatever state a communication tree is in. The
- resulting action depends on the state.... generally, forcing a
- timeout on DONE states remove them, while forcing a timeout
- on a RECEIVER type state generates a retry request.
-
- BMS is pretty smart about automatically retrying, you should not
- use this command unless you know what you are doing.
-
- BMS [D=<destination_bms_system>] MAXTXBPD <value>
- BMS [D=<destination_bms_system>] MAXTXBPW <value>
- BMS [D=<destination_bms_system>] MINMAIL <value>
- ....
-
- Currently, only transmit specifications may be given. Variables
- may be specified for the default or for specific registrations.
- Setting a variable for a specific registration to 0 resumes the
- default value. Normally you do not set any defaults to 0.
-
- MAXTXBPD - Maximum transmit bytes per day
- MAXTXBPW - Maximum transmit bytes per week
- MINMAIL - Minimum message size for block data under a heavy
- load. Prevents data from being broken up into
- messages 10 bytes long when under a heavy load.
-
- BMS [D=<destination_bms_system>] ADDFILE <file/dir>
-
- Add a file or directory to the access list for a particular system
- or to the default file access list.
-
- BMS [D=<destination_bms_system>] REMFILE <file/dir>
-
- Remove a file or directory from the access list for a particular
- system or for the default file access list
-
- BMS [D=<destination_bms_system>] RESTRICT <file/dir>
-
- Specify a file or directory that is specifically DISALLOWED for a
- particular system or for the default file access list. That is, if
- you generally allow PUB:BIN/ you can disallow, say PUB:BIN/FUBAR
- with this command while still allowing any other file in PUB:BIN/
- to be sent.
-
- You can also use this command to give special permissions to
- someone.
-
- BMS [D=<destination_bms_system>] GET file/dir TO file/dir
-
- Request a specific file or directory from a remote BMS system. If
- the file/dir is in your BMS system's databases from earlier
- directory retrievals and no conflicts are found, then you need not
- specify the destination system.
-
- If you are GETting a file your TO field may specify either a file
- or directory. If only a directory is specified then the same file
- name is used.
-
- mail will be sent to bms-manager when the GET operation is
- complete. Files under construction have a -XXX suffix. NOTE! Even
- if the file is the correct size you should not touch it if the -XXX
- suffix is still there! BMS can fill in files out of order so there
- may still be blocks of NULs in the file.
-
- BMS [D=<destination_bms_system>] PUT file/dir
-
- NOT IMPLEMENTED YET
-
- BMS [D=<destination_bms_system>] MIRROR file/dir TO file/dir
-
- NOT IMPLEMENTED YET
-
- BMS CLEANUP
-
- This command cleans up BMS's database. You should cleanup BMS's
- database about once a week.
-
-