Max Levenkov @ 2:5000/117 (1999 - 2002)
This document describes HPT 1.3.0, a Fidonet Message Tosser for OS/2, Windows, BeOS and Unix.
Overview | What is HPT? |
Installation | Installation. Read this! |
Configuration Reference | Explanation of the configuration file. |
Advanced Concepts | Advanced features and concepts. |
Keyword Index | Configuration File Keywords Index |
An Overview on HPT
HPT is a Fidonet message tosser and packer with areafix, written by Matthias Tichy, 2:2432/645@fidonet. Now project supported by Max Levenkov, 2:5000/117@fidonet and Husky Development Team.
Features of HPT:
The advantages of HPT is:
Installation Procedures and Release Notes
This chapter provides you with information that is necessary to successfully install and use HPT.
I suppose, that you already has compiled binaries. If not - read "Download" or "Compile the Source Code" chapters.
tparser
from FIDOCONFIG package to test your config (read
about PublicGroup
or AccessGrp
if you want to use groups for
EchoAreas
)
Download | Download the Source Code & Binary Files |
Compiling | How to compile the source code |
Support | Support, Contacting the Author, Reporting Bugs, Contributing Code |
Credits | Credits |
Download the Source Code & Binary Files
http://husky.physcip.uni-stuttgart.de/hpt.html
www.chat.ru/~sirevtov/files
www.sirevtov.narod.ru
Compiling the Source Code
1. The smapi and fidoconf packages are required for hpt.
2. Put the fidoconfig ans smapi packages in the directory where the other packages of fido linux reside:
3. Compile and install smapi and fidoconf packages. Use "Makefile" for dynamic executables and makefile.lnx (or what you need) for static ones.
4. Compile and install hpt:
You should use the _same_ makefiles in smapi, fidoconf and hpt.
Support, Contacting the Author, Reporting Bugs, Contributing Code
There are numerous reasons why you might wish to establish contact with me, the author of HPT.
FIDOSOFT.HUSKY
RU.HUSKY
RU.ECHOPROCESSORS
If you do not have access to any of these echos, you may of course also contact me via netmail or e-mail at the addresses listed below.
If you are experienced user and get core dump, you can send
me gdb report. If you have a crash, locate core
file that has
been generated. Then run $ gdb hpt core, type where. HPT must
be compiled with debug information (DEBUG=1 in huskymak.cfg
file). Then send report to address below.
If you are running any other binary version (like Windows), you will not get a core file on a crash. Write down as much information as you can, try to find a way to reproduce the crash and contact me at the addresses below.
If you want to write a new feature for HPT, please contact me beforehand to avoid that we do duplicate work. Again, I will appreciate and honor eny efforts done by you. Please note that for writing a HPT enhancement, you should be familiar with C. Also, HPT uses a special indentation style throughout the source code, that I would like you to adhere to.
So here are my addresses if you want to get in contact with me:
Credits
Thanks to:
HPT based on FIDOCONFIG library, so read documentation of FIDOCONFIG about location of config file and keywords ideology.
Keywords | This chapter describes keywords |
Files and Paths | File & Path keywords |
Link Keywords | Links configuration |
Area Definition | Areas definition |
Carbon Copy | Carbon Copy keywords |
General Keywords
AddToSeen | add addr to seen-by's |
Address | your system address |
AfterUnpack | execute string after unpack arcmail bundles |
AreafixFromPkt | process areafix requests on the fly |
AreafixKillReports | set kill/sent flag to areafix reports |
AreafixKillRequests | delete areafix requests |
AreafixMsgSize | maximum areafix report size |
AreafixNames | set additional areafix names |
AreafixFromName | set From: field in response messages |
AreafixOrigin | set origin for areafix reports |
AreafixSplitStr | set split string for splitted areafix messages |
AreafixQueryReports | insert linked areas list into areafix reports |
AreafixQueueFile | idle requests queue file for areafix |
AreasFileNameCase | case of filenames of autocreated areas |
AutoAreaCreateFlag | create this file-flag after auto-area-create |
AutoPassive | set pause for links who don't poll our system |
BeforePack | execute string before pack pkt files |
BundleNameStyle | style of filenames of arcmail bundles |
CreateAreasCase | case of autocreated areas names |
CreateFwdNonPass | autocreate non-passthru echoes in fwd.req. operations |
DefArcmailSize | default size for arcmail bundle |
DisableTID | disable adding TID to messages |
DisablePID | disable adding PID to messages |
ForwardRequestTimeout | requested from uplink echoarea traffic timeout (in days) |
IdlePassthruTimeout | timeout (in days) before unlink on uplink passthrough echo with one link (& some time later remove from config) |
IgnoreCapWord | ignore Capability Word in pkt files |
IgnoreSeen | ignore SEEN-BYs and pack mail for link |
KeepTrsFiles | keep transit files |
KeepTrsMail | keep transit netmail messages |
KilledRequestTimeout | wait time (in days) for kill echo without links |
KludgeAreaNetmail | how to process netmail with kludge "AREA:NETMAIL" |
LinkWithImportLog | list of areas only which should be linked |
LogEchoToScreen | set output to screen log information |
LogLevels | set level of log output |
Name | your system's name |
NetmailFlag | create flag after unpacking netmail msg |
NewAreaRefuseFile | file with areas which we don't want to autocreate |
NoProcessBundles | no unpack arcmail bundles |
Origin | add specified origin to hpt messages |
Pack | definition for packer |
PackNetMailOnScan | pack netmail found in EchoTossLog file when scan |
ProcessPkt | execute string before tossing pkts |
PublicGroup | this is a list of groups for public echo acess |
Remap | remap mail to other address |
ReportTo | set area or netmail for autocreate reports |
RobotsArea | area for areafix scanning |
Route | routing of netmails |
RouteFile | routing of netmails with file attached |
RouteMail | routing of netmails without file attached |
ScreenLogLevels | set level of log output to screen |
SeparateBundles | move echomail for each link to his own directory |
SetConsoleTitle | schange conesole title under win32 |
Sysop | your name |
TearLine | add specified tearline to hpt messages |
TossingExt | extension of mail files while tossing |
Unpack | definition for unpacker |
AddToSeen
addToSeen <addr> [<addr> ...]
addToSeen 99/100 99/101
Add <addr> to SEEN-BYs. If <addr> is present or not - it is always adds.
This statement can be repeated.
Address
Address <addr>
Address 2:2433/1245
This command specifies which akas your system has. This statement is
full 5d compatible, which means you can have also addresses like
2:2433/1245.1@fidonet.org
. The first address statement is your
main aka which will be used by tossers on different occasions, for
example if zone number could not be taken from the @INTL Kludge in
netmails.
This statement can be repeated. The domain name is not full supported throughout fidoconfig
AfterUnpack
afterUnpack <string>
afterUnpack pktpack /home/fido/in.tmp/*.pkt
This <string> executes after unpacking arcmail bundle. You may
process your pkt files in tempInbound
directory with external utility.
This statement cannot be repeated.
AreafixFromPkt
areafixFromPkt <bool>
areafixFromPkt
Process areafix requests on the fly. Check "areafix", "areamgr" & "hpt" keywords in toUserName field. Request messages don't saves.
This statement cannot be repeated.
See AreafixNames.
AreafixKillReports
areafixKillReports <bool>
areafixKillReports
Set kill/sent flag to areafix reports.
This statement cannot be repeated.
AreafixKillRequests
areafixKillRequests <bool>
areafixKillRequests
Delete requests from links to areafix.
This statement cannot be repeated.
AreafixMsgSize
areafixmsgsize <integer>
areafixmsgsize 20
This option set up maximum areafix message size (20 kb). If not defined, areafix reports will be not splitted...
This statement cannot be repeated.
AreafixNames
AreafixNames <string>
AreafixNames SqaFix, hptfix
Set additional names for areafix robot. Default is "areafix", "areamgr", "hpt".
This statement cannot be repeated.
AreafixFromName
AreafixFromName <string>
AreafixFromName "HPT AreaFix"
Use value from AreafixFromName
in field From
when responding on
messages to areafix. If this token not defined, name in original
message will be used. Example:
1) AreafixFromName not defined in config: Original message to areafix: ---------------------------- From: Sysop To: ArEaFiX AreaFix's response: ------------------- From: ArEaFiX To: Sysop 2) AreafixFromName "HPT AreaFix" Original message to areafix: ---------------------------- From: Sysop To: ArEaFiX AreaFix's response: ------------------- From: HPT AreaFix To: Sysop
AreafixOrigin
areafixOrigin <string>
areafixOrigin c0()1 $tAt10n
the origin string in areafix reports will be like this: * Origin: c0()1 $tAt10n (<your addr>)
This statement cannot be repeated.
AreafixSplitStr
areafixSplitStr <string>
areafixSplitStr > Message splitted. To be continued...
This string added after splitted areafix messages.
This statement cannot be repeated.
AreafixQueryReports
areafixQueryReports <bool>
areafixQueryReports off
This statement enables/disables including linked areas list into all areafix replies.
Default: off.
This statement cannot be repeated.
AreafixQueueFile
AreafixQueueFile <string>
areafixQueueFile /fido/datafiles
This command specifies the queue file containing your delayed
forward-requests. Hpt must have read/write rights for this file. To
use this feature run hpt qupd
periodically.
This statement cannot be repeated.
AreasFileNameCase
areasFileNameCase (Lower|Upper)
areasFileNameCase Upper
This statement defines case of filemanes of autocreated areas. Default is lower case.
This statement cannot be repeated.
AutoAreaCreateFlag
autoareacreateflag <file>
autoareacreateflag /etc/ftn/flags/aac.flag
Create file-flag after autocreating echo area. This feature can be used for execute some scripts after tossing.
This statement cannot be repeated.
AutoPassive
autopassive <bool>
autopassive
If this statement defined, HPT will check for old bundles in every run. You can do it also with command line arg. "pause".
See AutoPause.
This statement cannot be repeated.
BeforePack
beforePack <string>
beforePack pktpack /home/fido/out.tmp/*.pkt
This <string> executes before packing pkt files to arcmail bundles.
You may process your pkt files in tempOutbound
directory with external
utility.
This statement cannot be repeated.
BundleNameStyle
bundleNameStyle <timeStamp | addrDiff | addrsCRC32 |
addrDiffAlways | addrsCRC32Always | Amiga>
bundleNameStyle timeStamp
This statament sets rule for creating names of arcmail bundles.
timeStamp
when all alowed extensions were used. timeStamp
when all
alowed extensions were used. Outbound
directory
like this:
2.5000.117.1.hut 2.5000.117.1.mo0If
SeparateBundles on
and Packer
not defined pkt moves to
2.5000.117.1.sep
directory.
Extensions & prefixes in flo files creates as in addrDiffAlways
algorythm.
See LinkBundleNameStyle.
This statement cannot be repeated.
CreateAreasCase
createAreasCase (Lower|Upper)
createAreasCase Upper
This statement defines case of areanames in autocreation. Default is lower case.
This statement cannot be repeated.
CreateFwdNonPass
createFwdNonPass <bool>
createFwdNonPass
Autocreate non-passthru echoes in forward request operations. MsgBaseDir should be not passthrough!
This statement cannot be repeated.
DefArcmailSize
defarcmailsize <integer>
defarcmailsize 1024
default arcmail size in kb for all links. 500kb if not defined.
This statement cannot be repeated.
DisableTID
DisableTID <bool>
DisableTID
Don't add TID-line to scanned messages.
This statement cannot be repeated.
DisablePID
DisablePID <bool>
DisablePID
Don't add PID-line to generated messages.
This statement cannot be repeated.
ForwardRequestTimeout
ForwardRequestTimeout <number>
ForwardRequestTimeout 7
This statement specifies time to wait (in days) for echoarea
requested from uplink. If there is no traffic in this echoarea, hpt
qupd
unsubscribes area from this uplink and subscribes to it at
next uplink. If next uplink for this echoarea not avaiable, hpt qupd
removes echoarea from queue.
To use this feature run hpt qupd
daily.
Default is 7 days.
This statement cannot be repeated.
IdlePassthruTimeout
IdlePassthruTimeout <number>
IdlePassthruTimeout 3
This statement specifies time to wait (in days) before unsubscribing echoarea from uplink after the time last downlink unsubscribed (one uplink rest).
To use this feature run hpt qupd
daily.
Default is 3 days.
This statement cannot be repeated.
IgnoreCapWord
IgnoreCapWord <bool>
IgnoreCapWord
Ignoring Capability Word in pkt files. If some pkt moved to bad. This may help, but not recommended. It is better to change old software.
This statement cannot be repeated.
IgnoreSeen
IgnoreSeen <addr> [<addr> ...]
IgnoreSeen 99/150
Ignore this SEEN-BY & pack mail for link. But no pack it back if the mail was from him.
This statement can be repeated.
KeepTrsFiles
keepTrsFiles <bool>
keepTrsFiles
Leave transit (routed) files in Inbound
directory. If this statement
is ommitted transit files wouldn't be kept. Default is "off".
File route possible with "Att" attribute in message header and file name in subject line.
This statement cannot be repeated.
See RouteFile.
KeepTrsMail
keepTrsMail <bool>
keepTrsMail
Save transit messages in NetmailArea. If this statement is ommitted transit messages wouldn't be kept in NetmailArea. Default is "off".
This statement cannot be repeated.
KilledRequestTimeout
KilledRequestTimeout <number>
KilledRequestTimeout 4
This statement specified time wait (days) for delete from config
echoarea after unsubscribe it from uplink (last link). Run hpt qupd
daily for use this feature.
Default is 4 days.
This statement cannot be repeated.
KludgeAreaNetmail
kludgeAreaNetmail <kill | ignore | echomail>
kludgeAreaNetmail kill
Default is "kill"
If message started with "AREA:NETMAIL" we have three ways:
1. kill this kludge. process message as netmail. 2. ignore this kludge. process message as netmail. 3. process message as echomail.
This statement cannot be repeated.
LinkWithImportLog
linkWithImportLog <yes | no | kill>
linkWithImportLog yes
This statement specifies if the importlog-file should be used to determine which echomail areas need to be linked.
This statement cannot be repeated.
LogEchoToScreen
logEchoToScreen <bool>
logEchoToScreen
Set output to screen log messages.
This statement cannot be repeated.
LogLevels
loglevels <string>
loglevels 345789
In example we output to log messages with levels 3,4,5,7,8,9. The log levels are following:
The log levels are following:
Default value: 1234567890ABCDEF
This statement cannot be repeated.
Name
name <string>
name Leetebrok BBS
Here you specify your Systems name.
This statement cannot be repeated.
NetmailFlag
netmailFlag <file>
netmailFlag /etc/ftn/flags/netmail
Create file-flag after unpacking netmail msg. This feature can be used for execute netmail trackers after tossing.
This file also created after scannig NetmailArea
without route
definition. Scanning is stopped but file-flag created for netmail
tracker.
This statement cannot be repeated.
NewAreaRefuseFile
newAreaRefuseFile <file>
newAreaRefuseFile /etc/ftn/areas/dontcrte.lst
This token defines a file which will be used when autocreating echoarea. File contains list of areas which we don't allow to autocreate. Each line of this file is a mask of echotag.
Example:
This statement cannot be repeated.
NoProcessBundles
noProcessBundles <bool>
noProcessBundles
Don't unpack arcmail bundles.
This statement cannot be repeated.
Origin
origin <string>
origin mega cool station
Add this Origin to hpt messages: post, reports about new areas created, areafix (if no areafixOrigin defined).
This statement cannot be repeated.
Pack
Pack zip|tgz|rar|arc|arj|..... <call>
Pack zip zip -9 -g -q $a $f
This statement sets the command line call for the packer. The file will be moved into the archive, that means the file will be deleted on the harddisk. It only remains in the archive.
$a will be replaced by the archive file.
$f will be replaced by the file which should be packed into the archive.
This statement can be repeated.
PackNetMailOnScan
PackNetMailOnScan <bool>
PackNetMailOnScan off
When PackNetMailOnScan is "on" (default) hpt packs netmail when doing "hpt scan" and netmail area is found in EchoTossLog file. When it is "off" hpt leaves netmail area(s) in EchoTossLog file until "hpt pack" is invoked.
This statement can be repeated (overwrides old setting).
ProcessPkt
processPkt <string>
processPkt pktdate
The <string> willl be executed before tossing each pkt file. You are
able to fix your pkts using pktdate or any other tool before tossing
them. Note that pkt file may be renamed depending of tossingExt
token
value.
This statement cannot be repeated.
PublicGroup
PublicGroup <string>[,<string>,...]
PublicGroup local,a,b,othernet
This is a list of groups for public echo acess.
This statement cannot be repeated.
Remap
Remap <toUserName>,<to_addr>,<new_addr>
Remap Max Levenkov,2:5000/117,2:5000/117.1
Remap mail to other address. This statement is not tested well, not touches TOPT & FMPT kludges.
This statement can be repeated.
ReportTo
ReportTo <string>
ReportTo netmail
Set name of echoarea or netmailarea for autocreate reports.
This statement cannot be repeated.
RobotsArea
robotsArea <string>
robotsArea SecondNetMail
This area used for areafix scanning. Replyes from areafix will be also stored here. robotsArea must be NetmailArea!
This statement cannot be repeated.
Route
route <flavour> <target> <linkWW> [<linkWW> ...]
route crash 2:2433/1245 2:2433/* 2:2432/*
This statement defines a route.
flavour:
target:
linkWW is a dos pattern with ? and *.
Route statements are parsed in descending order: Pseudo-code:
1) actual = first statement 2) if linkWWW = msg-destination using pattern matching 2a) take this routing and return 2b) else actual = next statement 3) jump to 2)
NOTE! This statement defined after "links" section.
This statement can be repeated.
RouteFile
routeFile <flavour> <target> <linkWW> [<linkWW> ...]
routeFile crash 2:2433/1245 2:2433/* 2:2432/*
This statement is the same as the Route
statement, but considers
only msgs with file attaches. Files are routed with netmail msgs. If no
RouteFile
defined, then files will be not routed at all!
This statement can be repeated.
RouteMail
routeMail <flavour> <target> <linkWW> [<linkWW> ...]
routeMail crash 2:2433/1245 2:2433/* 2:2432/*
This statement is the same as the Route
statement.
This statement can be repeated.
ScreenLogLevels
screenloglevels <string>
screenloglevels 2345789
Set level of log output to screen. See loglevels for details
This statement cannot be repeated.
SeparateBundles
SeparateBundles <bool>
SeparateBundles
Move echomail for all links to his own directorys.
This statement cannot be repeated.
SetConsoleTitle
SetConsoleTitle <bool>
SetConsoleTitle
Set hpt console title while tossing. (WIN32 Only!)
This statement cannot be repeated.
Sysop
sysop <string>
sysop Matthias Tichy
You specify your name with this keyword.
This statement cannot be repeated.
TearLine
tearline <string>
tearline We Love HPT! :)
Add this tearline to hpt messages (post, reports about new areas created)
This statement cannot be repeated.
TossingExt
TossingExt [<string>]
TossingExt tos
Extension of bundle & packet files will be changed to <string> before
tossing (and before processPkt string executed if set). That may be used
for preventing of permanent tossing fault because of bad file in
inbound. Default extension: tos. TossingExt
without parameter
disables files renaming in tossing.
This statement cannot be repeated.
Unpack
Unpack "<call>" <offset> <matchcode>
Unpack "unzip -joLqq $a -d $p" 0 504b0304
This statement sets the call of certain unpackers according to a id in the archive file
call: see pack
offset: position of recognition string in packed file.
match code: recognition string for packed file, ?? can be used as don't care
$a will be replaced by the archive file.
$p will be replaced by the temp inbound path.
e.g.: unpack "unzip -joLqq $a -d $p" 0 504b0304 files packed by zip can be recognized by 504b0304(hex) at offset 0(integer) they can be unpacked by "unzip -joLqq <filename> -d <path>"
This statement can be repeated.
Files and Paths
AdvisoryLock | set lock file "advisory" |
AreafixHelp | file with help for areafix reports |
AreafixQueueFile | idle requests queue file for areafix |
AreasMaxDupeAge | max age for dupes in CommonDupeBase |
DupeBaseType | type of dupe base |
DupeHistoryDir | path for dupe files |
EchoTossLog | file which contains the names of the areas to scan |
FileBoxesDir | directory where link fileBoxes are created |
HptPerlFile | file which contains perl filter functions |
ImportLog | file which contains the names of the areas tossed in |
Inbound | inbound path |
Include | include other files |
Intab | file for recoding incoming msgs |
LocalInbound | local inbound |
LockFile | file which lock hpt session |
LogFileDir | path for log files |
MinDiskFreeSpace | minimum free space on the drive |
MsgBaseDir | base directory of areas |
NotValidFileNameChars | chars that will be converted to hex values |
Outbound | outbound path |
Outtab | file for recoding outgoing msgs |
ProtInbound | protected inbound |
RulesDir | directory with area rules |
StatLog | file whith counter of personal net- and echo mails |
TempInbound | temporary inbound path |
TempOutbound | temporary outbound path |
AdvisoryLock
AdvisoryLock <bool>
AdvisoryLock on
If AdvisoryLock
turned "on", then HPT checks if LockFile
is locked
by another session of HPT or not. Program will be terminated if the
original process which created LockFile
is running. And if the file
exists, but not locked (stale), HPT will be running...
This statement cannot be repeated.
Don't use this under BeOS! (there is no locking mechanism).
See LockFile.
AreafixHelp
areafixhelp <file>
areafixhelp /etc/ftn/areafix.hlp
This is help file, which sends to link if he requests "%HELP".
This statement cannot be repeated.
AreasMaxDupeAge
areasMaxDupeAge <integer>
areasMaxDupeAge 10
Set maximum days for storing you hashes in CommonDupeBase. Default value is 5.
This statement cannot be repeated.
DupeBaseType
dupeBaseType <TextDupes | HashDupes | HashDupesWMsgId |
CommonDupeBase>
dupeBaseType HashDupesWMsgId
Default is HashDupesWMsgId
.
This statement cannot be repeated.
DupeHistoryDir
dupeHistoryDir <path>
dupeHistoryDir /var/spool/fido/dupes
This command specifies the path where the dupe history files are stored. The format and the names of the dupe-files are not standardized.
This statement cannot be repeated.
EchoTossLog
echotosslog <file>
echotosslog /var/spool/fido/echotoss.log
This statement specifies the file which is filled by a message editor or "hpt post" with the names of the areas where new echomails have been entered. A tosser will only scan those areas which leads to a great speed-up. After scanning the tosser will remove the file. Netmail areas will be packed too.
This statement cannot be repeated.
FileBoxesDir
FileBoxesDir <directory>
FileBoxesDir ../boxes
This statement specifies directory where link file boxes are placed (and created if necessary). Currnetly hpt creates file box names in form z.n.f.p (ex.: 2.5021.19.1). Trailing ".h" is added if link echomail flavour is "hold".
This statement cannot be repeated.
HptPerlFile
hptperlfile <file>
hptperlfile /etc/ftn/filter.pl
This statement specifies the file which contains perl filter functions. If not specified, perl support will be switched off.
This statement cannot be repeated.
ImportLog
importlog <file>
importlog /var/spool/fido/import.log
This statement specifies the file which a tosser fills with the names of the areas where echomails has been tossed in.
This statement cannot be repeated.
Inbound
inbound <path>
inbound /var/spool/fido/in
This command specifies where your inbound files are stored. This directory is the base directory which means if you have a connection which is not protected and the other system is not listed. The files go in here. Only non-packed netmails are tossed from this inbound.
This statement cannot be repeated.
Include
include <file>
include /etc/fido/areas
You can include other files into your config file. For example if you would like to have different config parts, you can include a file and (via cron job or manually) change the content of this file without changing the rest of the config. Additionally you can split your config in different parts. So you can have your fileareas definition in another file than your msgareas definition. This gives your the ability to have some survey about your config.
This statement can be repeated. But dont make recursive includes. eg include a file which includes another which includes the first. Although this will be detected and fixed many times, there is a chance that it will not be detected one time.
Intab
intab <file>
intab /var/spool/fido/recode/outaltkoi8
This statement specifies the file which should be used to recode the characters of the incoming messages from transport to internal charset. It is useful in russia. If you do not use this statement no recoding will be done.
This statement cannot be repeated.
LocalInbound
localinbound <path>
localinbound /var/spool/fido/in.loc
This command specifies the path, from which all types of netmail and echomail are tossed without any password checking. You can put pkt-76;s here which were created by a file tosser etc. So created by a you or a programm on your own system.
This statement cannot be repeated.
LockFile
lockfile <file>
lockfile /var/lock/hpt.lock
Another session of HPT will be terminated if the LockFile
is exists
(default setting).
This statement cannot be repeated.
See AdvisoryLock.
LogFileDir
logFileDir <path>
logFileDir /var/spool/log/fido
This command specifies the path where the log-files of the fido-programs should be stored.
This statement cannot be repeated.
MinDiskFreeSpace
MinDiskFreeSpace <integer>
MinDiskFreeSpace 10
This is the minimum disk free space in MB to run HPT. The following
directories are checked: TempInbound
, MsgBaseDir
, LinkMsgBaseDir
s.
This statement cannot be repeated.
MsgBaseDir
msgBaseDir <path>
msgBaseDir /var/spool/fido/msgb
This command specifies the path where msgBases of autocreated areas
are stored. For example: if an area called LINUX.GER
was autocreated
and the msgBaseDir is /var/spool/fido/msgb
the resulting msgBaseName is
/var/spool/fido/msgb/linux.ger.sqd
If you specify the msgbasedir as PASSTHROUGH, the areas will be created as passthrough areas.
This statement cannot be repeated.
See LinkMsgBaseDir.
NotValidFileNameChars
NotValidFileNameChars <string>
NotValidFileNameChars :;<>=*?\/
This characters in message and dupebase filenames will be replaced with %hex analogs. If not defined, default string used: "*/:;<=>?\|%`'&+
This statement cannot be repeated.
Outbound
outbound <path>
outbound /var/spool/fido/out
This command specifies your outbound path. This outbound path is binkley-style. A binkley style outbound consists of a base path and subdirectories. Each subdirectory represents a place for all the files for one zone. The base path is the zone path for your base zone.
Example:
The zone directory contains the flow-files for each node. A Flow-file of a node has the name NNNNFFFF.?lo
For points there is a subdirectory with nodes flowfilename with suffix.pnt. In this subdirectory the flowfiles have the names PPPPPPPP ( 8-digit point number in hex).
For a deeper background on a binkley-style outbound see the binkley-term documentation and source code.
This statement cannot be repeated.
Outtab
outtab <file>
outtab /var/spool/fido/recode/outkoi8alt
This statement specifies the file which should be used to recode the characters of the outgoing messages from internal to transport charset. It is useful in russia. If you do not use this statement no recoding will be done.
This statement cannot be repeated.
ProtInbound
protinbound <path>
protinbound /var/spool/fido/in.sec
This command specifies where files should be stored which were received during a password-protected session. All types of mail are tossed from this path. But passwords are checked before.
This statement cannot be repeated.
RulesDir
rulesdir <path>
rulesdir /home/ftn/rules
This statement specifies where areafix searches for files with
echoarea rules which are sent to link via netmail when link is
subscribed to areas. File name is the same as message base file with
trailing ".rul" (and consistently .ru1-.ru9 files with additional
information). Areaname is used when no message base file is set. See
also NoRules
statement to avoid areafix from sending rules to link.
This statement cannot be repeated.
StatLog
statlog <file>
statlog /var/spool/fido/stat.log
After tossing (hpt toss), it is checked if there is new personal mail (netmail or personal echo mail). If that's true, it is checked if statlog is defined in config. If yes, then it is checked if the log file exists. If not, then it is created and the number of received netmails or/and personal echo mails is written to the log file. Otherwise, if the file exists, the old counter will be read, added to the new counter and written the actual counter. The log file looks like this: netmail: x CC: x Whereas x is the number of mails. If the log file exists, one of the two or both lines exist.
This is for utils, which can show you how many personal mail you got. The log file is not removed by hpt, only by the util that uses it. Or you could write in your toss script something like this: if exist stat.log type stat.log if exist stat.log del stat.log>nul
This statement cannot be repeated.
TempInbound
tempinbound <path>
tempinbound /var/spool/fido/in.tmp
This command specifies a path which is used while tossing. The incoming packets are unpacked there.
This statement cannot be repeated.
TempOutbound
tempoutbound <path>
tempoutbound /var/spool/fido/out.tmp
This command specifies your temporary outbound path. It is used for storing outgoing pkt-files before packing.
This statement cannot be repeated.
Link Keywords
AccessGrp | groups for echomail access |
AdvancedAreafix | advanced areafix |
Aka | links adress |
AllowEmptyPktPwd | allow empty packet passwords |
AllowPktAddrDiffer | allow addresses in PKT and MSG differ for areafix req. |
ArcmailSize | size of arcmail bundle |
ArcNetmail | pack netmail for this link into arcmail bundles |
Areafix | areafix access for this link |
AreafixEchoLimit | limit for subscribe via areafix |
AreafixPwd | areafix password for this link |
AutoAreaCreate | right to auto create areas on your system |
AutoAreaCreateFile | file where autoCreated Areas by this links are going |
AutoAreaCreateDefaults | set defaults to autocreated echoareas |
AutoAreaCreateSubdirs | create structured or flat message base? |
AutoPause | stop export mail for this link after xx days |
DenyFwdFile | file with area list for denyed requests |
DenyFwdMask | mask list for denyed requests |
DenyFwdReqAccess | deny access to forward requests |
DenyUncondFwdReqAccess | deny access to unconditional forward requests |
EchoMailFlavour | flavour for outgoing echomail |
Export | rules for echomail export |
ForwardAreaPriority | forward requests priority |
ForwardPkts | shall we forward inbound packets for this node? |
ForwardRequestFile | file for forwardRequest, AvialableAreas & descriptions |
ForwardRequestMask | mask list for forwardRequests |
ForwardRequests | allow forward requests to this link |
FileBox | filebox directory |
FileBoxAlways | pack to filebox even if link is not busy |
Import | rules for echomail import |
Level | definition of link access level |
Link | adding a link to your config |
LinkBundleNameStyle | style of filenames of arcmail bundles for link |
LinkDefaults | start/end/destroy links default definitions |
LinkGrp | add this group to autoareacreatedefaults |
LinkMsgBaseDir | base directory of areas for link |
Mandatory | rules for echoarea access |
NoRules | don't send area rules to link on subscription |
OptGrp | groups for export/import/mandatory |
OurAka | our aka for link |
Packer | default packer for link |
Password | links default password |
Pause | don't export mail for this link |
PktSize | max size of pkt in arcmail bundle |
PktPwd | pktpassword for this link |
RemoteRobotName | remote "areafix" name |
AccessGrp
accessgrp <string>[,<string>...]
accessgrp A,B,C,Local
This statement connects a link to several echomail groups. See also
PublicGroup
and -g <group>
in echoarea options.
This statement can only be repeated for different links.
AdvancedAreafix
advancedareafix <bool>
advancedareafix on
If this statement is "on" and our system wants to detele area from
remote config then unsubscribe messages to areafix robot of this link
looks like "~areaname". The area on the remote system will be deleted
from config file, if our system is allowed to delete this area ("allow
area delete" in FastEcho, and LinkGrp
must be the same as EchoArea's -g
<group>
in HPT).
Our system sends deleting command only for systems with
AdvancedAreafix
and only when default uplink (-def
) unsubscribing
from EchoArea or some link deleting this area by command "~areaname".
Of course if this link has the rights to delete this area.
If this "AdvancedAreafix off" (default), then deleting command looks like "-areaname".
This statement can only be repeated for different links.
Aka
aka <addr>
aka 2:2433/1245
This statement sets the aka for the current link.
This statement can only be repeated for different links.
AllowEmptyPktPwd
allowEmptyPktPwd <off|secure|on>
allowEmptyPktPwd on
This flag is useful if you want to generate packet passwords for this link, but do not want to check the packet passwords that your link sends to you. This is sometimes necessary as a workaraound if your link sends you netmail packets without packet passwords, for example.
The default state is off. In this case the incoming packet password must match the packet password that you defined. This is the most secure option.
If you set this switch to secure
, packets that do not contain a
packet password and are received in the protected inbound will be
processed. You can use this if your uplink sometimes sends you packets
without packet passwords, as a workaround until the uplink has fixed
his system. Still, if you receive packets with wrong packet passwords,
they will be rejected.
The setting on
works like the secure
setting, with the difference
that packets without packet passwords are allowed even in the
unprotected inbound directory. It is not recommended to use this
setting.
This statement can only be repeated for different links.
AllowPktAddrDiffer
allowPktAddrDiffer <bool>
allowPktAddrDiffer on
This keyword is useful if your link has more than one addresses, and therefore the address in PKT header of his areafix request may be different from the address in MSG header.
The default state if off
: in this case such letters won't be
processed by your areafix. The state on
makes areafix ignore this error.
This statement can only be repeated for different links.
ArcmailSize
arcmailsize <integer>
arcmailsize 300
Maximum arcmail size in kb for this link. Default is 500kb.
This statement can only be repeated for different links.
ArcNetmail
arcnetmail <bool>
arcnetmail on
This keyword is useful if you want to compress netmail for this link
and pack it into arcmail bundles or to filebox like echomail. Netmail
will compress only if its flavour is equial with EchoMailFlavour
for
this link.
The default state if off
: in this case netmail will be written to
ut-file (i.e. *.?ut) and will not compressed.
This statement can only be repeated for different links.
Areafix
areafix <bool>
areafix off
By default areafix is "on". You can turn off using of areafix by this link.
This statement can only be repeated for different links.
AreafixEchoLimit
areafixecholimit <integer>
areafixecholimit 50
This is maximum echo areas which can be subscribed via areafix for this link.
This statement can only be repeated for different links.
AreafixPwd
areafixpwd [<string>]
areafixpwd geheim
This statement sets the areafix password for the actual link. An empty statement is allowed.
This statement can only be repeated for different links.
AutoAreaCreate
autoareacreate <bool>
autoareacreate on
This statement gives a link the permission to create areas on your
system just by sending msgs in them. The echoarea is created using the
AutoAreaCreateDefaults
contents:
EchoArea <areaName> <msgBaseDir><areaName> -a <mypktaddr> -b Squish <linkAddr> <autoAreaCreateDefaults>
Default message base type is Squish. But you can set "-b Jam" or "-b
Msg" in AutoAreaCreateDefaults
This statement can only be repeated for different links.
AutoAreaCreateFile
autoAreaCreateFile <file>
autoAreaCreateFile /etc/fido/areas.matthias
This statement defines where autocreated areas by this link are
going to. If you omit this statement the default configuration file
will be used. The tosser must have the rights to create and change the
file.
You must include the specified file for yourself into fidoconfig, so
these autocreated areas will be founded in subsequent tosser-runs. autoAreaCreateFile and Include strings must be the *same*.
This statement can only be repeated for different links.
AutoAreaCreateDefaults
autoareacreatedefaults <string>
autoareacreatedefaults -$m 200 -dupecheck move
Set defaults to autocreated echoareas. To create PASSTHROUGH areas
you can add "passthrough" to AutoAreaCreateDefaults
.
This statement can only be repeated for different links.
AutoAreaCreateSubdirs
autoareacreatesubdirs <bool>
autoareacreatesubdirs on
This switch is turned off by default. When turned off, hpt will
create a flat message base. This means that a file echo FIDOSOFT.HUSKY
would be created in the message base directory with a base file name of
fidosoft.husky
, like in /var/spool/msgbase/fidosoft.husky.sqd
and
so on.
When turned on, a structured message base will be created. Each dot
in the echo name is treated as directory separator. Thus, FIDOSOFT.HUSKY
would be created with a base name of husky
in the fidosoft
directory,
e.g. /var/spool/msgbase/fidosoft/husky.sqd
.
Please note that this option will not currently work if the -dosfile
option is used to create filenames in 8.3 convention. See EchoArea,
for more information on the -dosfile
option.
AutoPause
autopause <integer>
autopause 10
Stop export echomail for this link after 10 days (write Pause token
to link section). It works when founding "10 days old" file for this
link in Outbound
directory with "#" and "^" prefixes.
Link unsubscribed from passrhough echo areas with no downlinks besides him. Unsubscribe request forwards to uplink. This doesn't works with manual "%PAUSE" via AreaFix.
AutoPause don't check FileBoxes!
This statement can only be repeated for different links.
See AutoPassive.
DenyFwdFile
denyFwdFile <file>
denyFwdFile /etc/fido/denyfwd
Don't forward requests for areas from this file. Pattern matching does not supporting!
This statement can only be repeated for different links.
DenyFwdMask
denyfwdmask <string>[,<string> ...]
denyfwdmask TYT.*, *FLAME*
Don't forward this requests.
This statement can only be repeated for different links.
DenyFwdReqAccess
denyFwdReqAccess <bool>
denyFwdReqAccess
Don't allow forward requests from this link (via areafix) to your links.
This statement can only be repeated for different links.
DenyUncondFwdReqAccess
denyUncondFwdReqAccess <bool>
denyUncondFwdReqAccess
Don't allow unconditional forward requests from this link (via areafix) to your links.
This statement can only be repeated for different links.
EchoMailFlavour
echoMailFlavour <hold | normal | crash | direct | immediate>
echoMailFlavour hold
This statement sets the flavour which outgoing echomails for this link get. For example set echomailFlavour for points to hold and for uplink crash.
This statement can only be repeated for different links.
Export
export <bool>
export off
By default "Export on".
If "export" is "off", mail for groups defined in OptGrp
not tossed
to link and if OptGrp
not defined, then no mail tossed to link at all.
This statement can only be repeated for different links.
ForwardAreaPriority
forwardAreaPriority <integer>
forwardAreaPriority 1
By default forward requests processing for links in order as they defined in config. But you can set priority for some links... "1" is the first link to forward requests, "2" is the second, etc.
This statement can only be repeated for different links.
ForwardPkts
forwardPkts <off|secure|on>
forwardPkts yes
If we receive a PKT file that is not addressed to our system, but to
this link of us, this flag controls if the PKT file should be binary
forwarded to this link. The default behaviour is not to forward the pkt
file, but to remain it to <filename>.ntu
and leave it in the inbound.
If you specify <yes>
, the file will instead be forwarded to the
destination link (i.E. put into his arcmail bundle). If you specify
<secure>
, the file will only be forwarded if we have received
it in the secure inbound. You should specify secure
if the destination
link does not check packet passwords.
PKT forwarding can be useful for tunneling purposes, for instance. Another example is if you are running two nodes, one IP node at your company and one PSTN node at your home. If you want to show both node numbers at both mailers, the tossers at each node must forward PKT files that are addressed to the other node, because they themselves cannot process it (each tosser has a different node number, because the systems operate on distinct outbound structures and distinct message base areas).
This statement can only be repeated for different links.
ForwardRequestFile
forwardRequestFile <file>
forwardRequestFile /etc/fido/fidonet.na
File for forward requests (also for available areas and descriptions). If not defined then forward requests unconditional.
This statement can only be repeated for different links.
ForwardRequestMask
forwardrequestmask <string>[,<string> ...]
forwardrequestmask nsk.*
If area nsk.* (nsk.test for example) will be requested by downlink and forwardrequests to uplink are allowed, then it is created and request goes to uplink. If area doesn't covered by mask list, then checks the next link for forwardRrequests.
This statement can only be repeated for different links.
ForwardRequests
forwardRequests <bool>
forwardRequests on
By default "forwardRequests off". "On" allow forward requests to this
link from other links. If no LinkGrpforwardRequestFile
or forwardRequestMask
defined, then forwardRequests unconditional.
can deny access to some links...
This statement can only be repeated for different links.
See LinkGrp.
FileBox
FileBox <directory>
FileBox boxes/2.5021.19.1
This statement defines directory where outgoing files for link would
be putten instead of putting them in Outbound
tree. See also
FileBoxAlways
for details.
Currently hpt can put only echomail into fileBoxes.
This statement can only be repeated for different links.
FileBoxAlways
FileBoxAlways <bool>
FileBoxAlways
Pack to link FileBox
even if link is not busy. By default outbound
is used when link is not busy.
This statement can only be repeated for different links. Works only
for links which have FileBox
or when FileBoxesDir
is set.
Import
import <bool>
import off
By default "import on".
Same as Export
, but this is for mail from link.
This statement can only be repeated for different links.
Level
level <integer>
level 200
Access level. Used in echoareas to control read/write access. By default "level 0".
This statement can only be repeated for different links.
Link
link <string>
link Matthias Tichy
This statement starts a new Link-definition. All the following link-related statements change the configuration of this link until a new link statement is found. <string> is the name of this link.
This statement can be repeated.
LinkBundleNameStyle
linkBundleNameStyle <timeStamp | addrDiff | addrDiffAlways |
addrsCRC32 | addrsCRC32Always | Amiga>
linkbundleNameStyle addrDiff
This statament sets rule for creating names of arcmail bundles for
link. It is similar BundleNameStyle
keyword.
See BundleNameStyle.
This statement can only be repeated for different links.
LinkDefaults
linkdefaults [begin | end | destroy]
linkdefaults
This statement starts section of default definitions of links. All
the following link-related statements change default configuration of
link until a 'link'
or 'linkdefaults end'
or 'linkdefaults destroy'
statement is found. All parameters collected in linkdefaults sections
are copied to link configuration every time when 'link'
statement found
in configuration file. Link-related statements after 'linkdefaults end'
or 'linkdefaults destroy'
or before first 'link'
or 'linkdefaults'
statement are treated as error. 'linkdefaults'
statement without
'begin'
or 'end'
means 'linkdefaults begin'
'linkdefaults
destroy'
destroys all default definitions.
Be careful with Pause
, Export
, etc. ;-)
This statement can be repeated. New definitions overwrite old ones.
LinkGrp
linkgrp <string>
linkgrp Fido
String Fido
adds to AutoAreaCreateDefaults
, if there is no group
defined.
Links without access to group Fido
can't forward requests to uplink
with LinkGrp Fido
.
This link can delete echo areas with -g Fido
group.
This statement can only be repeated for different links.
LinkMsgBaseDir
linkMsgBaseDir <path>
linkMsgBaseDir /var/spool/fido/msgb
Same as MsgBaseDir
, but you can set it for different links. Do not
use it with LinkDefaults
!
This statement can only be repeated for different links.
See MsgBaseDir.
Mandatory
mandatory <bool>
mandatory on
By default "mandatory off".
This statament do not allow the link to subscribe/unsubscribe areas via areafix.
This statement can only be repeated for different links.
NoRules
norules <bool>
norules on
By default "norules off" i.e. send rules.
This statament points to areafix to not send area rules to link when
link is subscribed to area and corresponding file is found in RulesDir
.
This statement can only be repeated for different links.
OptGrp
optgrp <string>[,<string> ...]
optgrp A,X,Fido
Export
, Import
& Mandatory
restrictions uses OptGrp
areas. If OptGrp
not defined - the restrictions will be applied to all areas.
This statement can only be repeated for different links.
OurAka
ourAka <addr>
ourAka 2:2433/1247
This statement sets the aka which is used for this link.
This statement can only be repeated for different links.
Packer
packer <packer>
packer zip
This statement sets the packer for the link. You can use the packer
which you has set up using the Pack
statement. If you omit this
statement or set Packer none
no mail will be packed. The pkt-76;s will be
stored in the outbound.
This statement can only be repeated for different links.
Password
password <string>
password secret
This statement sets the default password for the link. If you do
not change the other passwords, they are set to this password. There
is no limit for Password
length except the PktPwd
.
This statement can only be repeated for different links.
Pause
pause ([on]|off|earea|farea)
pause
pause farea
Stop export echomail, fileechoes or both for this link.
This statement can only be repeated for different links.
PktSize
pktsize <integer>
pktsize 300
Maximum pkt size in kb for this link. Default - unlimited.
This statement can only be repeated for different links.
PktPwd
pktpwd [<string>]
pktpwd geheim
This statement sets the pktpassword for the actual link. Only passwords with maximal 8 characters are valid because of limitations of other software packages. An empty statement is allowed.
This statement can only be repeated for different links.
RemoteRobotName
remoteRobotName <string>
remoteRobotName allfix
Set remote system "areafix" to new name. This token used when requests to subscribing/unsubscribing of new areas forwarded to this link.
This statement can only be repeated for different links.
Area Definition
BadArea | definition of badarea |
DupeArea | definition of dupearea |
EchoArea | definition of echoarea |
EchoAreaDefaults | defaults for echoarea |
LocalArea | definition of localarea |
NetArea | same as netmailarea |
NetMailArea | definition of netmailarea |
ReadOnly | set link(s) readonly for echoarea(s) |
WriteOnly | set link(s) writeonly for echoarea(s) |
BadArea
BadArea <name> <file> [-b <msgbase>] [Options]
BadArea badarea /var/spool/fido/msgb/bad -b Squish
This statement specifies the BadArea. Messages which have no area on
your system go to the badArea. See EchoArea, for details on Options
.
Like all areas BadArea is *.msg base per default.
This statement cannot be repeated.
DupeArea
dupeArea <name> <file> [-b <msgbase>] [Options]
dupeArea dupeArea /var/spool/fido/msgb/dupes -b Squish
This statement specifies the DupeArea. Messages which area dupes
e.g. come to your system the second time, will be put in the DupeArea.
See EchoArea, for details on Options
. Like all areas DupeArea is *.msg
base per default.
This statement cannot be repeated.
EchoArea
EchoArea <name> <file> [-b <msgbase>] [Options] [linkAKAs]
[linkOptions]
EchoArea linux.develop.ger /var/spool/fido/msgb/linux.develop.ger
-b Squish -a 2:2433/1247 -g A -dupeCheck move -dupehistory 11 -d
"Linux development" 2:2433/1245 -def
This statement specifies the echoareas.
Msg
is standard (*.msg-base). Write Squish
for an Squish-msgbase
and Jam
for Jam-msgbase. Options:
Level
in link options) DupeArea
or delete dupes. (*) - this tokens removs from AutoAreaCreateDefaults
when creating
passthrough areas.
LinkOptions:
This statement can be repeated.
EchoAreaDefaults
EchoAreaDefaults [-b <msgbase>] [Options]
EchoAreaDefaults -b Squish -a 2:280/1507 -g F -dupeCheck move
-dupehistory 11 -p 14 2:280/1126
With this keyword you can specify settings that will be set for the
EchoArea
and LocalArea
definitions that follow. It makes the
echoarea definitions shorter. All echoarea settings can be used except
the areaname and path.
When you specify a different value in an echoarea definition, it overrules the default setting.
With the default from the example above, an echoarea definition could be:
EchoArea fidosoft.husky /var/spool/fido/msgb/fidosoft.husky -d "husky develpment" 2:280/6207 This will internally be expanded to: EchoArea fidosoft.husky /var/spool/fido/msgb/fidosoft.husky -d "husky develpment" -b Squish -a 2:280/1507 -g F -dupeCheck move -dupehistory 11 -p 14 2:280/1126 2:280/6207
Another example:
EchoArea evolution /var/spool/fido/msgb/evolution -d "about fantasies" -p 100 that will be expanded to: EchoArea evolution /var/spool/fido/msgb/evolution -d "about fantasies" -b Squish -a 2:280/1507 -g F -dupeCheck move -dupehistory 11 -p 100 2:280/1126
As you will notice, the default settings are combined with the additional settings in the EchoArea definition, and the messages are purged after 100 days instead of 14 (the default).
This statement can be repeated.
An EchoAreaDefults
setting is valid until a next EchoAreaDefaults
setting of until a NetmailArea
definition. EchoAreaDefaults
can also be
switched off with an empty definition:
EchoAreaDefaults [OFF]
The word 'OFF' is not needed but makes it more readable.
LocalArea
localArea <name> <file> [-b <msgbase>] [Options]
localArea linux.develop.ger /var/spool/fido/msgb/linux.develop.ger
-b Squish -a 2:2433/1247 -dupeCheck move -dupehistory 11 -d "Linux
development"
This statement creates an LocalArea
. The only difference between a
LocalArea
and an EchoArea
is that a LocalArea
has no links and is
not scanned for new mails.
This statement can be repeated.
NetArea
NetArea <name> <file> [-b <msgbase>] [Options]
NetArea netmail /var/spool/fido/msgb/netmail -b Squish
See NetMailArea.
This statement can be repeated.
NetMailArea
NetmailArea <name> <file> [-b <msgbase>] [Options]
NetmailArea netmail /var/spool/fido/msgb/netmail -b Squish
This statement specifies the NetMailArea
. See EchoArea, for details
on Options
. Like all areas NetmailAreas is *.msg bases per default.
This statement can be repeated to use different netmailareas.
See NetArea.
This statement can be repeated.
ReadOnly
ReadOnly <addressMask> <areaMask>
ReadOnly 2:5021/19.* tver.sysop*
This statement set link(s) to readonly for specified ares(s). If you write node address do it *without* trailing .0!
This statement can be repeated.
WriteOnly
WriteOnly <addressMask> <areaMask>
WriteOnly 2:5021/19.* NobodyReadArea
This statement set link(s) to writeonly for specified ares(s). If you write node address do it *without* trailing .0!
This statement can be repeated.
Carbon Copy
CarbonAddr | make carbonCopy using from address of msg |
CarbonAndQuit | carbon message only one time |
CarbonCopy | specify the area where the carbon copies go into |
CarbonDelete | specify that the carbon msg should be deleted |
CarbonExcludeFwdFrom | exclude " * Forward from area " string |
CarbonExtern | specify the external program to pass msg text to |
CarbonFrom | make carbonCopy using from-field of msg |
CarbonFromArea | carbon messages from area |
CarbonGroups | make carbonbonCopy from this groups |
CarbonKeepSb | keep seen-by's and path |
CarbonKludge | make carbonCopy using kludge lines of msg |
CarbonMove | specify the area where the carbon msg get moved into |
CarbonOut | carbon outgoing messages |
CarbonReason | string of carbon copy reason |
CarbonRule | how to combine Carbon expressions |
CarbonSubj | make carbonCopy using subject-field of msg |
CarbonText | make carbonCopy using text-field of msg |
CarbonTo | make carbonCopy using to-field of msg |
ExcludePassthroughCarbon | don't carbon in passthrough areas |
NetmailExtern | specify the external Program to pass netmail msgs to |
CarbonAddr
carbonAddr <addr>
carbonAddr 2:5000/100
carbonCopy mail.from.100
If an echomail is tossed whose from address field is the same as
<addr>, the echomail is copied to the area specified by the
carbonCopy
keyword.
This statement can be repeated.
CarbonAndQuit
carbonAndQuit <bool>
carbonAndQuit
By default one message can be processed by Carbon Copy several times.
For example: you set CarbonTo "max" to echoarea MY.MAIL and CarbonSubj
"beer" to echoarea MY.PLEASURE :-) And message to "max" with this
subject line carbons to each EchoArea
.
If you turn on CarbonAndQuit
message will be copyed to MY.MAIL only.
It is however possible to override this setting, by putting an '*' before the action:
CarbonCopy *my.mail CarbonMove *my.mail CarbonExtern *<command line>
This '*' does not work for CarbonDelete of course.
This statement cannot be repeated.
CarbonCopy
carbonCopy <area-tag>
carbonCopy written.from.points
This statement sets the area for the previous carbon{Addr|To|From|Kludge|Subj|Text} statement.
If no EchoArea
defined to copy, the carbon msgs goes to the BadArea
.
This statement can be placed after different carbon{Addr|To|From|Kludge|Subj|Text} statements.
See CarbonMove.
CarbonDelete
carbonDelete
carbonDelete
This statement specifies that selected by previous
carbon{Addr|To|From|Kludge|Subj|Text} statement msgs should not be
stored into EchoArea
.
This statement can be repeated for each different carbon{Addr|To|From|Kludge|Subj|Text} statement.
CarbonExcludeFwdFrom
CarbonExcludeFwdFrom <bool>
CarbonExcludeFwdFrom
Don't add to begin of carbon msg text " * Forward from area <areatag>"
This statement cannot be repeated.
CarbonExtern
carbonExtern <program name>
carbonExtern douuedecode
This statement specifies external program to run for the previous carbon{Addr|To|From|Kludge|Subj|Text} statement.
If this statement is ommitted and no EchoArea
defined for move or
copy, the carbon msgs gets copyed to the BadArea
.
If program name is prepended with '|' sign, hpt tries to pass data thru the pipe, not temporary file.
This statement can be repeated for each different carbon{Addr|To|From|Kludge|Subj|Text} statement.
CarbonFrom
carbonFrom <pattern>
carbonFrom Matthias Tichy
carbonCopy my.echomail
If an echomail is tossed whose from-field matched the pattern
<pattern>, the echomail is copied to the area specified by the
CarbonCopy
keyword or moved to the area specified by the
CarbonMove
keyword. The names must be an exact match.
You can enclose <string> into quotes ("<string>").
This statement can be repeated.
CarbonFromArea
CarbonFromArea <pattern>
CarbonFromArea Interuser
Only messages that are written in this areas will be copied. Use it in combination with CarbonRule to prevent that all messages from an area are copied.
See CarbonRule.
Another example:
CarbonFromArea Interuser CarbonRule NOT CarbonText " Israel " CarbonCopy my.news
<pattern> is the mask for area name, defined after EchoArea or NetMailArea.
This statement can be repeated.
CarbonGroups
carbonGroups <string> [,<string>...]
carbonGroups Fido, LifeNet
carbonCopy my.echomail
With this keyword you can define from which groups messages should be copied. It is wise when you use this keyword together with other selection criteria or else the result will give many messages.
See CarbonRule.
This statement can be repeated.
CarbonKeepSb
carbonKeepSb <bool>
carbonKeepSb
For each CC message SEEN-BY's and PATH fields are killed. If you set
up CarbonKeepSb
then all kludges will be saved. But you may also set up
-keepsb
in options of EchoArea
where you carbon messages.
This statement cannot be repeated.
CarbonKludge
carbonKludge <pattern>
carbonKludge MSGID: 2:5000/117.
carbonCopy written.by.points
If an echomail is tossed which has a kludge line which includes the
substring matches <pattern>, the echomail is copied to the area
specified by the CarbonCopy
keyword.
You can enclose <pattern> into quotes ("<pattern>").
carbonKludge "REPLY: 2:5000/117 "
This statement can be repeated.
CarbonMove
carbonMove <area-tag>
carbonMove my.echomail
This statement sets the area for the previous carbon{Addr|To|From|Kludge|Subj|Text} statement.
If no EchoArea
defined to copy (or move), the carbon msgs goes to
the BadArea
.
Unlike CarbonCopy
msg gets moved, not copied into this area.
This statement can be placed after different carbon{Addr|To|From|Kludge|Subj|Text} statements.
See CarbonCopy.
CarbonOut
carbonOut <bool>
carbonOut
This statement makes possible carbon your outgoing mail (scanned & packed). Don't forget to set carbon rules.
This statement cannot be repeated.
CarbonReason
carbonReason <string>
carbonText msged
carbonReason Found 'msged' in message
carbonCopy my.searches.echo
This statement sets the 'reason string' for the previous carbon{Addr|To|From|Kludge|Subj|Text} statement.
This string would be printed after ' * Forwarded ...' line in message begining. That's useful when many carbons are made to single area. No reason string is printed if this statement is ommitted.
This statement can be repeated for each different carbon{Addr|To|From|Kludge|Subj|Text} statement.
CarbonRule
carbonRule AND|NOT|OR
carbonGroups fido
carbonRule AND
carbonText programming
carbonCopy my.echomail
With this keyword you can make it possible to have more than 1 selection criteria for a message. The default rule is AND. So without using CarbonRule, all expressions will be AND-ed. With Carbonrule AND, the two expressions above and below the AND must be true or else a message will not be copied. With Carbonrule you can define how the expressions are joined together.
CarbonRule NOT, is in fact AND NOT. So
CarbonText beatles CarbonRule NOT CarbonText bugs CarbonCopy my.mail
...will only copy messages when 'beatles' is in the text AND NOT 'bugs' in the text.
In general, it is possible to define more than one set of rules for 1 single carbonArea. For example:
Here are two sets of criteria and for all of them there is only 1 carbonarea defined. After an OR, a new set of expressions start. The above example can also be written as:CarbonText female CarbonRule NOT CarbonText connector CarbonRule OR CarbonSubj beer CarbonRule AND CarbonText drink CarbonText holliday CarbonCopy my.mail
CarbonRule NOT CarbonText connector CarbonRule AND CarbonText female CarbonRule OR CarbonRule AND CarbonSubj beer CarbonText drink CarbonText holliday CarbonCopy my.mail
Messages that have 'female' in the text, but not the word 'connector', will be copied to the my.mail area.
Also messages with 'beer' in the text AND 'drink' in the text AND 'holliday' in the text, will be copied to the my.mail area.
A set of expressions is true when they are OR-ed and at least one of them is true.
A set of expressions is true when they are AND-ed and ALL of them are true. Expressions are evaluated from top to bottom.
This statement can be repeated.
A CarbonRule is valid until a next rule is defined of until an action. After an action (CarbonCopy, CarbonMove, etc), the CarbonRule is AND again and new set of expressions starts.
CarbonSubj
carbonSubj <pattern>
carbonSubj beer
carbonCopy cc.beer
If an echomail is tossed which has a subject line matched <pattern>,
this echomail is copied to the area specified by the CarbonCopy
keyword
or moved to the area specified by the CarbonMove
keyword. You can
enclose <pattern> into quotes ("<pattern>").
This statement can be repeated.
CarbonText
carbonText <pattern>
carbonText cool beer
carbonCopy cc.beer
If an echomail is tossed which has a kludge line which includes the
substring matches <pattern>, the echomail is copied to the area
specified by the CarbonCopy
keyword or moved to the area specified by
the CarbonMove
keyword.
You can enclose <pattern> into quotes ("<pattern>").
This statement can be repeated.
CarbonTo
carbonTo <pattern>
carbonTo Max Levenkov
carbonCopy my.echomail
If an echomail is tossed whose to-field matched <pattern>, the
echomail is copied to the area specified by the CarbonCopy
keyword or
moved to the area specified by the CarbonMove
keyword. The names must
be an exact match.
You can enclose <pattern> into quotes ("<pattern>").
This statement can be repeated.
ExcludePassthroughCarbon
excludePassthroughCarbon <bool>
excludePassthroughCarbon
Don't carbon from passthrough areas.
This statement cannot be repeated.
NetmailExtern
netmailExtern <program name>
netmailExtern douuedecode
This statement specifies external program to run for the previous carbon{Addr|To|From|Kludge|Subj|Text} statement for netmail messages...
If this statement is ommitted and no NetMailArea
defined for move or
copy, the carbon msgs gets copyed to the BadArea
.
If program name is prepended with '|' sign, hpt tries to pass data thru the pipe, not temporary file.
This statement can be repeated for each different carbon{Addr|To|From|Kludge|Subj|Text} statement.
Advanced Concepts in HPT
This chapter describes how to use some features... After you have managed to perform basic functions with HPT, like defining paths & areas, this chapter will introduce you into some advanced concepts in HPT that deserve special attention, like how to use several netmail areas and similar.
Exit | hpt exit codes |
Suffixes | renaming suffixes for pkt files |
Netmail | defining several netmail areas for several users |
ZoneGating | how zonegating works for echomail |
Perl support | Perl support in HPT |
HPT Exit Codes
Renaming Suffixes For Pkt Files
Defining Several Netmail Areas For Several Users
If you want receive netmail for one address in first netmail area,
and for second address in second netmail area respectively, you must add
-a <ourAka>
to netmail area, like this:
How Zone Gating works for echomail and what seen-bys is stripped
We have EchoArea with links from zone1 & zone2. Echo->useAka with zone2. Defined by "-a <addr>" or the by the first Echo->address from config if not defined in EchoArea line.
Program algorythm:
Examples:
a) msg comes from z1. for z1 links we sending seen-bys with z2 nodes. but z1 links must clean seen-bys by themselves (this is z2 echo) or download this echo from z1 link. after that seen-bys cleaned and msg forwarded to z2 links. in the msgbase seen-bys from z2 links only.
b) msg comes from z2. forward it to z2 links. then forward to z1 links. seen-bys not cleaned: this is z2 echo and z1 links must clean it by themselves or receive echo from z1 link. store in msgbase with all seen-bys from z1 & z2 nodes.
c) scan works the same: first sending to z2 links, adding to seen-by's z1 links and export to them.
Perl support in HPT
HPT may be compiled with support for calling Perl subs in some parts
of its work. In this case it also provides API for such subs (Perl
hooks). Perl subs are located in file filter.pl, which usually located
in same directory as HPT's executable file but it's name and location
may changed via HptPerlFile
configuration option. The following Perl
hooks are supported:
TempInbound
hook must return "" for normal pkt processing or other string to rename pkt to .flt
Route
statements in config file (may be empty, this means
that either no route at all for this message or it will be
routed via one-to-multi routing(Route normal noroute
2:5004/73.*)).
Before return you can set $flavour - to hold|normal|crash|direct|immediate for required flavour of message. return "" for default routing or address via which this message should be sent. example:
sub route { if ($from eq "2:5004/75.73") return "2:5004/75.0"; else return ""; }
if source address of message is 2:5004/75.73 then route it via 2:5004/75, otherwise route it using default routing
Set $change to update $text, $subject, $fromaddr, $toaddr, $fromname, $toname, $attr. If returns non-empty string (reason), the message will not pack to downlinks.
Set $change to update $text, $subject, $fromaddr, $toaddr, $fromname, $toname, $attr. Set $kill for kill message. If returns non-empty string (reason), the message will be moved to badarea.
Set $change to update $text, $subject, $fromaddr, $toaddr, $fromname, $toname, $attr. If returns non-empty string (reason) for kill the message.
Configuration File Keyword Index
AccessGrp
Address
AddToSeen
AdvancedAreafix
AdvisoryLock
AfterUnpack
Aka
AllowEmptyPktPwd
AllowPktAddrDiffer
ArcmailSize
ArcNetmail
Areafix
AreafixEchoLimit
AreafixFromName
AreafixFromPkt
AreafixHelp
AreafixKillReports
AreafixKillRequests
AreafixMsgSize
AreafixNames
AreafixOrigin
AreafixPwd
AreafixQueryReports
AreafixQueueFile
AreafixSplitStr
AreasFileNameCase
AreasMaxDupeAge
AutoAreaCreate
AutoAreaCreateDefaults
AutoAreaCreateFile
AutoAreaCreateFlag
AutoAreaCreateSubdirs
AutoPassive
AutoPause
BadArea
BeforePack
BundleNameStyle
CarbonAddr
CarbonAndQuit
CarbonCopy
CarbonDelete
CarbonExcludeFwdFrom
CarbonExtern
CarbonFrom
CarbonFromArea
CarbonGroups
CarbonKeepSb
CarbonKludge
CarbonMove
CarbonOut
CarbonReason
CarbonRule
CarbonSubj
CarbonText
CarbonTo
CreateAreasCase
CreateFwdNonPass
DefArcmailSize
DenyFwdFile
DenyFwdMask
DenyFwdReqAccess
DenyUncondFwdReqAccess
DisablePID
DisableTID
DupeArea
DupeBaseType
DupeHistoryDir
EchoArea
EchoAreaDefaults
EchoMailFlavour
EchoTossLog
ExcludePassthroughCarbon
Export
FileBox
FileBoxAlways
FileBoxesDir
ForwardAreaPriority
ForwardPkts
ForwardRequestFile
ForwardRequestMask
ForwardRequests
ForwardRequestTimeout
HptPerlFile
IdlePassthruTimeout
IgnoreCapWord
IgnoreSeen
Import
ImportLog
Inbound
Include
Intab
KeepTrsFiles
KeepTrsMail
KilledRequestTimeout
KludgeAreaNetmail
Level
Link
LinkBundleNameStyle
LinkDefaults
LinkGrp
LinkMsgBaseDir
LinkWithImportLog
LocalArea
LocalInbound
LockFile
LogEchoToScreen
LogFileDir
LogLevels
Mandatory
MinDiskFreeSpace
MsgBaseDir
Name
NetArea
NetMailArea
NetmailExtern
NetmailFlag
NewAreaRefuseFile
NoProcessBundles
NoRules
NotValidFileNameChars
OptGrp
Origin
OurAka
Outbound
Outtab
Pack
Packer
PackNetMailOnScan
Password
Pause
PktPwd
PktSize
ProcessPkt
ProtInbound
PublicGroup
ReadOnly
Remap
RemoteRobotName
ReportTo
RobotsArea
Route
RouteFile
RouteMail
RulesDir
ScreenLogLevels
SeparateBundles
SetConsoleTitle
StatLog
Sysop
TearLine
TempInbound
TempOutbound
TossingExt
Unpack
WriteOnly