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 onlyThe 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.