Written by Tom Torfs
(2:292/516@fidonet.org,
tomtorfs@mail.dma.be,
tomtorfs@village.uunet.be)
This is freeware. You are encouraged to copy this program and give copies to your friends. You may not, however, change this program or its documentation in any way or distribute modified versions of the original archive.
A) FrontDoor/MainDoor
B) InterMail
C) McMail
D) BinkleyTerm
E) Xenia
F) Cantaloup
G) T-Mail
H) Argus
I) Other mailers
ADDRESS=<zone>:<net>/<node>[.<point>]
AKA=<zone>:<net>/<node>[.<point>],<minzone>[-<maxzone>]
ALLOWPOINTS=<YES|NO>
AVOIDMULTI=<YES|NO>
CCFROMADDR=<address to be used as from in carbon copy messages>
CCPKTPATH=<path where local pkt's should be created>
CHECKEXTENSION=<YES|NO>
COPYLOCAL=<path>
ERASECHAR=<character>
FILEWAIT=<retries>
FLAGS=<flaglist>
FLAGS_LISTED=<flaglist>
FLAGS_SECURE=<flaglist>
FREEFILES=<YES|NO>
FREEMAGIC=<YES|NO>
GROUPS=<grouplist>
GROUPS_LISTED=<grouplist>
GROUPS_SECURE=<grouplist>
KEEPCHAR=<character>
LISTEDONLY=<YES|NO>
LISTEDPOINTS=<YES|NO>
LOGFILE=<logfile>
MAGIC=<list with magic file names>
MAGICFORMAT=<NORMAL|BINKLEY>
MAXFILES=<maximum number of files>
MAXFILES_LISTED=<maximum number of files>
MAXFILES_SECURE=<maximum number of files>
MAXKB=<maximum number of kilobytes>
MAXKB_LISTED=<maximum number of kilobytes>
MAXKB_SECURE=<maximum number of kilobytes>
MAXLEVEL=<maximum security level>
MAXLEVEL_LISTED=<maximum security level>
MAXLEVEL_SECURE=<maximum security level>
MAXFREQS=<n>
MAXMATCHES=<n>
MAXMAGICS=<n>
MAXSPECSPERMAGIC=<n>
PBPATH=<path to ProBoard system directory>
PREPENDPLUS=<YES|NO>
REPORT=[<ALWAYS|ERROR|NEVER>][,<BEFORE|AFTER>]
SAMEFILE=<YES|NO>
SENDDUPENAME=<YES|NO>
SRIF=<YES|NO>
SYSOPNAME=<local sysop name>
TEMPDIR=<path>
TICSYSTEM=<address>[,<password>[,<multidesc>]]
TRASHCAN=<name of file containing locked-out systems>
UPDATECOUNTERS=<YES|NO>
ProBoard Request Processor is a simple program that quickly generates responses to file requests, even from cd-roms, by reading the ProBoard index files directly.
It is compatible with most popular mailers, including but not limited to FrontDoor, MainDoor, InterMail, McMail, BinkleyTerm, Xenia, Cantaloup, T-Mail, Argus. PRP should work with all mailers that support external file request processors either through a command line interface or through the SRIF interface.
PRP can send TIC files along with requested files, which can be used for automated file processing by the requesting system.
PRP comes in the following flavours:
PRP.EXE : 16-bit DOS version PRP2.EXE : 32-bit OS/2 version PRP32.EXE : 32-bit Windows 95/NT version
PRP runs fine on multi-node systems; all its file access is done in shared mode and you can configure a retry delay if it encounters a sharing violation while accessing the ProBoard index files.
Both normal file requests and update requests (only if a file is newer than a certain date) are supported. Separate request limits for secure and unsecure sessions, and unlimited requests from free areas (optionally) are also supported.
You can selectively prevent systems from requesting files through a trashcan file (both address & sysop based), allowing only listed systems to request files and/or not allowing points to request files.
You can also give selective access to secure and unsecure systems via security levels, flags and groups.
Passwords are supported for magic files (for example to send gamma or registered versions of a program only to authorized people). Passwords for files in general are not supported, and will most likely not be supported in the future either, as the usefulness of such a feature seems doubtful to me.
If you are looking for bells and whistles, like timeslots, multi-colour windowed screens and setup programs, this program is not for you. If you are looking for a simple, robust and most of all fast file request processor for your ProBoard-based BBS, this is what you've been waiting for.
First unpack the archive into a separate directory (recommended) or into your mailer's directory.
To upgrade from a previous version of PRP, simply unpack the archive into the PRP directory. Your configuration and template files will be left intact. However, to use some of the new features, changing the configuration file will be necessary.
For any mailer, you should use the PRP version for the same operating system as the mailer itself. So use PRP.EXE for DOS mailers, PRP2.EXE for OS/2 mailers and PRP32.EXE for Windows 95/NT mailers.
Set SRIF=NO in PRP.CFG.
Launch FDSETUP/MDSETUP and set the following information in Mailer/File requests/Request processor:
Program C:\FD\PRP\PRP.EXE =R =T =X =A "=O" (*) Enabled Yes Swapping No (**)
(*) use the correct path, of course
(**) set to Yes if you're really low on memory
This requires the registered version of FrontDoor. It works with the unregistered version of MainDoor, though.
Set SRIF=NO, PREPENDPLUS=NO and SAMEFILE=YES in PRP.CFG.
Set up the following command string for the request processor:
C:\IMAIL\PRP\PRP.EXE %F %X %A %O (*)
(*) use the correct path, of course
You can install PRP either using the SRIF interface or the command line interface.
Set SRIF=NO in PRP.CFG.
Set up the following command string:
ReqProcessor C:\MCMAIL\PRP\PRP.EXE =PFL =PXL =SU =PA "=RS" (*)
Set SRIF=YES in PRP.CFG.
Set up the following command string:
ReqProcessor C:\MCMAIL\PRP\PRP.EXE =SRIF (*)
(*) use the correct path, of course
Set SRIF=YES in PRP.CFG.
Insert the following line in BINKLEY.CFG:
SRIF C:\BT\PRP\PRP.EXE $s (*)
(*) use the correct path, of course.
The $s will be replaced with the full path to the SRIF file.
NOTE: BinkleyTerm prior to version 2.60 XE does not support
external request processors.
BinkleyTerm 2.60 XE currently does not support SRIF external
request processors when using the Janus protocol.
Therefore you should also add NoJanus to your BINKLEY.CFG.
Set SRIF=YES in PRP.CFG.
Remove the line Request from the Xenia configuration file if that is present. Then add the following line:
ExtReq C:\XENIA\PRP\PRP.EXE (*)
(*) use the correct path, of course.
Xenia will append the full path to the SRIF file.
NOTE: SRIF does not function properly with Xenia prior to version 1.98.04
Set SRIF=YES in PRP.CFG.
Create the file FREQPROC.CMD with the following contents:
@C:\CLOUP\PRP\PRP.EXE %6 (*)
(*) use the correct path, of course.
Alternatively, you can also set up Cantaloup without using the SRIF interface. Cantaloup passes the following command line parameters to FREQPROC.CMD:
FREQPROC <baud> <task> <time> <originator> <secure> <srif> <req> <attach>
Set SRIF=YES, PREPENDPLUS=NO and ERASECHAR=^ in PRP.CFG.
Add the following lines to T-MAIL.CTL:
FLAG_DIR C:\T-MAIL\SEM (*) FLAG_SESSION BUSY.%TASKNO% PROCESS FREQ C:\T-MAIL\PRP\PRP.EXE C:\T-MAIL\SEM\BUSY.%TASKNO% (*)
(*) use the correct path, of course.
Set SRIF=YES in PRP.CFG.
In Argus' request processor configuration, make sure the SRIF box is checked and set the following commandline:
C:\PRP\PRP.EXE %SRIF% (*)
(*) use the correct path, of course.
Find out if your mailer supports external request processors, and whether it can call these using a command line interface or through the SRIF interface.
Set SRIF=NO and SAMEFILE=NO in PRP.CFG.
Set up the command line as follows (look in your mailer's manual for the required macros):
PRP.EXE <infile> <outfile> <SECURE|UNSECURE> <address> "<sysopname>"
Set SRIF=NO and SAMEFILE=YES in PRP.CFG.
Set up the command line as follows (look in your mailer's manual for the required macros):
PRP.EXE <in & outfile> <SECURE|UNSECURE> <address> "<sysopname>"
If you provide me with the correct command line for another mailer, it will be added to this doc and I will give credit to you.
Set SRIF=YES in PRP.CFG.
Set up the mailer so that it will call PRP.EXE with the full path and filename of the SRIF-file as only parameter.
Now also check if your mailer requires a special character before filenames that should be and that should not be deleted in the response file and set the PREPENDPLUS, KEEPCHAR and ERASECHAR keywords accordingly. (usually they should be left to the defaults: YES, + and -, resp.)
The configuration file must be named PRP.CFG and must be in the
same directory as PRP.EXE/PRP2.EXE. It is a text file configuration,
and can contain the following keywords (in alphabetical order).
Everything after a semicolon (;) is treated as a comment and ignored.
ADDRESS=<zone>:<net>/<node>[.<point>]
Your main address, in the form zone:net/node.point. Any omitted fields
in the address (e.g. point) are assumed to be zero.
This address will be used as the origin for the file request response
message if no other AKA is matched, and as the destination for the
local carbon copy of the response messages.
AKA=<zone>:<net>/<node>[.<point>],<minzone>[-<maxzone>]
Your main address or an AKA, in the form zone:net/node.point. Any
omitted fields in the address (e.g. point) are assumed to be zero.
If maxzone is omitted, it will be assumed to be equal to minzone.
The first AKA that contains the receiver's main zone number in
the minzone-maxzone range, will be used as the origin for the file
request response message. If no AKA is matched, the main address
will be used instead.
There may be upto 16 AKAs.
ALLOWPOINTS=<YES|NO>
If set to NO, points are not allowed to request any files.
If set to YES , points are allowed to request files (however, if
LISTEDONLY=YES the LISTEDPOINTS setting applies).
The default is YES.
AVOIDMULTI=<YES|NO>
If set to YES, PRP 'remembers' how much a system requested today,
and will prevent the request limits being exceeded by multiple
calls.
The default is NO, which is also the behaviour of PRP versions
prior to 1.13.
To implement this, PRP creates a binary file called PRPTODAY.DAT
in the same directory as PRP.EXE, which is erased every day.
This file has the following structure:
2 bytes current day (1..31) 2 bytes current month (1..12) 2 bytes current year (1996..?) 2 bytes number of nodes in fileFor every node:
2 bytes zone 2 bytes net 2 bytes node 2 bytes point 2 bytes number of files requested today upto now 4 bytes number of bytes requested today upto now
NOTE: People can of course still masquerade as someone else to request files. There's nothing I can do about that.
CCFROMADDR=<address to be used as from in carbon copy messages>
If you omit this option, your main address will be used (note that in that case some tossers may have problems with tossing the messages so it may be a good idea to use e.g. a fake point for this address).
CCPKTPATH=<path where local pkt's should be created>
If you use this option, PRP will make a carbon copy of the
response message addressed to the local sysop's name (see
SYSOPNAME keyword). The PKT file for this message will
be created in the path you specify. This should be the
same path as your mailer/tosser's "inbound mail packets"
path.
The message will be processed by your mail tosser the
next time you toss your mail.
CHECKEXTENSION=<YES|NO>
When set to NO, the default and also the behaviour of previous
versions of PRP, the extension of files is ignored, and the first
matching file will be sent. For example, if someone freqs TEST.ARJ
and you have TEST.ZIP and TEST.LZH, TEST.ZIP will be sent.
This option also implies that if somebody freqs for example
TEST.*, he will only receive the first file, the others will be
considered duplicates.
If set to YES, the file extension is significant. So if someone
freqs TEST.ARJ and you have TEST.ZIP and TEST.LZH, neither of them
will be sent.
This option also implies that if somebody freqs for example
TEST.*, he will receive all matching files, like TEST.ZIP,
TEST.ARJ, etc.
NOTE: There are two exceptions to this option:
1) extensions that end in two digits (most often some form of nodelist)
will always be treated as if this option was set to YES. So if someone
freqs NODEDIFF.Z96 and you have NODEDIFF.Z89 and NODEDIFF.Z82, neither
of them will be sent, regardless of this setting.
2) if the base filename contains only a *, the extension will always be
significant. So if someone freqs *.RUL, not the entire filebase will
be sent.
COPYLOCAL=<path>
If this option is present, files from CD-ROM areas will be copied to <path> before sending them. If this option is left out, the files won't be copied to a local drive. The <path> must be a valid directory, with or without trailing backslash. If the <path> is invalid, PRP will not function properly.
ERASECHAR=<character>
The character that should be prepended to filenames in the response file that should be deleted after sending (e.g. the response message packet and CD-ROM files that have been copied locally). By default (and for most mailers) this is -.
FILEWAIT=<retries>
Defines the number of times PRP will retry to open the ProBoard index
files if an access denied error occurs, e.g. because PBUTIL FI is
running in another task. PRP will wait one second between every retry,
so this is effectively the time in seconds during which it will retry
opening the files.
Especially multi-node systems are recommended to use a high enough
value here (also the more files there are, the longer PBUTIL FI will
take and the higher this value should be).
You can always abort the retry sequence manually by pressing ESC.
The default setting is 0 (no retry).
FLAGS=<flaglist>
List of flags the requesting system will be assigned. Valid flags are
A..Z and 1..6. There are no commas between the different flags. Default
is no flags.
In the ProCfg File Area Manager you can specify flags that a user is
required to have to be able to access a specific area and flags that a
user may not have to access it.
FLAGS_LISTED=<flaglist>
Same as FLAGS but for listed systems. If omitted, the FLAGS setting will be used for listed systems as well.
ATTENTION: using this option requires a recent ProBoard nodelist index to be present - see also the note at the LISTEDONLY keyword.
FLAGS_SECURE=<flaglist>
Same as FLAGS but for secure sessions. If omitted, the FLAGS setting will be used for secure sessions as well.
FREEFILES=<YES|NO>
If set to YES, request limits are ignored for file areas marked
as 'free' in ProBoard. This is also the default behaviour.
This only affects number of files & kb limits, security level
limits and flags & group access restrictions are still respected even
if the area is marked as free.
FREEMAGIC=<YES|NO>
If set to YES, request limits are ignored for files requested using magic names. This is also the default behaviour.
GROUPS=<grouplist>
List of groups the requesting system has access to. A group is identified by a number between 1 and 255. Different groups are separated by a comma. You can specify a range of groups with a hyphen, e.g. 1-255. The default is all the groups.
GROUPS_LISTED=<grouplist>
Same as GROUPS but for listed systems. If omitted, the GROUPS setting will be used for listed systems as well.
ATTENTION: using this option requires a recent ProBoard nodelist index to be present - see also the note at the LISTEDONLY keyword.
GROUPS_SECURE=<grouplist>
Same as GROUPS but for secure sessions. If omitted, the GROUPS setting will be used for secure sessions as well.
KEEPCHAR=<character>
The character that should be prepended to filenames in the response file that should not be deleted after sending. By default this is +. This character is prepended only if PREPENDPLUS=YES.
NOTE: I don't currently know any mailer that requires changing this, but if you need it, the feature is there.
LISTEDONLY=<YES|NO>
If set to YES, only nodes listed in the nodelist(s) can request files.
For points, the bossnode must be listed if LISTEDPOINTS=NO. They must
be listed separately - with Point status - if LISTEDPOINTS=YES.
The default is NO.
NOTE: This feature requires that the NODE_IDX.PRO file is kept up
to date by running PBUTIL NC when a new nodelist comes in. If you
use nodelists other than NODELIST.nnn (e.g. nodelists of other
networks and/or pointlists), you must specify these on PBUTIL NC's
commandline (see the ProBoard documentation for more info). Point-
lists are sometimes distributed in a so-called Boss-format; this
format is incompatible with ProBoard (and PRP). You must use the
so-called Point-format (where points are identified with Point
in the status field).
If NODE_IDX.PRO or any of the nodelists referenced within can't be
read, PRP will assume the system is listed (of course an error message
will be written to the logfile as well).
This applies to LISTEDONLY as well as all the xxx_LISTED limits.
LISTEDPOINTS=<YES|NO>
If set to YES, points must be listed separately in the nodelist (see
LISTEDONLY). If set to NO, it is enough that their bossnode is listed.
This applies to LISTEDONLY as well as all the xxx_LISTED limits.
This setting is ignored if ALLOWPOINTS=NO. The default is NO.
LOGFILE=<logfile>
Defines the path and filename of the logfile. Leave empty, or simply omit, to disable logging.
MAGIC=<list with magic file names>
Defines the path and filename of the file containing a list of magic filenames (same file as the alias file in FrontDoor). If MAGICFORMAT=NORMAL, each non-blank line in the magic file list should have the following structure. If MAGICFORMAT=BINKLEY, only the lines beginning with the @-sign will be read.
<magic name>[<space>!<password>] [[>]<filespec> [[>]<filespec> ...]](see SAMPLE.MAG for an example)
If a password is specified, it must be preceded by at least one
space and an exclamation mark (!). The password itself may not
contain spaces (it may contain exclamation marks though), and
it is case insensitive.
The file specifications must be separated by at least one space.
The file specifications may contain wildcards, but they should always
be the full paths, including drive letter and directories.
In case of wildcards, by default all files conforming to the file
specification will be sent (as in PRP versions 1.14 and 1.15).
However, if you put a greater-than sign (>) immediately before
the file specification (no space inbetween), PRP will search
for the most recent matching file and will send this only (handy
for nodelists and the like), as in PRP versions 1.12 and 1.13.
If this option is omitted, no magic files will be available.
NOTE: When magic files are requested, the files will be searched in the ProBoard filebase (even in areas normally not authorized by the security level). If they are found, the description will be taken from there, and the download counters will be updated if that option is set. If it fails, no description will be provided and no download counters will be updated.
MAGICFORMAT=<NORMAL|BINKLEY>
When set to NORMAL, the default and also the behaviour of previous
versions of PRP, a standard magic file list as described above will
be expected to be found in the file specified in the MAGIC= setting.
When set to BINKLEY, a magic file list such as used by BinkleyTerm,
Allfix, etc. will be expected instead. This implies that all magic
files should be preceded by the @-sign. All the other lines in the
file will be ignored.
MAXFILES=<maximum number of files>
Defines the maximum number of files a system may request per session. If you omit this or set it to zero, there is no limit.
MAXFILES_LISTED=<maximum number of files>
Same as MAXFILES but for listed systems. If you omit this the setting from MAXFILES will be used.
ATTENTION: using this option requires a recent ProBoard nodelist index to be present - see also the note at the LISTEDONLY keyword.
MAXFILES_SECURE=<maximum number of files>
Same as MAXFILES but for secure sessions. If you omit this the setting from MAXFILES will be used.
MAXKB=<maximum number of kilobytes>
Defines the maximum number of kilobytes a system may request per session. If you omit this or set it to zero, there is no limit.
MAXKB_LISTED=<maximum number of kilobytes>
Same as MAXKB but for listed systems. If you omit this the setting from MAXKB will be used.
ATTENTION: using this option requires a recent ProBoard nodelist index to be present - see also the note at the LISTEDONLY keyword.
MAXKB_SECURE=<maximum number of kilobytes>
Same as MAXKB but for secure sessions. If you omit this the setting from MAXKB will be used.
MAXLEVEL=<maximum security level>
Defines the maximum security level a file area may have in ProBoard for a system to be allowed to request from it. Set this to 32767 (or omit it) if you want no limit.
MAXLEVEL_LISTED=<maximum security level>
Same as MAXLEVEL but for listed systems. If you omit this the setting from MAXLEVEL will be used.
ATTENTION: using this option requires a recent ProBoard nodelist index to be present - see also the note at the LISTEDONLY keyword.
MAXLEVEL_SECURE=<maximum security level>
Same as MAXLEVEL but for secure sessions. If you omit this the setting from MAXLEVEL will be used.
MAXFREQS=<n>
The maximum number of separate file requests that can be processed
at a time. The default is 256, as in the previous versions of PRP.
In the DOS version, if you set this value too high you will get a
"not enough memory" error. In the 32-bit versions that should not
be a problem.
MAXMATCHES=<n>
The maximum number of matching files that can be processed at a time.
The default is 256, as in the previous versions of PRP.
In the DOS version, if you set this value too high you will get a
"not enough memory" error. In the 32-bit versions that should not
be a problem.
MAXMAGICS=<n>
The maximum number of magic filenames that can be processed. The
default is 128, as in the previous versions of PRP.
In the DOS version, if you set this value too high you will get a
"not enough memory" error. In the 32-bit versions that should not
be a problem.
MAXSPECSPERMAGIC=<n>
The maximum number of file specifications per magic filename that can
be processed. The default is 16. If you don't use multiple file
specifications per magic, you can safely change this to 1.
In the DOS version, if you set this value too high you will get a
"not enough memory" error. In the 32-bit versions that should not
be a problem.
PBPATH=<path to ProBoard system directory>
If you omit this, the environment variable PROBOARD will be read, and if that isn't set, C:\PB will be assumed.
PREPENDPLUS=<YES|NO>
If set to YES (the default), PRP will prepend the character you define in KEEPCHAR ('+' by default) to the filenames in the response file that should not be deleted. This should usually be left to the default: YES.
REPORT=[<ALWAYS|ERROR|NEVER>][,<BEFORE|AFTER>]
The parts must be separated by a comma and both need not be present
(when a part is left empty the default is configured).
The first part selects when a report message should be sent to the
remote sysop:
ALWAYS : always send a report message (default)
ERROR : send a report message only if an error occurred
(file not found, limit exceeded)
NEVER : never send a report message, send the files only
The second part selects whether the report message, if one is sent,
should be sent before or after the files:
BEFORE : send report message before files
(so the remote will receive a report even if the
transfer is aborted and not all files are received)
This is the default value. It was also the behaviour of
PRP versions prior to 1.14 was.
AFTER : send report message after files
(so the remote will NOT receive a report if the
transfer is aborted and not all files are received)
This was the behaviour of PRP versions 1.14 and 1.15.
SAMEFILE=<YES|NO>
This option is only significant if SRIF=NO. If set to NO (the default), PRP will take 5 parameters of which the first two will be the request file and the response file. If set to YES, PRP will take 4 parameters of which the first one will be both the request and response file. This is only required by InterMail as far as I know.
SENDDUPENAME=<YES|NO>
If set to NO, the default and also the behaviour of previous
versions of PRP, of more files with the same file name, including
extension, only the first will be sent.
If set to YES, the other files will be sent. Depending on the
remote sysop's software, the files will be renamed, skipped,
or the first files will be overwritten.
If the files are copied to a local disk first, they are renamed,
for example TEST.ZIP becomes TEST.ZI1, TEST.ZI2, etc.
Two files with the same file name are sent *only* if they have
different file sizes.
SRIF=<YES|NO>
Whether your mailer uses the SRIF interface (e.g. Binkley 2.60 XE, Xenia) or a command line interface (e.g. FrontDoor). For more information see the installation instructions. The default is NO.
SYSOPNAME=<local sysop name>
Your name. This is the name that the local carbon copy message will
be addressed to if you use the CCPKTPATH option.
The default is Sysop.
TEMPDIR=<path>
By default PRP will read out the TEMP environment variable for the directory in which the response mail packets are created, and if that environment variable is not defined the current directory will be used. With this keyword you can overrule this setting.
Note: this is only for response mail packets, not for local copies of files. See COPYLOCAL for the latter.
TICSYSTEM=<address>[,<password>[,<multidesc>]]
This keyword specifies a system that will receive TIC files
together with the requested files.
<address> is the system's address, in the form zone:net/node[.point].
<password> is the system's file password; when omitted the TIC
files will not contain a password. The password is case-insensitive
and is limited to 20 characters.
<multidesc> is either YES or NO, depending on whether the system
supports multiple description lines in the TIC file. The default
is NO, which means the entire description will be put on a single
description line (truncated at 255 characters).
NOTE: The directory name the files are in will be used as the file area name after conversion to uppercase; e.g. if a certain file comes from the path E:\FILES\NODEDIFF\ then the file area name in the TIC will be NODEDIFF. You can configure upto 256 TIC-receiving systems.
TRASHCAN=<name of file containing locked-out systems>
This file is an ASCII list of either sysop names or node numbers
(or a mixture of them) that are not allowed to request any files
except free files.
No wildcards are allowed. Example:
Julius Caesar 1:2/3.4Would lock out everybody whose name is Julius Caesar and also everybody whose nodenumber is 1:2/3.4.
NOTE: People can of course still masquerade as someone else to request files. There's nothing I can do about that.
If you omit this option, all systems will be allowed to request.
UPDATECOUNTERS=<YES|NO>
If set to YES, PRP will append the requested files to the download logfile, so that on the next PBUTIL FC the download counter for this file will be updated. The default is NO.
The response template file must be named PRP.TPL and must be in the same directory as PRP.EXE. If this file isn't found, no response will be generated.
The first character of each line can define when a line should be included in the response:
; comment, always ignored + only if the request succeeded entirely * only if the request succeeded at least partly - only if the request didn't succeed entirely ! only if the request limits were exceeded % only if a password error occurred ? only if some of the requested files weren't found & only if the system was found in TRASHCAN.CTL $ only if ALLOWPOINTS=NO and the system is a point ^ only if LISTEDONLY=YES and the system is unlisted # always include this line
All other characters will cause the line to be always included. The # character is useful if you want a line beginning with any of the above characters to be always included.
You can use the following macros in the response template (case sensitive):
@SYSOPNAME@ name of sysop of requesting system
@SYSOPFIRST@ first name of sysop of requesting system
@FILES@ number of files sent
@KB@ number of kilobytes sent
@FREEFILES@ number of free files sent
@FREEKB@ number of free kilobytes sent
@MAXFILES@ maximum number of files this system can request
per session (UNLIMITED if 0)
@MAXKB@ maximum number of kilobytes this system can request
per session (UNLIMITED if 0)
@SENTFILES@ names and descriptions of sent files (everything
else on this line will be ignored)
@OVERLIMIT@ names and descriptions of files which exceeded limits
(everything else on this line will be ignored)
@BADPASSWORD@ names and descriptions of files for which the
required password was not given
(everything else on this line will be ignored)
@NOTFOUND@ names of files for which no match was found
(everything else on this line will be ignored)
See the example SAMPLE.TPL for an example on how to use these.
When a match is found, the file size and date/time stamp are looked up. It ignores this info in the FILES.BBS if present, so that an incorrect FILES.BBS doesn't cause incorrect results (like an attempt to send a missing file you forgot to delete from FILES.BBS etc.). Only the description is read from the FILES.BBS, with all optional information like file size, date/time, download counters etc. stripped. This way PRP avoids compatibility problems with the different date formats etc.
Extended descriptions are supported. The first non-whitespace character on each extended description line must be a +, | or >.
0 = all OK 1 = syntax error 2 = file error 3 = memory error
Although this is a freeware program, I am willing to give (limited) support for it. You can write netmail to me at 2:292/516@fidonet.org, or e-mail to tomtorfs@mail.dma.be or tomtorfs@village.uunet.be or tomtorfs@iname.com or call my BBS at 32-15-24.62.32 and leave a message.
You can always download the latest versions of my software and read about new features on my homepage: http://bewoner.dma.be/tomtorfs or http://80x86.home.ml.org.
Sorry, no source code for this one. If you want to write your own file request processor, you'll find enough information in the FrontDoor development kit (FDDEV) and in the file SRIF.DOC (inside the MaxF'Req archive) to do so without having to see my source.
Version Release date Changes
1.0 9 Apr 1996 Original version
1.01 3 May 1996 * Added file sharing support for
multiline BBSes
1.02 27 May 1996 * Unlimited requests from free
file areas & free magic names
(configurable)
* Logging now possible
* Added documentation for setup
with McMail mailer
* Miscellaneous small changes to
the documentation & code
1.02a 3 Jun 1996 * OS/2 problem fixed
1.03 2 Aug 1996 * 32-bit OS/2 version included
* Copy local for cd-rom drives
* Supports ^AINTL,^AFMPT and ^ATOPT
for correctly creating messages
to points and/or other zones
* A tearline is now added to the
response message
* Fixed bug in wildcard matching
1.10 20 Aug 1996 * Now supports SRIF interface, used
by Binkley 2.60 XE, Xenia, McMail,
Cantaloup, ...
* Option to update download counters
* More selective dupe-checking
* Limits are no longer hardcoded and
can now be set in PRP.CFG
* Proper descriptions are now given
with magic names if they are in the
PB filebase, the listingfile needs
no longer be FILES.BBS in the same
directory as the magic file
* Fixed a small bug that caused
download counters >99 not to be
stripped off properly
* Fixed another small bug in wildcard
matching; should be all fixed now
* If PBPATH is not defined in PRP.CFG,
PRP now reads PROBOARD environment
variable instead of PB
1.11 7 Sep 1996 * Binkley 2.60 XE seems to expect ERPs
to create the necessary outbound
subdirectories themselves; PRP does
this now
* Documented the fact that Janus protocol
should be disabled in Binkley 2.60 XE
* Temporary mail packets are now created
in the directory where the environment
variable TEMP points at, instead of
always in the current directory
* Added REPORT option to disable generating
a response message if no errors occurred
* Added macros @FILES@, @KB@, @FREEFILES@
and @FREEKB@ in message template
* Error messages are now also written to
the logfile for later examination
* Added PREPENDPLUS keyword to disable
the '+' before the filenames in the
response file
* Added SAMEFILE keyword for mailers that
use the same file for the request and
the response file (e.g. InterMail)
* Added InterMail setup information
1.12 30 Sep 1996 * Added support for passwords with
magic names; added @BADPASSWORD@
macros and % condition character
to handle password errors
* Magic files with wildcards will
now always send the most recent
file instead of the first file
* Comments now allowed in magic list
* Added sample magic list SAMPLE.MAG
* Added CCPKTPATH & SYSOPNAME options
to send a carbon copy of the report
message to the local sysop
* Fixed bug introduced in v1.10 that
caused files requested using magic
names to not have descriptions in
the response message sometimes
* Fixed bug that caused the very first
file in the file-index to never be
found
* Fixed bug that caused undefined
behaviour when a SRIF file doesn't
contain a RemoteStatus statement
* PRP now works properly with filepaths
that end with a (back)slash already
1.13 16 Nov 1996 * T-Mail is now supported
* Added KEEPCHAR and ERASECHAR keywords
* Added the AVOIDMULTI keyword to prevent
people from avoiding the request limits
by doing multiple calls after each other
* Added support for TRASHCAN.CTL; also
added the & condition character for
systems found in TRASHCAN.CTL
* Fixed bug that caused local carbon
copies of the response message to
only display the first line of
multiline descriptions
* Fixed bug that caused PRP to always
use the last AKA of the remote system
when operating in SRIF mode, instead
of the first
* Fixed bug that caused bogus requests
like ROCKWELL*.* to fail
* Re-organized the configuration keywords
for better clarity; in this doc they
are listed alphabetically now and in
the sample configuration file they are
listed systematically
1.13a 28 Nov 1996 * Fixed bug that caused the AVOIDMULTI
feature to be quite unstable (crashed
under some circumstances)
1.14 15 Jun 1997 * Added the LISTEDONLY and LISTEDPOINTS
keywords to prevent unlisted nodes
and/or points from requesting files
(reads ProBoard's nodelist index);
added ^ condition character
* Added the ALLOWPOINTS keyword to
prevent points from requesting files;
added $ condition character
* Added support for multiple AKAs
* The response message is now sent
after the files, so that if the
connection is aborted, no message
is sent
* You can now use wildcards in the
magic name definitions and you
can put multiple filenames with
one magic
* Ignores the CHECKEXTENSION=NO setting
if the base filename contains only
a *
* PRP wrote 'sent' to the logfile if a
wrong password was specified; it writes
'bad pwd' now
1.14a 21 Jun 1997 * Fixed bug that caused a general
protection fault in the OS/2 version
1.15 21 Aug 1997 * Included Win95/NT version
* Added support for selective access based
on access flags and/or file groups
* Added support for Binkley-style
magic lists (with @-signs)
* Now supports sending TIC files together
with requested files
* Can now use a different address as
'from' in the carbon copy message
* Can now retry during a configurable time
if access to the ProBoard index files is
denied (for multi-node systems)
* Reformatted the logfile slightly (now
includes subdirectories)
* The subject line of the CC messages now
also includes the requester's address
* Added WHATSNEW.115 file which contains
the latest changes
1.16 03 Apr 1998 * New! HTML version of documentation
(use an Internet browser, e.g.
NetScape or MSIE, to read PRP.HTM)
* You can now specify separate limits
for listed systems in addition to
password-protected (secure) systems
and normal (unlisted) systems
* Added TEMPDIR statement to overrule
TEMP environment variable
* Extended REPORT option to allow
configuring whether response message
is sent before or after the files
ATTENTION: the new default is
to send it before the files, like
in PRP versions prior to 1.14
* You can now instruct PRP to send
only the most recent matching file
for wildcards in magics, by putting
a greater-than sign (>) before
the file specification.
* Added /local switch to allow
to search for files locally
* Added Argus setup information
* Fixed bug that caused problems on some
8088-based PC-XTs
* Fixed a minor bug where PRP would
sometimes not correctly strip the
filesize information from the
FILES.BBS description
Thanks to the following people for giving me useful suggestions and/or reporting bugs: (in chronological order)
Jacques Theys suggested file sharing compatibility
Jacques Theys provided the McMail setup string
Jurre Van Dijken requested download counter update option
Hans Waasdorp requested option to disable report if no errors Tobias Ernst informed me that Janus must be disabled in Binkley XE David Moufarrege informed me that InterMail didn't work with PRP 1.10
Lots of people reported the bug with no descriptions being sent when requesting using magic names in PRP 1.11.
Jacques Theys informed me about the last-AKA bug in SRIF mode
Hans Waasdorp informed me about the "ROCKWELL*.*" problem
Christoph Grigo reported the bug with multiline descriptions in
the local carbon copy & requested the TRASHCAN.CTL
support and the AVOIDMULTI feature
Ken Givens requested T-Mail support and provided me with the
correct settings for T-Mail
Multiple people reported the bug with the AVOIDMULTI feature in PRP 1.13.
Christoph Grigo requested the listed systems only feature
Ronald Glaeser requested the support for multiple AKAs
Holger Riedl requested that the response message be sent
after the files
Felix Mueller requested the support for wildcards in the
magics and multiple filenames per magic
Rudolf Paege reported the problem with CHECKEXTENSION=NO
and base filenames with only a *
Sean Rima requested the Win95/NT version and accepted
to become the betatester for it
& requested the CCFROMADDR feature
Holger Riedl requested the support for flags & groups
Jochen De Smet requested the support for Binkley-style
& Jacques Theys magic lists
Hans Gras requested the retry if access denied
& the minor logfile reformatting
Steven Leeman requested adding the requester's address to
the subject line of the CC messages
Hans Gras reported the problem with the 8088-based XTs
& requested the TEMPDIR keyword
& requested the ability to configure whether
the response message is sent before or after
the files
Steven Leeman requested the possibility to send only the
most recent file on wildcards in magics
& reported the problem with some filesizes not
being stripped properly from the description
& requested the local mode feature
Christoph Grigo requested the separate limits for listed systems
David Moufarrege provided Argus setup information
Thanks to the following people for helping me test PRP: (in alphabetical order)
Olivier Baum Jochen De Smet Joost Luyten David Moufarrege Sean Rima
Some of the SRIF-mailer settings were taken from the documentation of MaxF'Req file request processor written by Wilfried Brinkmann.
The SRIF (Standard Request Information File) file format is Copyright (c) 1994,95 by Gordian Schuermann & Mirko Mucko.