1\input texinfo   @c -*-texinfo-*-
2
3@c %**start of header
4@c $Id$
5@c adopted from msged.texi, written by Tobias Ernst
6@setfilename hpt.info
7@set HPT HPT
8@set MSGED MsgEd-TE
9@set VERSION 1.9
10@settitle @value{HPT} @value{VERSION} - Highly Portable Tosser
11@setchapternewpage odd
12@c %**end of header
13
14@titlepage
15@title @value{HPT} @value{VERSION} manual
16@subtitle Highly Portable Tosser
17@author Matthias Tichy @@ 2:2432/645 (1997 - 1999)
18@author Max Levenkov @@ 2:5000/117 (1999 - 2002)
19@page
20@c{empty page to get the page numbering right}
21@end titlepage
22
23@contents
24
25@ifinfo
26@dircategory Fidonet Software
27@direntry
28* HPT: (hpt).               HPT is the fidonet tosser
29@end direntry
30@end ifinfo
31
32@iftex
33@parindent=0pt
34@end iftex
35@iftex
36@afourpaper
37@end iftex
38
39@node Top, Overview, (dir), (dir)
40@top @value{HPT}
41This document describes @value{HPT} @value{VERSION}, a Fidonet Message
42Tosser for OS/2, Windows, BeOS and Unix.
43
44@value{HPT} is based on FIDOCONFIG library, so read documentation of
45FIDOCONFIG about location of config file, keywords ideology and about
46majority of the keywords,
47@xref{Top, Fidoconfig Manual, , fidoconfig, Fidoconfig manual}.
48
49@menu
50* Overview::                    What is @value{HPT}?
51* Installation::                Installation. @emph{Read this!}
52* Configuration Reference::     Explanation of the configuration file.
53* Advanced Concepts::           Advanced features and concepts.
54* Keyword Index::               Configuration File Keywords Index
55@end menu
56
57@node Overview, Installation, Top, Top
58@chapter An Overview on @value{HPT}
59
60@value{HPT} is a Fidonet message tosser and packer with areafix, written
61by Matthias Tichy, 2:2432/645@@fidonet. Now project is being supported by
62Husky Development Team.
63
64Features of @value{HPT}:
65@enumerate
66@item tossing packets of 2, 2.0 & 2+ types
67@item supporting Msg, Squish and Jam message bases
68@item posting to net & echo areas
69@item areafix (on the fly, from command line, limit for areas...)
70@item autocreate on the fly
71@item forward requests
72@item pause and autopause for links
73@item linking net & echo areas
74@item carbon copy
75@item groups & levels for personal and public access to echo areas
76@item powerful dupe checker
77@item link defaults
78@end enumerate
79
80The advantages of @value{HPT} are:
81
82@enumerate
83@item Open Source (GPL)
84@item many supported platforms & operating systems
85@item quick bug fixing
86@end enumerate
87
88The limitations of @value{HPT} is:
89
90@enumerate
91@item OPUS messagebase (type MSG) is limited to 65536 messages, this is SMAPI
92implementation limit;
93@item PKT password is limited to 8 characters, this is PKT 2+ limit.
94@end enumerate
95
96
97@node Installation, Configuration Reference, Overview, Top
98@chapter Installation Procedures and Release Notes
99This chapter provides you with information that is necessary to successfully
100install and use @value{HPT}.
101
102I suppose, that you already has compiled binaries. If not - read "Download"
103or "Compile the Source Code" chapters.
104
105@enumerate
106@item Read FIDOCONFIG documentation about location of config-file
107and majority of the configuration statements.
108@item Copy sample config files to config directory
109@item Edit config files for your purposes
110@item Run @code{tparser} from FIDOCONFIG package to test your config
111(read about @code{PublicGroup} or @code{AccessGrp} if you want to use
112groups for @code{EchoAreas})
113@item It is simply, isn't it? Enjoy! :-)
114@end enumerate
115
116@menu
117* Download::            Download the Source Code & Binary Files
118* Compiling::           How to compile the source code
119* Support::             Support, Contacting the Author, Reporting Bugs, Contributing Code
120* Credits::             Credits
121@end menu
122
123@node Download, Compiling, Installation, Installation
124@section Download the Source Code & Binary Files
125
126@table @asis
127@item Main page - @url{http://husky.sourceforge.net/}
128@item Latest win32 binaries - @url{http://elfy.nv.googlepages.com/}
129@end table
130
131@node Compiling, Support, Download, Installation
132@section Compiling the Source Code
133
1341. The smapi and fidoconf packages are required for hpt.
135
1362. Put the fidoconfig and smapi packages in the directory where the
137   other packages of fido linux reside:
138
139@table @asis
140@item /usr/src/packages/
141@item -> smapi/
142@item -> hpt/
143@item -> fidoconfig/
144@end table
145
1463. Compile and install smapi and fidoconf packages. Use "Makefile" for
147   dynamic executables and makefile.lnx (or what you need) for static
148   ones.
149
1504. Compile and install hpt:
151@table @asis
152@item $ make
153@item $ make install
154@end table
155You should use the _same_ makefiles in smapi, fidoconf and hpt.
156
157@node Support, Credits, Compiling, Installation
158@section Support, Contacting the Author, Reporting Bugs, Contributing Code
159
160There are numerous reasons why you might wish to establish contact with me,
161the author of @value{HPT}.
162
163@enumerate
164@item
165You have decided to use @value{HPT} on a regular basis. In this case,
166please do send me an e-mail at the address listed below. How much time I will
167spend on developing @value{HPT} in the future will heavily depend on the
168number of mails I receive from users that tell me that they do use
169@value{HPT}.
170
171@item
172You have a general questions on how to configure or on how to use a certain
173feature of @value{HPT}. In other words, you need support. In this case,
174you'd best post your question to one of the following echos:
175
176@table @code
177@item FIDOSOFT.HUSKY
178The international Husky conference. English is the preferred language here.
179@item RU.HUSKY
180This Russian echo covers Husky Project. I monitor it regularly.
181@item RU.ECHOPROCESSORS
182Russian talks about echoprocessors. I monitor it regularly.
183@end table
184
185If you do not have access to any of these echos, you may of course also
186contact me via netmail or e-mail at the addresses listed below.
187
188@item
189You want to report a bug. There are two sorts of bugs:
190
191@enumerate a
192@item Normal bugs.
193You think that a certain function of @value{HPT} does not work as expected,
194e.g. it is producing garbage, or doing strange things, or similar. In this
195case, either post to the echos listed above, or contact me via
196netmail. Please do supply all information that is necessary to understand
197your problem.
198
199@item Fatal bugs.
200A fatal bug occurs if @value{HPT} crashes. Depending on your operating
201system, the symptom might be a core dump, or a SYS 3175, or a general
202protection fault, or a system lockup, or a spontaneous reboot. I do consider
203a crash untolerable. No matter how stupid things you do, you should not be
204able to crash @value{HPT}.
205
206If you are an experienced user and get core dump, you can send me gdb
207report. If you have a crash, locate @file{core} file that has been
208generated. Then run $ gdb hpt core, type where. @value{HPT} must be
209compiled with debug information (DEBUG=1 in @file{huskymak.cfg} file).
210Then send report to address below.
211
212If you are running any other binary version (like Windows), you will not
213get a core file on a crash. Write down as much information as you can,
214try to find a way to reproduce the crash and contact me at the addresses
215below.
216@end enumerate
217
218@item You want to contribute to @value{HPT}.
219If you are a programmer and have fixed a problem in @value{MSGED} on your
220own, please submit your changes to me. The preferred way for doing this is to
221send me a difference file in GNU diff format (with -c parameter). Your
222work will be highly appreciated and honored in an appropriate place. If
223you want to regularly work on @value{HPT}, we also have a CVS server
224online that you can have access to if you like.
225
226If you want to write a new feature for @value{HPT}, please contact me
227beforehand to avoid that we do duplicate work. Again, I will appreciate and
228honor eny efforts done by you. Please note that for writing a @value{HPT}
229enhancement, you should be familiar with C. Also, @value{HPT} uses a
230special indentation style throughout the source code, that I would like
231you to adhere to.
232@end enumerate
233
234So here are my addresses if you want to get in contact with me:
235
236@itemize @bullet
237@item Fidonet:
238Max Levenkov @ 2:5000/117
239
240@item e-mail:
241sackett@@mail.ru
242
243@end itemize
244
245@node Credits,  , Support, Installation
246@section Credits
247
248Thanks to:
249
250@enumerate
251@item Matthias Tichy (basic code)
252@item Max Levenkov (areafix, group code, carbon copy, code clean up & speed up and more)
253@item Tobias Ernst (some features, stable releases, cvs & www support)
254@item Sacha M. Silbe (features, makefiles)
255@item Kolya Nesterov (unpack, post, link)
256@item Fedor Lizunkov (areafix, autocreate reports, group code, JAM code in SMAPI)
257@item Serguei Revtov (win32 version support, hptlink, features & good patches)
258@item Alexander Vernigora (dupe detection)
259@item Pavel Gulchouk (Perl support, JAM & link hacking)
260@item Alex Semenyaka (netmailExtern, processPkt)
261@item Alex Bronin (win32 patches)
262@item Nikolay Nestyurkin (makefiles)
263@item Lev Serebryakov (new %list)
264@item ... and all other people (sorry, if I've forget somebody)
265@end enumerate
266P.S. all this people make bug fixes, so I don't mention it.
267
268@node Configuration Reference, Advanced Concepts, Installation, Top
269@chapter @value{HPT} @value{VERSION} Configuration Reference
270
271@value{HPT} is based on FIDOCONFIG library, so read documentation of
272FIDOCONFIG about location of config file, keywords ideology and about
273majority of the keywords,
274@xref{Top, Fidoconfig Manual, , fidoconfig, Fidoconfig manual}.
275
276@menu
277* Using config::                Notes about fidoconfig usage in hpt
278* Keywords::                    This chapter describes keywords
279* Files and Paths::             File & Path keywords
280* Link Keywords::               Links configuration
281* Carbon Copy::                 Carbon Copy keywords
282@end menu
283
284@node Using config, Keywords, Configuration Reference, Configuration Reference
285@section Using config
286
287Although HPT uses fidocongig, not all config statements refer to hpt. Hpt
288ignores all unused config statements.The Husky Fidonet Software project
289concept is to use one config file for all fidonet programs.
290
291
292@subsection Predefined config variables
293
294In some cases need use different values for one statement in hpt, htick
295and/or other husky programs (called @dfn{modules}). It solve using config
296variable @code{module}: hpt define the @code{module} variable with value
297@code{hpt} and you may use if-elseif-else-endif conditions statements
298sequence like as:
299
300@example
301if "[module]"=="hpt"
302  Origin   High Portable Tosser at my node
303elseif "[module]"=="htick"
304  Origin   High Portable Ticker at my node
305else
306  Origin   My node
307endif
308@end example
309
310HPT define config variable @code{version} with value set to hpt version
311like @code{MAJOR.MINOR.PATHLEVEL}, i.e. @code{@value{VERSION}.0} or
312@code{1.4.1}.
313You may use this variable too for make common config for several hpt versions.
314
315To test config for hpt only you may call tparser tool with parameters
316@code{-Dmodule=hpt} and (if need) @code{-Dversion=@value{VERSION}.0}
317(tparser included into fidoconfig package) like this:
318
319@example
320tparser -Dmodule=hpt
321tparser -Dmodule=hpt -Dversion=@value{VERSION}.0
322@end example
323
324
325@subsection Statements order
326
327Common rule for config statements order is:
328@strong{Define object before using it!}.
329
330Examples:
331@itemize
332@item
333define addresses before any link, area and carbon definitions
334@item
335define packers before any link definitions
336@item
337define links before any area and route definitions
338@item
339define links and areas before any carbon definitions
340@end itemize
341
342
343@node Keywords, Files and Paths, Using config, Configuration Reference
344@section General Keywords
345
346@value{HPT} is based on FIDOCONFIG library, so read documentation of
347FIDOCONFIG about location of config file, keywords ideology and about
348majority of the keywords,
349@xref{Top, Fidoconfig Manual, , fidoconfig, Fidoconfig manual}.
350
351@menu
352* AddToSeen::                   add addr to seen-by's
353* AfterUnpack::                 execute string after unpack arcmail bundles
354* AreafixFromPkt::              process areafix requests on the fly
355* AreasFileNameCase::           case of filenames of autocreated areas
356* AutoPassive::                 set pause for links who don't poll our system
357* BeforePack::                  execute string before pack pkt files
358* BundleNameStyle::             style of filenames of arcmail bundles
359* DefArcmailSize::              default size for arcmail bundle
360* DisableTID::                  disable adding TID to messages
361* DisablePID::                  disable adding PID to messages
362* DisableKludgeRescanned::      disable adding kludge @@RESCANNED to messages
363* IgnoreCapWord::               ignore Capability Word in pkt files
364* IgnoreSeen::                  ignore SEEN-BYs and pack mail for link
365* KeepTrsFiles::                keep transit files
366* KeepTrsMail::                 keep transit netmail messages
367* KludgeAreaNetmail::           how to process netmail with kludge "AREA:NETMAIL"
368* LinkWithImportLog::           list of areas only which should be linked
369* NetmailFlag::                 create flag after unpacking netmail msg
370* NoProcessBundles::            no unpack arcmail bundles
371* Origin::                      add specified origin to hpt messages
372* PackNetMailOnScan::           pack netmail found in EchoTossLog file when scan
373* ProcessPkt::                  execute string before tossing pkts
374* RecodeMsgBase::               allow recoding of message base
375* Remap::                       remap mail to other address
376* Route::                       routing of netmails
377* RouteFile::                   routing of netmails with file attached
378* RouteMail::                   routing of netmails without file attached
379* SeparateBundles::             move echomail for each link to his own directory
380* SetConsoleTitle::             schange conesole title under win32
381* SortEchoList::                echolist sort mode
382* TearLine::                    add specified tearline to hpt messages
383* TossingExt::                  extension of mail files while tossing
384@end menu
385
386@node AddToSeen, AfterUnpack, Keywords, Keywords
387@subsection AddToSeen
388@findex AddToSeen
389@table @asis
390@item Syntax:
391@code{addToSeen <addr> [<addr> ...]}
392@item Example:
393@code{addToSeen 99/100 99/101}
394@end table
395
396Add <addr> to SEEN-BYs. If <addr> is present or not - it is always adds.
397
398This statement can be repeated.
399
400@node AfterUnpack, AreafixFromPkt, AddToSeen, Keywords
401@subsection AfterUnpack
402@findex AfterUnpack
403@table @asis
404@item Syntax:
405@code{afterUnpack <string>}
406@item Example:
407@code{afterUnpack pktpack /home/fido/in.tmp/*.pkt}
408@end table
409
410This <string> is executed after unpacking arcmail bundle. You may process
411your pkt files in @code{tempInbound} directory with external utility.
412
413This statement cannot be repeated.
414
415@node AreafixFromPkt, AreasFileNameCase, AfterUnpack, Keywords
416@subsection AreafixFromPkt
417@findex AreafixFromPkt
418@table @asis
419@item Syntax:
420@code{areafixFromPkt <bool>}
421@item Example:
422@code{areafixFromPkt}
423@end table
424
425Process areafix requests on the fly. Check "areafix", "areamgr" &
426"hpt" keywords in toUserName field. Request messages don't saves.
427
428This statement cannot be repeated.
429
430@xref{RobotNames,,,fidoconfig, fidoconfig}.
431
432@node AreasFileNameCase, AutoPassive, AreafixFromPkt, Keywords
433@subsection AreasFileNameCase
434@findex AreasFileNameCase
435@table @asis
436@item Syntax:
437@code{areasFileNameCase (Lower|Upper)}
438@item Example:
439@code{areasFileNameCase Upper}
440@end table
441
442This statement defines case of filemanes of autocreated areas.
443Default is lower case.
444
445This statement cannot be repeated.
446
447@node AutoPassive, BeforePack, AreasFileNameCase, Keywords
448@subsection AutoPassive
449@findex AutoPassive
450@table @asis
451@item Syntax:
452@code{autopassive <bool>}
453@item Example:
454@code{autopassive}
455@end table
456
457If this statement is defined HPT will check for old bundles in every run.
458Fileboxes are not checked. Links, for which there are bundles that are
459at least "@ref{AutoPause}" days old, will be paused. It stops exporting
460echomail for them. If @ref{AutoPause} is not defined or is equal to 0 for a link
461then AutoPassive is ignored for this link. If AutoPassive is not defined
462then @ref{AutoPause} is ignored for all links.
463
464The paused link is unsubscribed from the areas which are passthrough with no
465downlinks besides him (see -def in @ref{EchoArea,,,fidoconfig,fidoconfig} to make it work)
466AND which are allowed to be paused
467(see -pause, -paused, -noautoareapause, -autoareapause in @ref{EchoArea,,,fidoconfig,fidoconfig}
468and @ref{AutoAreaPause,,,fidoconfig,fidoconfig}).
469An unsubscribe request is sent to the uplink for those areas. Note that
470this feature is unavailable when using %PAUSE Areafix command.
471
472By using "hpt pause" command-line parameter instead of defining AutoPassive in
473the configuration file, you can do the check for old bundles and all the rest
474of the functionality of AutoPassive only once.
475
476This statement cannot be repeated.
477
478See also @ref{AutoPause} and @ref{Pause,,,fidoconfig,fidoconfig} sections.
479
480@node BeforePack, BundleNameStyle, AutoPassive, Keywords
481@subsection BeforePack
482@findex BeforePack
483@table @asis
484@item Syntax:
485@code{beforePack <string>}
486@item Example:
487@code{beforePack pktpack /home/fido/out.tmp/*.pkt}
488@end table
489
490This <string> is executed before packing pkt files to arcmail bundles. You
491may process your pkt files in @code{tempOutbound} directory with
492external utility.
493
494This statement cannot be repeated.
495
496@node BundleNameStyle, DefArcmailSize, BeforePack, Keywords
497@subsection BundleNameStyle
498@findex BundleNameStyle
499@table @asis
500@item Syntax:
501@code{bundleNameStyle <timeStamp | addrDiff | addrsCRC32 | addrDiffAlways | addrsCRC32Always | Amiga>}
502@item Example:
503@code{bundleNameStyle timeStamp}
504@end table
505
506This statement sets a rule for creating names of arcmail bundles:
507
508@table @asis
509@item @code{timeStamp}
510some kind of random names (current time + some counter).
511@item @code{addrDiff}
512create name from difference of source and destination addreses. Always
513the same filename for every pair of links. Automatically  switches to
514@code{timeStamp} when all alowed extensions have been used.
515@item @code{addrsCRC32}
516create name from CRC32 of string composed from "hpt", source and destination
517addreses. Always the same filename for every pair of links, very unique.
518Automatically switches to @code{timeStamp} when all alowed extensions have
519been used.
520@item @code{addrDiffAlways}
521the same as addrDiff but tries to use lower free numbers of extension in
522case when all higher numbers are already busy.
523@item @code{addrsCRC32Always}
524the same as addrsCRC32 but tryes to use lower free numbers of extension in
525case when all higher numbers are already busy.
526@item @code{Amiga)}
527Amiga Style Outbound (ASO). Bundles are created in @ref{outbound,,,fidoconfig,FidoConfig Manual} directory
528like this:
529@example
5302.5000.117.1.hut
5312.5000.117.1.mo0
532@end example
533If @ref{SeparateBundles} is @code{on} and @ref{packer,,,fidoconfig,FidoConfig Manual} not defined, pkt is moved to
534@code{2.5000.117.1.sep} directory.
535
536Extensions & prefixes in flo files are created as in @code{addrDiffAlways} algorithm.
537@end table
538
539Default value is @code{timeStamp}
540
541This statement cannot be repeated.
542
543See also @ref{LinkBundleNameStyle}.
544
545
546@node DefArcmailSize, DisableTID, BundleNameStyle, Keywords
547@subsection DefArcmailSize
548@findex DefArcmailSize
549@table @asis
550@item Syntax:
551@code{defarcmailsize <integer>}
552@item Example:
553@code{defarcmailsize 1024}
554@end table
555
556default arcmail size in kb for all links.
557500kb if not defined.
558
559This statement cannot be repeated.
560
561@node DisableTID, DisablePID, DefArcmailSize, Keywords
562@subsection DisableTID
563@findex DisableTID
564@table @asis
565@item Syntax:
566@code{DisableTID <bool>}
567@item Example:
568@code{DisableTID}
569@end table
570
571Don't add TID-line to scanned messages.
572
573This statement cannot be repeated.
574
575@node DisablePID, DisableKludgeRescanned, DisableTID, Keywords
576@subsection DisablePID
577@findex DisablePID
578@table @asis
579@item Syntax:
580@code{DisablePID <bool>}
581@item Example:
582@code{DisablePID}
583@end table
584
585Don't add PID-line to generated messages.
586
587This statement cannot be repeated.
588
589
590@node DisableKludgeRescanned, IgnoreCapWord, DisablePID, Keywords
591@subsection DisableKludgeRescanned
592@findex DisableKludgeRescanned
593@table @asis
594@item Syntax:
595@code{DisableKludgeRescanned <bool>}
596@item Example:
597@code{DisableKludgeRescanned}
598@end table
599
600Don't add kludge RESCANNED to generated messages.
601
602This statement cannot be repeated.
603
604
605@node IgnoreCapWord, IgnoreSeen, DisableKludgeRescanned, Keywords
606@subsection IgnoreCapWord
607@findex IgnoreCapWord
608@table @asis
609@item Syntax:
610@code{IgnoreCapWord <bool>}
611@item Example:
612@code{IgnoreCapWord}
613@end table
614
615Ignoring Capability Word in pkt files. If some pkt moved to bad. This
616may help, but not recommended. It is better to change old software.
617
618This statement cannot be repeated.
619
620@node IgnoreSeen, KeepTrsFiles, IgnoreCapWord, Keywords
621@subsection IgnoreSeen
622@findex IgnoreSeen
623@table @asis
624@item Syntax:
625@code{IgnoreSeen <addr> [<addr> ...]}
626@item Example:
627@code{IgnoreSeen 99/150}
628@end table
629
630Ignore this SEEN-BY & pack mail for link.
631But no pack it back if the mail was from him.
632
633This statement can be repeated.
634
635@node KeepTrsFiles, KeepTrsMail, IgnoreSeen, Keywords
636@subsection KeepTrsFiles
637@findex KeepTrsFiles
638@table @asis
639@item Syntax:
640@code{keepTrsFiles <bool>}
641@item Example:
642@code{keepTrsFiles}
643@end table
644
645Leave transit (routed) files in @code{Inbound} directory. If this
646statement is ommitted transit files wouldn't be kept.
647Default is "off".
648
649File route possible with "Att" attribute in message header and file name
650in subject line.
651
652This statement cannot be repeated.
653
654@xref{RouteFile}.
655
656@node KeepTrsMail, KludgeAreaNetmail, KeepTrsFiles, Keywords
657@subsection KeepTrsMail
658@findex KeepTrsMail
659@table @asis
660@item Syntax:
661@code{keepTrsMail <bool>}
662@item Example:
663@code{keepTrsMail}
664@end table
665
666Save transit messages in NetmailArea. If this statement is ommitted
667transit messages wouldn't be kept in NetmailArea. Default is "off".
668
669This statement cannot be repeated.
670
671
672@node KludgeAreaNetmail, LinkWithImportLog, KeepTrsMail, Keywords
673@subsection KludgeAreaNetmail
674@findex KludgeAreaNetmail
675@table @asis
676@item Syntax:
677@code{kludgeAreaNetmail <kill | ignore | echomail>}
678@item Example:
679@code{kludgeAreaNetmail kill}
680@end table
681
682Default is "kill"
683
684If message started with "AREA:NETMAIL" we have three ways:
685
6861. kill this kludge. process message as netmail.
6872. ignore this kludge. process message as netmail.
6883. process message as echomail.
689
690This statement cannot be repeated.
691
692@node LinkWithImportLog, NetmailFlag, KludgeAreaNetmail, Keywords
693@subsection LinkWithImportLog
694@findex LinkWithImportLog
695@table @asis
696@item Syntax:
697@code{linkWithImportLog <yes | no | kill>}
698@item Example:
699@code{linkWithImportLog yes}
700@end table
701
702This statement specifies if the importlog-file should be used to determine
703which echomail areas need to be linked.
704
705@table @asis
706@item yes
707importlog-file will be read. areas which are in importlog, will be linked.
708the importlog-file will not be erased.
709@item kill
710like yes, but the importlog-file will be killed after using it.
711@item no
712DEFAULT. all areas will be linked.
713@end table
714
715This statement cannot be repeated.
716
717@node NetmailFlag, NoProcessBundles, LinkWithImportLog, Keywords
718@subsection NetmailFlag
719@findex NetmailFlag
720@table @asis
721@item Syntax:
722@code{netmailFlag <file>}
723@item Example:
724@code{netmailFlag /etc/ftn/flags/netmail}
725@end table
726
727Create file-flag after unpacking netmail msg. This feature can be used
728for execute netmail trackers after tossing.
729
730This file also created after scannig @code{NetmailArea} without route
731definition. Scanning is stopped but file-flag created for netmail
732tracker.
733
734This statement cannot be repeated.
735
736@node NoProcessBundles, Origin, NetmailFlag, Keywords
737@subsection NoProcessBundles
738@findex NoProcessBundles
739@table @asis
740@item Syntax:
741@code{noProcessBundles <bool>}
742@item Example:
743@code{noProcessBundles}
744@end table
745
746Don't unpack arcmail bundles.
747
748This statement cannot be repeated.
749
750@node Origin, PackNetMailOnScan, NoProcessBundles, Keywords
751@subsection Origin
752@findex Origin
753@table @asis
754@item Syntax:
755@code{origin <string>}
756@item Example:
757@code{origin mega cool station}
758@end table
759
760Add this Origin to hpt messages: post, reports about new areas created.
761
762This statement cannot be repeated.
763
764@node PackNetMailOnScan, ProcessPkt, Origin, Keywords
765@subsection PackNetMailOnScan
766@findex PackNetMailOnScan
767@table @asis
768@item Syntax:
769@code{PackNetMailOnScan <bool>}
770@item Example:
771@code{PackNetMailOnScan off}
772@end table
773
774When PackNetMailOnScan is "on" (default) hpt packs netmail when doing
775"hpt scan" and netmail area is found in EchoTossLog file. When it is
776"off" hpt leaves netmail area(s) in EchoTossLog file until "hpt pack" is
777invoked.
778
779This statement can be repeated (overrides old setting).
780
781@node ProcessPkt, RecodeMsgBase, PackNetMailOnScan, Keywords
782@subsection ProcessPkt
783@findex ProcessPkt
784@table @asis
785@item Syntax:
786@code{processPkt <string>}
787@item Example:
788@code{processPkt pktdate}
789@end table
790
791The <string> is executed before tossing each pkt file. You can
792fix your pkts using pktdate or any other tool before tossing them. Note that
793pkt file may be renamed depending of @code{tossingExt} token value.
794
795This statement cannot be repeated.
796
797@node RecodeMsgBase, Remap, ProcessPkt, Keywords
798@subsection RecodeMsgBase
799@findex RecodeMsgBase
800@table @asis
801@item Syntax:
802@code{recodeMsgBase <bool>}
803@item Example:
804@code{recodeMsgBase off}
805@item Defaults:
806@code{recodeMsgBase on}
807@end table
808
809This statement specifies if we should recode messages when put/get them
810to/from message base. So you can keep message base in transport charset and
811configs/other local files in local one.
812
813This statement cannot be repeated.
814
815@node Remap, Route, RecodeMsgBase, Keywords
816@subsection Remap
817@findex Remap
818@table @asis
819@item Syntax:
820@code{Remap <ToName>,<ToAddress>,<NewAddress>}
821@item Examples:
822@itemize
823@item @code{Remap Max Levenkov,2:5000/117,2:5000/117.1\n}
824@item @code{Remap *,2:5000/117,2:5000/117.1}
825@item @code{Remap Max Levenkov,*,2:5000/117.1}
826@end itemize
827@end table
828
829Remap mail to other address.
830ToName @strong{OR} ToAddress can be replaced with asterisk to match any
831value of ToName or ToAddress. Two asterisks can't be defined together.
832@strong{This statement does not touch TOPT & FMPT kludges.}
833
834This statement can be repeated.
835
836@node Route, RouteFile, Remap, Keywords
837@subsection Route
838@findex Route
839@table @asis
840@item Syntax:
841@code{route <flavour> <routeVia> <target> [<target> ...]}@*
842@code{route nopack <target> [<target> ...]}
843@item Example:
844@code{route crash 2:2433/1245 2:2433/* 2:2432/*}@*
845@code{route nopack 2:5020/98*}
846@end table
847
848The @strong{route} statement defines a route to destination address namely
849the node address via which we send the netmail containing the specific
850destination address.
851
852There are two variants of the statement. The first one defines a route to
853<target>. The second one with 'nopack' (or 'no-pack') just after the
854'route' keyword tells not to process netmail when its destination coinsides
855with an address in <target>.
856
857@strong{<target>} is one specific destination address or a DOS-style
858pattern containing characters @strong{?} and/or @strong{*} and defining a set of destination
859addresses.
860
861@strong{<flavour>} is an instruction to mailer how it should handle the netmail
862and it can be one of the following keywords:
863@itemize @bullet
864@item hold
865@item normal
866@item crash
867@item direct
868@item immediate
869@end itemize
870
871If the flavour is 'hold', then the mailer should transfer the mail during
872an incoming session only. So the mail will be placed into outbound directory
873and it will wait for an incoming session. If the flavour differs from 'hold',
874then the mail may be transferred both during an incoming and an outgoing
875session. Interpretation of all flavours except 'hold' depends on the mailer.
876
877The file extension of the netmail file or the flow file which the tosser puts
878into the outbound depends on the flavour:
879
880@multitable @columnfractions .46 .30 .24
881@headitem flavour @tab netmail @tab flow
882@item hold
883@tab .hut
884@tab .hlo
885@item normal
886@tab .out
887@tab .flo
888@item crash
889@tab .cut
890@tab .clo
891@item direct
892@tab .dut
893@tab .dlo
894@item immediate
895@tab .iut
896@tab .ilo
897@end multitable
898
899@strong{<routeVia>} defines the node via which the mail will be sent to
900destination. It may take the following values:
901@itemize @bullet
902@item <address> -- mail is routed to destination via this specific address.
903@item host -- when this keyword is used, mail will be transmitted via the
904node whose address is formed from the destination address with node and a
905point numbers equated to zero.
906@item hub -- this keyword denotes hub-routing, which does not use the hubs
907defined in the nodelist but uses the node address defined by formula:
908
909@code{via_address = (destination_address / 100) * 100}
910
911Here '/ 100' denotes integer division discarding the remainder. E.g. a
912mail to node 2:2433/1245 is sent via 2:2433/1200, but a mail to node
9132:2433/355 is sent via 2:2433/300 which currently does not exist. BE CAREFUL!
914@item boss -- this keyword is used when destination system is a point.
915If the destination address is zone:net/node.point then mail is routed
916via zone:net/node.0
917@item no-route (or noroute) -- this keyword is a misnomer in a way and
918in fact it means route to destination via itself.
919@end itemize
920
921One may use the second variant of the route statement in the form
922
923@code{route <flavour> nopack <target> [<target> ...]}
924
925Here the <flavour> is ignored.  Such use is deprecated and it is left for
926compatibility with old versions.
927
928There can be several route statements. They are parsed in the order they
929are written until the statement with the target containing the destination
930address from the netmail is found.
931
932@strong{NOTE!} This statement must occur after "link" sections.
933
934@node RouteFile, RouteMail, Route, Keywords
935@subsection RouteFile
936@findex RouteFile
937@table @asis
938@item Syntax:
939@code{routeFile <flavour> <routeVia> <target> [<target> ...]}@*
940@code{routeFile nopack <target> [<target> ...]}
941@item Example:
942@code{routeFile crash 2:2433/1245 2:2433/* 2:2432/*}@*
943@code{routeFile nopack 2:5020/98*}
944@end table
945
946This statement is the same as the @ref{Route} statement, but applies
947only to messages with file attaches. Files are routed together with netmail
948messages. If no @code{RouteFile} defined, then files will be not routed at all!
949
950This statement can be repeated.
951
952@node RouteMail, SeparateBundles, RouteFile, Keywords
953@subsection RouteMail
954@findex RouteMail
955@table @asis
956@item Syntax:
957@code{routeMail <flavour> <routeVia> <target> [<target> ...]}@*
958@code{routeMail nopack <target> [<target> ...]}
959@item Example:
960@code{routeMail crash 2:2433/1245 2:2433/* 2:2432/*}@*
961@code{routeMail nopack 2:5020/98*}
962@end table
963
964This statement is the same as the @ref{Route} statement.
965
966This statement can be repeated.
967
968@node SeparateBundles, SetConsoleTitle, RouteMail, Keywords
969@subsection SeparateBundles
970@findex SeparateBundles
971@table @asis
972@item Syntax:
973@code{SeparateBundles <bool>}
974@item Example:
975@code{SeparateBundles}
976@end table
977
978Move echomail for all links to their own directories.
979
980This statement cannot be repeated.
981
982@node SetConsoleTitle, SortEchoList, SeparateBundles, Keywords
983@subsection SetConsoleTitle
984@findex SetConsoleTitle
985@table @asis
986@item Syntax:
987@code{SetConsoleTitle <bool>}
988@item Example:
989@code{SetConsoleTitle}
990@end table
991
992Set hpt console title while tossing. (@strong{WIN32 Only!})
993
994This statement cannot be repeated.
995
996@node SortEchoList, TearLine, SetConsoleTitle, Keywords
997@subsection SortEchoList
998@findex SortEchoList
999@table @asis
1000@item Syntax:
1001@code{SortEchoList none|name|group|group,name}
1002@item Example:
1003@code{SortEchoList name}
1004@end table
1005
1006This keyword determines sorting mode for echolist (%LIST, %QUERY, etc):
1007@table @asis
1008@item @code{none}
1009unsorted (order as presents in config file)
1010@item @code{name}
1011sort by name
1012@item @code{group}
1013sort by group (-g in echoArea) only
1014@item @code{group,name}
1015sort by group and name.
1016@end table
1017
1018When sorting is carried out by group, group descriptions
1019(see grpDesc keyword) are printed before groups' areas.
1020
1021By default echolist is sorted by name.
1022
1023This statement cannot be repeated.
1024
1025
1026@node TearLine, TossingExt, SortEchoList, Keywords
1027@subsection TearLine
1028@findex TearLine
1029@table @asis
1030@item Syntax:
1031@code{tearline <string>}
1032@item Example:
1033@code{tearline We Love HPT! :)}
1034@end table
1035
1036Add this tearline to hpt messages (post, reports about new areas created)
1037
1038This statement cannot be repeated.
1039
1040@node TossingExt,  , TearLine, Keywords
1041@subsection TossingExt
1042@findex TossingExt
1043@table @asis
1044@item Syntax:
1045@code{TossingExt [<string>]}
1046@item Example:
1047@code{TossingExt tos}
1048@end table
1049
1050Extension of bundle & packet files will be changed to <string> before
1051tossing (and before processPkt string executed if set). That may be used
1052for preventing of permanent tossing fault because of bad file in inbound.
1053Default extension: tos.
1054@code{TossingExt} without parameter disables files renaming in tossing.
1055
1056This statement cannot be repeated.
1057
1058@node Files and Paths, Link Keywords, Keywords, Configuration Reference
1059@section Files and Paths
1060
1061@value{HPT} is based on FIDOCONFIG library, so read documentation of
1062FIDOCONFIG about location of config file, keywords ideology and about
1063majority of the keywords,
1064@xref{Top, Fidoconfig Manual, , fidoconfig, Fidoconfig manual}.
1065
1066@menu
1067* AdvStatisticsFile::           binary statistic file
1068* AreasMaxDupeAge::             max age for dupes in CommonDupeBase
1069* DupeBaseType::                type of dupe base
1070* DupeHistoryDir::              path for dupe files
1071* EchoTossLog::                 file which contains the names of the areas to scan
1072* FileBoxesDir::                directory where link fileBoxes are created
1073* HptPerlFile::                 file which contains perl filter functions
1074* ImportLog::                   file which contains the names of the areas tossed in
1075* Intab::                       file for recoding incoming msgs
1076* MinDiskFreeSpace::            minimum free space on the drive
1077* MsgBaseDir::                  base directory of areas
1078* NotValidFileNameChars::       chars that will be converted to hex values
1079* Outtab::                      file for recoding outgoing msgs
1080* RulesDir::                    directory with area rules
1081* StatLog::                     file whith counter of personal net- and echo mails
1082* TempInbound::                 temporary inbound path
1083* TempOutbound::                temporary outbound path
1084@end menu
1085
1086@node AdvStatisticsFile, AreasMaxDupeAge, Files and Paths, Files and Paths
1087@subsection AdvStatisticsFile
1088@findex AdvStatisticsFile
1089@table @asis
1090@item Syntax:
1091@code{AdvStatisticsFile <filename>}
1092@item Example:
1093@code{AdvStatisticsFile /home/val/fido/log/hpt.sta}
1094@end table
1095
1096Define binary statistic file for calculating links and echo traffic.
1097Parsed by hpt/misc/adv-stat-hpt.pl
1098
1099@node AreasMaxDupeAge, DupeBaseType, AdvStatisticsFile, Files and Paths
1100@subsection AreasMaxDupeAge
1101@findex AreasMaxDupeAge
1102@table @asis
1103@item Syntax:
1104@code{areasMaxDupeAge <integer>}
1105@item Example:
1106@code{areasMaxDupeAge 10}
1107@end table
1108
1109Set maximum days for storing you hashes in CommonDupeBase.
1110Default value is 5.
1111
1112For any other dupe base type please use @code{-DupeHistory}
1113option in @ref{EchoArea,,,fidoconfig, fidoconfig} or
1114@ref{EchoAreaDefaults,,,fidoconfig, fidoconfig}.
1115
1116This statement cannot be repeated.
1117
1118@node DupeBaseType, DupeHistoryDir, AreasMaxDupeAge, Files and Paths
1119@subsection DupeBaseType
1120@findex DupeBaseType
1121@table @asis
1122@item Syntax:
1123@code{dupeBaseType <TextDupes | HashDupes | HashDupesWMsgId | CommonDupeBase>}
1124@item Example:
1125@code{dupeBaseType HashDupesWMsgId}
1126@end table
1127
1128@table @asis
1129@item TextDupes
1130stores from, to, subj & msgid as text lines.
1131@item HashDupes
1132stores src32 of from + to + subj + msgid.
1133@item HashDupesWMsgId
1134same as HashDupes, but stores also msgid as text.
1135@item CommonDupeBase
1136stores hashes of from + to + subj + areatag + msgid in one file (hpt_base.dpa)
1137@end table
1138
1139Default is @code{HashDupesWMsgId}.
1140
1141This statement cannot be repeated.
1142
1143@node DupeHistoryDir, EchoTossLog, DupeBaseType, Files and Paths
1144@subsection DupeHistoryDir
1145@findex DupeHistoryDir
1146@table @asis
1147@item Syntax:
1148@code{dupeHistoryDir <path>}
1149@item Example:
1150@code{dupeHistoryDir /var/spool/fido/dupes}
1151@end table
1152
1153This command specifies the path where the dupe history files are stored.
1154The format and the names of the dupe-files are not standardized.
1155
1156This statement cannot be repeated.
1157
1158@node EchoTossLog, FileBoxesDir, DupeHistoryDir, Files and Paths
1159@subsection EchoTossLog
1160@findex EchoTossLog
1161@table @asis
1162@item Syntax:
1163@code{echotosslog <file>}
1164@item Example:
1165@code{echotosslog /var/spool/fido/echotoss.log}
1166@end table
1167
1168This statement specifies the file which is filled by a message editor
1169or "hpt post" with the names of the areas where new netmails or echomails
1170have been entered. Each line contains one areaname.
1171When "hpt scan" is invoked, only echomail areas listed in this file will be
1172scanned, when we start "hpt pack" - the same is for netmail areas.
1173If area was processed, its name is removed from echotosslog file.
1174When hpt has finished processing all listed areas and this file became
1175empty, it is removed, otherwise kept for futher processing (maybe by other programs).
1176If this file is not found - all areas will be scanned
1177(depending on value of PackNetMailOnScan).
1178@xref{PackNetMailOnScan}, but if '-f' command line flag specified, scanning
1179will stop. Filename after -f is optional. If it is not set, value of
1180EchoTossLogFile will be taken from config, and from command line otherwise.
1181If scanning from EchoTossLogFile did not make any area scanning, all areas
1182will be processed (depending on 'scan' or 'pack' mode)
1183
1184This statement cannot be repeated.
1185
1186@node FileBoxesDir, HptPerlFile, EchoTossLog, Files and Paths
1187@subsection FileBoxesDir
1188@findex FileBoxesDir
1189@table @asis
1190@item Syntax:
1191@code{FileBoxesDir <directory>}
1192@item Example:
1193@code{FileBoxesDir ../boxes}
1194@end table
1195
1196@xref{FileBoxesDir, , ,fidoconfig, FidoConfig Manual}, for full description.
1197
1198@node HptPerlFile, ImportLog, FileBoxesDir, Files and Paths
1199@subsection HptPerlFile
1200@findex HptPerlFile
1201@table @asis
1202@item Syntax:
1203@code{hptperlfile <file>}
1204@item Example:
1205@code{hptperlfile /etc/ftn/filter.pl}
1206@end table
1207
1208This statement specifies the file which contains perl filter functions.
1209If not specified, perl support will be switched off.
1210
1211This statement cannot be repeated.
1212
1213@node ImportLog, Intab, HptPerlFile, Files and Paths
1214@subsection ImportLog
1215@findex ImportLog
1216@table @asis
1217@item Syntax:
1218@code{importlog <file>}
1219@item Example:
1220@code{importlog /var/spool/fido/import.log}
1221@end table
1222
1223This statement specifies the file which a tosser fills with the names
1224of the areas where echomails has been tossed in.
1225
1226This statement cannot be repeated.
1227
1228@node Intab, MinDiskFreeSpace, ImportLog, Files and Paths
1229@subsection Intab
1230@findex Intab
1231@table @asis
1232@item Syntax:
1233@code{intab <file>}
1234@item Example:
1235@code{intab /var/spool/fido/recode/outaltkoi8}
1236@end table
1237
1238This statement specifies the file which should be used to recode the
1239characters of the incoming messages from transport to internal
1240charset. It is useful in russia.
1241If you do not use this statement no recoding will be done.
1242
1243This statement cannot be repeated.
1244
1245@node MinDiskFreeSpace, MsgBaseDir, Intab, Files and Paths
1246@subsection MinDiskFreeSpace
1247@findex MinDiskFreeSpace
1248@table @asis
1249@item Syntax:
1250@code{MinDiskFreeSpace <integer>}
1251@item Example:
1252@code{MinDiskFreeSpace 10}
1253@end table
1254
1255This is the minimum disk free space in MB to run @value{HPT}.
1256The following directories are checked: @code{TempInbound},
1257@code{MsgBaseDir}, @code{LinkMsgBaseDir}s.
1258
1259The default value is 10.
1260
1261This statement cannot be repeated.
1262
1263@node MsgBaseDir, NotValidFileNameChars, MinDiskFreeSpace, Files and Paths
1264@subsection MsgBaseDir
1265@findex MsgBaseDir
1266@table @asis
1267@item Syntax:
1268@code{msgBaseDir <path>}
1269@item Example:
1270@code{msgBaseDir /var/spool/fido/msgb}
1271@end table
1272
1273This command specifies the path where msgBases of autocreated areas are
1274stored. For example: if an area called @code{LINUX.GER} was autocreated
1275and the msgBaseDir is @code{/var/spool/fido/msgb} the resulting
1276msgBaseName is
1277
1278@example
1279/var/spool/fido/msgb/linux.ger.sqd
1280@end example
1281
1282If you specify the msgbasedir as PASSTHROUGH, the areas will be created
1283as passthrough areas.
1284
1285This statement cannot be repeated.
1286
1287@xref{LinkMsgBaseDir}.
1288
1289@node NotValidFileNameChars, Outtab, MsgBaseDir, Files and Paths
1290@subsection NotValidFileNameChars
1291@findex NotValidFileNameChars
1292@table @asis
1293@item Syntax:
1294@code{NotValidFileNameChars <string>}
1295@item Example:
1296@code{NotValidFileNameChars :;<>=*?\/}
1297@end table
1298
1299This characters in message and dupebase filenames will be replaced
1300with %hex analogs. If not defined, default string used: "*/:;<=>?\|%`'&+
1301
1302This statement cannot be repeated.
1303
1304@node Outtab, RulesDir, NotValidFileNameChars, Files and Paths
1305@subsection Outtab
1306@findex Outtab
1307@table @asis
1308@item Syntax:
1309@code{outtab <file>}
1310@item Example:
1311@code{outtab /var/spool/fido/recode/outkoi8alt}
1312@end table
1313
1314This statement specifies the file which should be used to recode the
1315characters of the outgoing messages from internal to transport
1316charset. It is useful in russia.
1317If you do not use this statement no recoding will be done.
1318
1319This statement cannot be repeated.
1320
1321@node RulesDir, StatLog, Outtab, Files and Paths
1322@subsection RulesDir
1323@findex RulesDir
1324@table @asis
1325@item Syntax:
1326@code{rulesdir <path>}
1327@item Example:
1328@code{rulesdir /home/ftn/rules}
1329@end table
1330
1331This statement specifies where areafix searches for files with echoarea
1332rules which are sent to link via netmail when link is subscribed to
1333areas. File name is the same as message base file with trailing
1334".rul" (and consistently .ru1-.ru9 files with additional information).
1335Areaname is used when no message base file is set.
1336See also @code{NoRules} statement to avoid areafix from sending rules to
1337link.
1338
1339This statement cannot be repeated.
1340
1341@node StatLog, TempInbound, RulesDir, Files and Paths
1342@subsection StatLog
1343@findex StatLog
1344@table @asis
1345@item Syntax:
1346@code{statlog <file>}
1347@item Example:
1348@code{statlog /var/spool/fido/stat.log}
1349@end table
1350
1351After tossing (hpt toss), it is checked if there is new personal mail
1352(netmail or personal echo mail). If that's true, it is checked if
1353statlog is defined in config. If yes, then it is checked if the log file
1354exists. If not, then it is created and the number of received netmails
1355or/and personal echo mails is written to the log file. Otherwise, if the
1356file exists, the old counter will be read, added to the new counter and
1357written the actual counter.
1358The log file looks like this:
1359 netmail: x
1360 CC: x
1361Whereas x is the number of mails.
1362If the log file exists, one of the two or both lines exist.
1363
1364This is for utils, which can show you how many personal mail you got.
1365The log file is not removed by hpt, only by the util that uses it.
1366Or you could write in your toss script something like this:
1367 if exist stat.log type stat.log
1368 if exist stat.log del stat.log>nul
1369
1370This statement cannot be repeated.
1371
1372@node TempInbound, TempOutbound, StatLog, Files and Paths
1373@subsection TempInbound
1374@findex TempInbound
1375@table @asis
1376@item Syntax:
1377@code{tempinbound <path>}
1378@item Example:
1379@code{tempinbound /var/spool/fido/in.tmp}
1380@end table
1381
1382This command specifies a path which is used while tossing. The incoming packets
1383are unpacked there.
1384
1385This statement cannot be repeated.
1386
1387@node TempOutbound,  , TempInbound, Files and Paths
1388@subsection TempOutbound
1389@findex TempOutbound
1390@table @asis
1391@item Syntax:
1392@code{tempoutbound <path>}
1393@item Example:
1394@code{tempoutbound /var/spool/fido/out.tmp}
1395@end table
1396
1397This command specifies your temporary outbound path. It is used for
1398storing outgoing pkt-files before packing.
1399
1400This statement cannot be repeated.
1401
1402
1403@node Link Keywords, Carbon Copy, Files and Paths, Configuration Reference
1404@section Link Keywords
1405
1406@menu
1407* AdvancedAreafix::             advanced areafix
1408* AllowEmptyPktPwd::            allow empty packet passwords
1409* AllowPktAddrDiffer::          allow addresses in PKT and MSG differ for areafix req.
1410* AllowRemoteControl::          allow remote control using areafix
1411* ArcmailSize::                 size of arcmail bundle
1412* ArcNetmail::                  pack netmail for this link into arcmail bundles
1413* Areafix::                     areafix access for this link
1414* AutoAreaCreateSubdirs::       create structured or flat message base?
1415* AutoPause::                   stop export mail for this link after xx days
1416* AvailList::                   specify variant for reply to %avail
1417* DailyBundles::                start a new arcmail bundle for the link each day
1418* DenyRescan::                  deny rescan of areas
1419* EchoMailFlavour::             flavour for outgoing echomail
1420* Flavour::                     flavour for netmail, echomail and fileechoes
1421* ForwardPkts::                 shall we forward inbound packets for this node?
1422* FileBox::                     filebox directory
1423* FileBoxAlways::               pack to filebox even if link is not busy
1424* LinkBundleNameStyle::         style of filenames of arcmail bundles for link
1425* LinkGrp::                     main group for the link
1426* LinkMsgBaseDir::              base directory of areas for link
1427* NetMailFlavour::              flavour for outgoing netmail
1428* NoRules::                     don't send area rules to link on subscription
1429* PackAka::
1430* PktSize::                     max size of pkt in arcmail bundle
1431* ReducedSeenBY::               reduced seen-by mode (FSC-0093)
1432* RescanGrp::                   groups that @code{denyRescan} token applies to
1433* RescanLimit::                 limit max number of messages sent by rescan
1434* SendNotifyMessages::          send messages about query changes, bad posts and so on
1435* UnsubscribeOnAreaDelete::     send unsubscribe request when subscribed area is deleted
1436@end menu
1437  @ref{AreafixReportsAttr,,,fidoconfig,fidoconfig}::          set flags to areafix reports for the link
1438
1439@value{HPT} is based on FIDOCONFIG library, so read documentation of
1440FIDOCONFIG about location of config file, keywords ideology and about
1441majority of the keywords,
1442@xref{Top, Fidoconfig Manual, , fidoconfig, Fidoconfig manual}.
1443
1444
1445@node AdvancedAreafix, AllowEmptyPktPwd, Link Keywords, Link Keywords
1446@subsection AdvancedAreafix
1447@findex AdvancedAreafix
1448@table @asis
1449@item Syntax:
1450@code{advancedareafix <bool>}
1451@item Example:
1452@code{advancedareafix on}
1453@end table
1454
1455If this statement is "on" and our system wants to delete an area from
1456remote config then unsubscribe messages to areafix robot of this link
1457look like "~areaname". The area on the remote system will be deleted
1458from config file, if our system is allowed to delete this area ("allow
1459area delete" in FastEcho, and @ref{LinkGrp} must be the same as
1460EchoArea's @code{-g <group>} in @value{HPT}).
1461
1462Our system sends deleting command only for systems with
1463@code{AdvancedAreafix} and with @ref{UnsubscribeOnAreaDelete} set to "on"
1464and when default uplink (@code{-def}) unsubscribes from an EchoArea or
1465some link deletes this area by "~areaname" command. Of course if this
1466link has the rights to delete this area.
1467
1468You may also delete an area yourself by running the following command:@*@*
1469@code{hpt afix <your main AKA> ~area}@*@*
1470Here @code{<your main AKA>} is your main address. @xref{address,,,fidoconfig,FidoConfig Manual}.
1471
1472If @code{AdvancedAreafix} for the link is "off" (default), then unsubscribe
1473command "-areaname" is sent instead of delete command "~areaname".
1474
1475This statement can only be repeated for different links.
1476
1477@node AllowEmptyPktPwd, AllowPktAddrDiffer, AdvancedAreafix, Link Keywords
1478@subsection AllowEmptyPktPwd
1479@findex AllowEmptyPktPwd
1480@table @asis
1481@item Syntax:
1482@code{allowEmptyPktPwd <off|secure|on>}
1483@item Example:
1484@code{allowEmptyPktPwd on}
1485@end table
1486
1487This flag is useful if you want to generate packet passwords for this link,
1488but do not want to check the packet passwords that your link sends to you.
1489This is sometimes necessary as a workaraound if your link sends you netmail
1490packets without packet passwords, for example.
1491
1492The default state is off. In this case the incoming packet password must
1493match the packet password that you defined. This is the most secure option.
1494
1495If you set this switch to @code{secure}, packets that do not contain a
1496packet password and are received in the protected inbound will be processed.
1497You can use this if your uplink sometimes sends you packets without packet
1498passwords, as a workaround until the uplink has fixed his system. Still, if
1499you receive packets with @emph{wrong} packet passwords, they will be
1500rejected.
1501
1502The setting @code{on} works like the @code{secure} setting, with the
1503difference that packets without packet passwords are allowed even in the
1504unprotected inbound directory. It is not recommended to use this setting.
1505
1506This statement can only be repeated for different links.
1507
1508@node AllowPktAddrDiffer, AllowRemoteControl, AllowEmptyPktPwd, Link Keywords
1509@subsection AllowPktAddrDiffer
1510@findex AllowPktAddrDiffer
1511@table @asis
1512@item Syntax:
1513@code{allowPktAddrDiffer <bool>}
1514@item Example:
1515@code{allowPktAddrDiffer on}
1516@end table
1517
1518This keyword is useful if your link has more than one addresses, and therefore
1519the address in PKT header of his areafix request may be different from the
1520address in MSG header.
1521
1522The default state if @code{off}: in this case such letters won't be processed
1523by your areafix. The state @code{on} makes areafix ignore this error.
1524
1525This statement can only be repeated for different links.
1526
1527@node AllowRemoteControl, ArcmailSize, AllowPktAddrDiffer, Link Keywords
1528@subsection AllowRemoteControl
1529@findex AllowRemoteControl
1530@table @asis
1531@item Syntax:
1532@code{allowRemoteControl <bool>}
1533@item Example:
1534@code{allowRemoteControl on}
1535@end table
1536
1537If this keyword is @code{on} then link can do remote control using areafix.
1538Sending command "%from <addr>" (where <addr> is the address of any link,
1539defined in config) he makes areafix behave as if the message came from that link.
1540
1541You should enable this keyword only for yourself or cosysop, as it allows
1542changing other links' subscription and settings without knowing their passwords.
1543
1544The default state if @code{off}: remote control is disabled.
1545
1546This statement can only be repeated for different links.
1547
1548@node ArcmailSize, ArcNetmail, AllowRemoteControl, Link Keywords
1549@subsection ArcmailSize
1550@findex ArcmailSize
1551@table @asis
1552@item Syntax:
1553@code{arcmailsize <integer>}
1554@item Example:
1555@code{arcmailsize 300}
1556@end table
1557
1558Maximum arcmail size in kb for this link. Default is 500kb.
1559
1560This statement can only be repeated for different links.
1561
1562@node ArcNetmail, Areafix, ArcmailSize, Link Keywords
1563@subsection ArcNetmail
1564@findex ArcNetmail
1565@table @asis
1566@item Syntax:
1567@code{arcnetmail <bool>}
1568@item Example:
1569@code{arcnetmail on}
1570@end table
1571
1572This keyword is useful if you want to compress netmail for this link and
1573pack it into arcmail bundles or to filebox like echomail.
1574A netmail message will be packed and compressed into a bundle only if
1575 its flavour is equal to @code{EchoMailFlavour} for this link.
1576
1577The default state if @code{off}: in this case netmail will be written
1578to ut-file (i.e. *.?ut) and will not compressed.
1579
1580This statement can only be repeated for different links.
1581
1582@node Areafix, AutoAreaCreateSubdirs, ArcNetmail, Link Keywords
1583@subsection Areafix
1584@findex Areafix
1585@table @asis
1586@item Syntax:
1587@code{areafix <bool>}
1588@item Example:
1589@code{areafix off}
1590@end table
1591
1592By default areafix is "on". You can turn off using of areafix by this link.
1593
1594This statement can only be repeated for different links.
1595
1596@node AutoAreaCreateSubdirs, AutoPause, Areafix, Link Keywords
1597@subsection AutoAreaCreateSubdirs
1598@findex AutoAreaCreateSubdirs
1599@table @asis
1600@item Syntax:
1601@code{autoareacreatesubdirs <bool>}
1602@item Example:
1603@code{autoareacreatesubdirs on}
1604@end table
1605
1606This switch is turned off by default. When turned off, hpt will create a flat
1607message base. This means that a file echo @samp{FIDOSOFT.HUSKY} would be
1608created in the message base directory with a base file name of
1609@file{fidosoft.husky}, like in @file{/var/spool/msgbase/fidosoft.husky.sqd}
1610and so on.
1611
1612When turned on, a structured message base will be created. Each dot in the
1613echo name is treated as directory separator. Thus, @samp{FIDOSOFT.HUSKY}
1614would be created with a base name of @file{husky} in the @file{fidosoft}
1615directory, e.g. @file{/var/spool/msgbase/fidosoft/husky.sqd}.
1616
1617Please note that this option will @emph{not} currently work if the
1618@code{-dosfile} option is used to create filenames in 8.3 convention.
1619@xref{EchoArea,,EchoArea,fidoconfig,fidoconfig}, for more information on the @code{-dosfile} option.
1620
1621@node AutoPause, AvailList, AutoAreaCreateSubdirs, Link Keywords
1622@subsection AutoPause
1623@findex AutoPause
1624@table @asis
1625@item Syntax:
1626@code{autopause <integer>}
1627@item Example:
1628@code{autopause 10}
1629@end table
1630
1631AutoPause sets the number of days after which HPT will stop exporting echomail
1632for the link if he has not fetched his echomail for this period of time.
1633@ref{AutoPassive} should be defined for AutoPause to take effect.
1634
1635Technically, if you define "autopause 10" for a link then HPT looks for
163610 (or more) days old files that are listed to be sent for this link in
1637the .?lo files with `#' or `^' prefixes and reside in the outbound directory.
1638If at least one such file exists, exporting echomail for the link is paused.
1639
1640This statement can only be repeated for different links.
1641
1642See also @ref{AutoPassive} and @ref{Pause,,,fidoconfig,fidoconfig} sections.
1643
1644@node AvailList, DailyBundles, AutoPause, Link Keywords
1645@subsection AvailList
1646@findex AvailList
1647@table @asis
1648@item Syntax:
1649@code{AvailList (Full|Unique|UniqueOne)}
1650@item Example:
1651@code{AvailList Full}
1652@end table
1653
1654This statement specify variant for reply to %avail command for current link:
1655
1656@multitable {* UniqueOne}{aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa}
1657@item * Full
1658@tab produce full areas list for each uplink with avaiable forward subscribe for link
1659@item * Unique
1660@tab like @code{Full} but exclude dulicated areas for each next uplink
1661@item * UniqueOne
1662@tab produce one list: all areas from all uplinks without duplicates
1663@end multitable
1664
1665Default value is @code{AvailList Full}.
1666
1667This statement can only be repeated for different links.
1668
1669@node DailyBundles, DenyRescan, AvailList, Link Keywords
1670@subsection DailyBundles
1671@findex DailyBundles
1672@table @asis
1673@item Syntax:
1674@code{dailyBundles <bool>}
1675@item Example:
1676@code{dailyBundles}
1677@end table
1678
1679If DailyBundles is off, hpt will use existing arcmail bundles to add packets
1680for this link, even if they were created in the previous days. If
1681DailyBundles is set, a new arcmail bundle for the link will be started when
1682the new day begins.
1683
1684This statement can only be repeated for different links.
1685
1686@node DenyRescan, EchoMailFlavour, DailyBundles, Link Keywords
1687@subsection DenyRescan
1688@findex DenyRescan
1689@table @asis
1690@item Syntax:
1691@code{denyRescan <bool>}
1692@item Example:
1693@code{denyRescan}
1694@end table
1695
1696Don't allow to rescan areas (via areafix) to your links.
1697
1698This token can be applied to one or several area groups (see @code{RescanGrp}
1699token for details).
1700
1701This statement can only be repeated for different links.
1702
1703@node EchoMailFlavour, Flavour, DenyRescan, Link Keywords
1704@subsection EchoMailFlavour
1705@findex EchoMailFlavour
1706@table @asis
1707@item Syntax:
1708@code{echoMailFlavour <hold | normal | crash | direct | immediate>}
1709@item Example:
1710@code{echoMailFlavour hold}
1711@end table
1712
1713This statement sets the flavour which outgoing echomails for this link get.
1714For example set echomailFlavour for points to hold and for uplink crash.
1715
1716This statement can only be repeated for different links.
1717
1718@node Flavour, ForwardPkts, EchoMailFlavour, Link Keywords
1719@subsection Flavour
1720@findex Flavour
1721@table @asis
1722@item Syntax:
1723@code{flavour <hold | normal | crash | direct | immediate>}
1724@item Example:
1725@code{flavour hold}
1726@end table
1727
1728This statement sets the flavours for netmail, echomail and fileechoes
1729simultaneously. Note that you can combine this with @code{netMailFlavour},
1730@code{echoMailFlavour} or @code{fileEchoFlavour}; in this case the latest
1731flavour is applied.
1732
1733This statement can only be repeated for different links.
1734
1735@node ForwardPkts, FileBox, Flavour, Link Keywords
1736@subsection ForwardPkts
1737@findex ForwardPkts
1738@table @asis
1739@item Syntax:
1740@code{forwardPkts <off|secure|on>}
1741@item Example:
1742@code{forwardPkts yes}
1743@end table
1744
1745If we receive a PKT file that is not addressed to our system, but to this
1746link of us, this flag controls if the PKT file should be binary
1747forwarded to this link. The default behaviour is not to forward the pkt
1748file, but to remain it to @code{<filename>.ntu} and leave it in the
1749inbound. If you specify @code{<yes>}, the file will instead be forwarded
1750to the destination link (i.E. put into his arcmail bundle). If you
1751specify @code{<secure>}, the file will only be forwarded if we have
1752received it in the secure inbound. You should specify @code{secure} if
1753the destination link does not check packet passwords.
1754
1755PKT forwarding can be useful for tunneling purposes, for
1756instance. Another example is if you are running two nodes, one IP node
1757at your company and one PSTN node at your home. If you want to show both
1758node numbers at both mailers, the tossers at each node must forward PKT
1759files that are addressed to the other node, because they themselves
1760cannot process it (each tosser has a different node number, because the
1761systems operate on distinct outbound structures and distinct message
1762base areas).
1763
1764This statement can only be repeated for different links.
1765
1766WARNING! This statement also enables file forwarding in htick!
1767
1768@node FileBox, FileBoxAlways, ForwardPkts, Link Keywords
1769@subsection FileBox
1770@findex FileBox
1771@table @asis
1772@item Syntax:
1773@code{FileBox <directory>}
1774@item Example:
1775@code{FileBox boxes/2.5021.19.1}
1776@end table
1777
1778This statement defines directory where outgoing files for link would be
1779putten instead of putting them in @code{Outbound} tree. See also
1780@code{FileBoxAlways} for details.
1781
1782Currently hpt can put only echomail into fileBoxes.
1783
1784This statement can only be repeated for different links.
1785
1786@node FileBoxAlways, LinkBundleNameStyle, FileBox, Link Keywords
1787@subsection FileBoxAlways
1788@findex FileBoxAlways
1789@table @asis
1790@item Syntax:
1791@code{FileBoxAlways <bool>}
1792@item Example:
1793@code{FileBoxAlways}
1794@end table
1795
1796Pack to link @code{FileBox} even if link is not busy. By default
1797outbound is used when link is not busy.
1798
1799This statement can only be repeated for different links. Works only for
1800links which have @code{FileBox} or when @code{FileBoxesDir} is set.
1801
1802@xref{FileBox}, @xref{FileBoxesDir}.
1803
1804@node LinkBundleNameStyle, LinkGrp, FileBoxAlways, Link Keywords
1805@subsection LinkBundleNameStyle
1806@findex LinkBundleNameStyle
1807@table @asis
1808@item Syntax:
1809@code{linkBundleNameStyle <timeStamp | addrDiff | addrDiffAlways | addrsCRC32 | addrsCRC32Always | Amiga>}
1810@item Example:
1811@code{linkbundleNameStyle addrDiff}
1812@end table
1813
1814This statement sets rule for creating names of arcmail bundles for link.
1815It is similar @code{BundleNameStyle} keyword.
1816
1817@xref{BundleNameStyle}.
1818
1819This statement can only be repeated for different links.
1820
1821@node LinkGrp, LinkMsgBaseDir, LinkBundleNameStyle, Link Keywords
1822@subsection LinkGrp
1823@findex LinkGrp
1824@table @asis
1825@item Syntax:
1826@code{LinkGrp <Group name>}
1827@item Example:
1828@code{LinkGrp INTERNATIONAL}
1829@end table
1830
1831   Specifies a group to use for areas auto-created from this link. Also
1832link can delete echo areas in his @code{LinkGrp} group.
1833
1834   In this exmaple:
1835
1836   1) string @code{INTERNATIONAL} will be added to a new area record unless
1837@code{AutoCreateDefaults} defines implicit group;
1838
1839   2) links that have no access to group @code{INTERNATIONAL} can't forward requests to uplink with @code{LinkGrp INTERNATIONAL};
1840
1841   3) this link can delete echo areas with @code{-g INTERNATIONAL} group if @code{AdvancedAreafix} is enabled for this link.
1842
1843@xref{AdvancedAreafix}.
1844
1845This statement can only be repeated for different links.
1846
1847@node LinkMsgBaseDir, NetMailFlavour, LinkGrp, Link Keywords
1848@subsection LinkMsgBaseDir
1849@findex LinkMsgBaseDir
1850@table @asis
1851@item Syntax:
1852@code{linkMsgBaseDir <path>}
1853@item Example:
1854@code{linkMsgBaseDir /var/spool/fido/msgb}
1855@end table
1856
1857Same as @code{MsgBaseDir}, but you can set it for different links.
1858@strong{Do not use it with} @code{LinkDefaults}!
1859
1860This statement can only be repeated for different links.
1861
1862@xref{MsgBaseDir}.
1863
1864@node NetMailFlavour, NoRules, LinkMsgBaseDir, Link Keywords
1865@subsection NetMailFlavour
1866@findex NetMailFlavour
1867@table @asis
1868@item Syntax:
1869@code{netMailFlavour <hold | normal | crash | direct | immediate>}
1870@item Example:
1871@code{netMailFlavour crash}
1872@end table
1873
1874This statement sets the flavour for outgoing netmail routed via this link.
1875
1876This statement can only be repeated for different links.
1877
1878@node NoRules, PackAka, NetMailFlavour, Link Keywords
1879@subsection NoRules
1880@findex NoRules
1881@table @asis
1882@item Syntax:
1883@code{norules <bool>}
1884@item Example:
1885@code{norules on}
1886@end table
1887
1888By default "norules off" i.e. send rules.
1889
1890This statement points to areafix to not send area rules to link when
1891link is subscribed to area and corresponding file is found in
1892@code{RulesDir}.
1893
1894This statement can only be repeated for different links.
1895
1896@node PackAka, PktSize, NoRules, Link Keywords
1897@subsection PackAka
1898@findex PackAka
1899@table @asis
1900@item Syntax:
1901@code{PackAka <addr>}
1902@item Example:
1903@code{PackAka 2:4600/220}
1904@end table
1905
1906This statement sets the aka to which the echomail and fileechos will be sent
1907(Pack echomail and fileechos via third link). The PackAka link used only in
1908BSO, fileboxes and arcmail filename creation, therefore the PackAka link may
1909not present in config.
1910
1911This feature may be used for simple echomail routing.
1912
1913This statement can only be repeated for different links.
1914
1915
1916@node PktSize, ReducedSeenBY, PackAka, Link Keywords
1917@subsection PktSize
1918@findex PktSize
1919@table @asis
1920@item Syntax:
1921@code{pktsize <integer>}
1922@item Example:
1923@code{pktsize 300}
1924@end table
1925
1926Maximum pkt size in kb for this link. Default - unlimited.
1927
1928This statement can only be repeated for different links.
1929
1930@node ReducedSeenBY, RescanGrp, PktSize, Link Keywords
1931@subsection ReducedSeenBY
1932@findex ReducedSeenBY
1933@table @asis
1934@item Syntax:
1935@code{ReducedSeenBY <bool>}
1936@item Example:
1937@code{ReducedSeenBY on}
1938@end table
1939
1940This statement turns on/off reduced seen-by algorithm (FSC-0093)
1941
1942@example
1943RSB algorithm
1944-------------
19451) add own system to the PATH.
19462) all area links not contained in the RSB qualify as recipients.
19473) strip RSB addresses not matching an address in the PATH, then
1948   add own address(es) to the RSB set if not already contained.
19494) add recipients to RSB, sort RSB and forward mail to recipients.
1950@end example
1951
1952This statement can only be repeated for different links.
1953
1954@node RescanGrp, RescanLimit, ReducedSeenBY, Link Keywords
1955@subsection RescanGrp
1956@findex RescanGrp
1957@table @asis
1958@item Syntax:
1959@code{RescanGrp <string>[,<string>...]}
1960@item Example:
1961@code{RescanGrp A,B,C,Local}
1962@end table
1963
1964If defined, @code{denyRescan} token applies to specified area groups only,
1965while other area groups are applied with the opposite value.
1966
1967Example:
1968
1969There are areas with the groups A, B, C and D in config. The following table
1970demonstrates how combination of options allows you to specify different
1971rights for link.
1972
1973@table @asis
1974@item denyRescan off
1975All area groups are allowed to rescan.
1976@item denyRescan on
1977All area groups are denied to rescan.
1978@item denyRescan off, rescanGrp A,B
1979Area groups A and B are allowed to rescan, while C and D are denied.
1980@item denyRescan on, rescanGrp A,B
1981Area groups A and B are denied to rescan, while C and D are allowed.
1982@end table
1983
1984This statement can only be repeated for different links.
1985
1986@node RescanLimit, SendNotifyMessages, RescanGrp, Link Keywords
1987@subsection RescanLimit
1988@findex RescanLimit
1989@table @asis
1990@item Syntax:
1991@code{RescanLimit <number>}
1992@item Example:
1993@code{RescanGrp 100}
1994@end table
1995
1996This keyword is used to limit max number of messages sent by %rescan command.
1997If it's set to 0 (default), the link is not limited.
1998
1999This statement can only be repeated for different links.
2000
2001@node SendNotifyMessages, UnsubscribeOnAreaDelete, RescanLimit, Link Keywords
2002@subsection SendNotifyMessages
2003@findex SendNotifyMessages
2004@table @asis
2005@item Syntax:
2006@code{sendNotifyMessages <bool>}
2007@item Example:
2008@code{sendNotifyMessages on}
2009@end table
2010
2011If sendNotifyMessages is true, link will receive notification messages from
2012areafix about link's requests status, bad posts or deletion of subscribed area.
2013
2014By default is off, i.e. do not send any notification messages.
2015
2016This statement can only be repeated for different links.
2017
2018@node UnsubscribeOnAreaDelete,  , SendNotifyMessages, Link Keywords
2019@subsection UnsubscribeOnAreaDelete
2020@findex UnsubscribeOnAreaDelete
2021@table @asis
2022@item Syntax:
2023@code{unsubscribeOnAreaDelete <bool>}
2024@item Example:
2025@code{unsubscribeOnAreaDelete yes}
2026@end table
2027
2028If unsubscribeOnAreaDelete is true, link will receive unsubscribe request
2029("-area" if @ref{AdvancedAreafix} is off for the link and "~area" if it is on)
2030to his areafix when subscribed area is deleted. An area may be deleted when
2031default uplink (@code{-def}) unsubscribes from the area or some link deletes
2032this area by "~area" command (@ref{LinkGrp} for the link that deletes an area
2033must be the same as EchoArea's @code{-g <group>}). You may also delete an area
2034yourself by running the following command:@*@*
2035@code{hpt afix <your main AKA> ~area}@*@*
2036Here @code{<your main AKA>} is your main address. @xref{address,,,fidoconfig,FidoConfig Manual}.
2037
2038By default is off, i.e. do not send unsubscribe request.
2039
2040This statement can only be repeated for different links.
2041
2042
2043@node Carbon Copy,  , Link Keywords, Configuration Reference
2044@section Carbon Copy
2045
2046@menu
2047* CarbonAddr::                  make carbonCopy using from address of msg
2048* CarbonAndQuit::               carbon message only one time
2049* CarbonCopy::                  specify the area where the carbon copies go into
2050* CarbonDelete::                specify that the carbon msg should be deleted
2051* CarbonExcludeFwdFrom::        exclude " * Forward from area " string
2052* CarbonExtern::                specify the external program to pass msg text to
2053* CarbonFrom::                  make carbonCopy using from-field of msg
2054* CarbonFromArea::              carbon messages from area
2055* CarbonGroups::                make carbonbonCopy from this groups
2056* CarbonKeepSb::                keep seen-by's and path
2057* CarbonKludge::                make carbonCopy using kludge lines of msg
2058* CarbonMove::                  specify the area where the carbon msg get moved into
2059* CarbonOut::                   carbon outgoing messages
2060* CarbonReason::                string of carbon copy reason
2061* CarbonRule::                  how to combine Carbon expressions
2062* CarbonSubj::                  make carbonCopy using subject-field of msg
2063* CarbonText::                  make carbonCopy using text-field of msg
2064* CarbonTo::                    make carbonCopy using to-field of msg
2065* ExcludePassthroughCarbon::    don't carbon in passthrough areas
2066* NetmailExtern::               specify the external Program to pass netmail msgs to
2067
2068@end menu
2069
2070@value{HPT} is based on FIDOCONFIG library, so read documentation of
2071FIDOCONFIG about location of config file, keywords ideology and about
2072majority of the keywords,
2073@xref{Top, Fidoconfig Manual, , fidoconfig, Fidoconfig manual}.
2074
2075
2076@node CarbonAddr, CarbonAndQuit, Carbon Copy, Carbon Copy
2077@subsection  CarbonAddr
2078@findex CarbonAddr
2079@table @asis
2080@item Syntax:
2081@code{carbonAddr <addr>}
2082@item Example:
2083@code{carbonAddr 2:5000/100}@*
2084@code{carbonCopy mail.from.100}
2085@end table
2086
2087If an echomail is tossed whose from address field is the same as <addr>,
2088the echomail is copied to the area specified by the @code{carbonCopy}
2089keyword.
2090
2091This statement can be repeated.
2092
2093@node CarbonAndQuit, CarbonCopy, CarbonAddr, Carbon Copy
2094@subsection CarbonAndQuit
2095@findex CarbonAndQuit
2096@table @asis
2097@item Syntax:
2098@code{carbonAndQuit <bool>}
2099@item Example:
2100@code{carbonAndQuit}
2101@end table
2102
2103By default one message can be processed by Carbon Copy several times.
2104For example: you set CarbonTo "max" to echoarea MY.MAIL and CarbonSubj
2105"beer" to echoarea MY.PLEASURE :-) And message to "max" with this
2106subject line carbons to each @code{EchoArea}.
2107
2108If you turn on @code{CarbonAndQuit} message will be copyed to MY.MAIL
2109only.
2110
2111It is however possible to override this setting, by putting an '*'
2112before the action:
2113@example
2114     CarbonCopy *my.mail
2115     CarbonMove *my.mail
2116     CarbonExtern *<command line>
2117@end example
2118
2119This '*' does not work for CarbonDelete of course.
2120
2121This statement cannot be repeated.
2122
2123@node CarbonCopy, CarbonDelete, CarbonAndQuit, Carbon Copy
2124@subsection CarbonCopy
2125@findex CarbonCopy
2126@table @asis
2127@item Syntax:
2128@code{carbonCopy <area-tag>}
2129@item Example:
2130@code{carbonCopy written.from.points}
2131@end table
2132
2133This statement sets the area for the previous
2134carbon@{Addr|To|From|Kludge|Subj|Text@} statement.
2135
2136If no @code{EchoArea} defined to copy, the carbon msgs goes to the
2137@code{BadArea}.
2138
2139Note: You cannot carbonCopy a message from EchoArea to NetmailArea
2140and vice versa.
2141
2142This statement can be placed after different
2143carbon@{Addr|To|From|Kludge|Subj|Text@} statements.
2144
2145@xref{CarbonMove}.
2146
2147@node CarbonDelete, CarbonExcludeFwdFrom, CarbonCopy, Carbon Copy
2148@subsection CarbonDelete
2149@findex CarbonDelete
2150@table @asis
2151@item Syntax:
2152@code{carbonDelete}
2153@item Example:
2154@code{carbonDelete}
2155@end table
2156
2157This statement specifies that selected by previous
2158carbon@{Addr|To|From|Kludge|Subj|Text@} statement msgs should not be
2159stored into @code{EchoArea}.
2160
2161This statement can be repeated for each different
2162carbon@{Addr|To|From|Kludge|Subj|Text@} statement.
2163
2164@node CarbonExcludeFwdFrom, CarbonExtern, CarbonDelete, Carbon Copy
2165@subsection CarbonExcludeFwdFrom
2166@findex CarbonExcludeFwdFrom
2167@table @asis
2168@item Syntax:
2169@code{CarbonExcludeFwdFrom <bool>}
2170@item Example:
2171@code{CarbonExcludeFwdFrom}
2172@end table
2173
2174Don't add to begin of carbon msg text " * Forward from area <areatag>"
2175
2176This statement cannot be repeated.
2177
2178@node CarbonExtern, CarbonFrom, CarbonExcludeFwdFrom, Carbon Copy
2179@subsection CarbonExtern
2180@findex CarbonExtern
2181@table @asis
2182@item Syntax:
2183@code{carbonExtern <program name>}
2184@item Example:
2185@code{carbonExtern douuedecode}
2186@end table
2187
2188This statement specifies external program to run for the previous
2189carbon@{Addr|To|From|Kludge|Subj|Text@} statement.
2190
2191If this statement is ommitted and no @code{EchoArea} defined for move or
2192copy, the carbon msgs gets copyed to the @code{BadArea}.
2193
2194If program name is prepended with '|' sign, hpt tries to pass data thru
2195the pipe, not temporary file.
2196
2197This statement can be repeated for each different
2198carbon@{Addr|To|From|Kludge|Subj|Text@} statement.
2199
2200@node CarbonFrom, CarbonFromArea, CarbonExtern, Carbon Copy
2201@subsection CarbonFrom
2202@findex CarbonFrom
2203@table @asis
2204@item Syntax:
2205@code{carbonFrom <pattern>}
2206@item Example:
2207@example
2208carbonFrom Matthias Tichy
2209carbonCopy my.echomail
2210@end example
2211@end table
2212
2213If an echomail is tossed whose from-field matched the pattern <pattern>,
2214the echomail is copied to the area specified by the @code{CarbonCopy}
2215keyword or moved to the area specified by the @code{CarbonMove} keyword.
2216The names must be an exact match.
2217
2218You can enclose <string> into quotes ("<string>").
2219
2220This statement can be repeated.
2221
2222@node CarbonFromArea, CarbonGroups, CarbonFrom, Carbon Copy
2223@subsection CarbonFromArea
2224@findex CarbonFromArea
2225@table @asis
2226@item Syntax:
2227@code{CarbonFromArea <pattern>}
2228@item Example:
2229@code{CarbonFromArea Interuser}
2230@end table
2231
2232Only messages that are written in this areas will be copied. Use it in
2233combination with CarbonRule to prevent that all messages from an area
2234are copied.
2235
2236@xref{CarbonRule}.
2237
2238Another example:
2239@example
2240CarbonFromArea Interuser
2241CarbonRule NOT
2242CarbonText " Israel "
2243CarbonCopy my.news
2244@end example
2245
2246<pattern> is the mask for area name, defined after EchoArea or NetMailArea.
2247
2248This statement can be repeated.
2249
2250@node CarbonGroups, CarbonKeepSb, CarbonFromArea, Carbon Copy
2251@subsection CarbonGroups
2252@findex CarbonGroups
2253@table @asis
2254@item Syntax:
2255@code{carbonGroups <string> [,<string>...]}
2256@item Example:
2257@code{carbonGroups Fido, LifeNet}@*
2258@code{carbonCopy my.echomail}
2259@end table
2260
2261With this keyword you can define from which groups messages should be copied.
2262It is wise when you use this keyword together with other selection criteria
2263or else the result will give many messages.
2264
2265@xref{CarbonRule}.
2266
2267This statement can be repeated.
2268
2269@node CarbonKeepSb, CarbonKludge, CarbonGroups, Carbon Copy
2270@subsection CarbonKeepSb
2271@findex CarbonKeepSb
2272@table @asis
2273@item Syntax:
2274@code{carbonKeepSb <bool>}
2275@item Example:
2276@code{carbonKeepSb}
2277@end table
2278
2279For each CC message SEEN-BY's and PATH fields are killed. If you set up
2280@code{CarbonKeepSb} then all kludges will be saved. But you may also
2281set up @code{-keepsb} in options of @code{EchoArea} where you carbon
2282messages.
2283
2284This statement cannot be repeated.
2285
2286@node CarbonKludge, CarbonMove, CarbonKeepSb, Carbon Copy
2287@subsection CarbonKludge
2288@findex CarbonKludge
2289@table @asis
2290@item Syntax:
2291@code{carbonKludge <pattern>}
2292@item Example:
2293@code{carbonKludge MSGID: 2:5000/117.}@*
2294@code{carbonCopy written.by.points}
2295@end table
2296
2297If an echomail is tossed which has a kludge line which includes the
2298substring matches <pattern>, the echomail is copied to the area
2299specified by the @code{CarbonCopy} keyword.
2300
2301You can enclose <pattern> into quotes ("<pattern>").
2302@example
2303carbonKludge "REPLY: 2:5000/117 "
2304@end example
2305
2306This statement can be repeated.
2307
2308@node CarbonMove, CarbonOut, CarbonKludge, Carbon Copy
2309@subsection CarbonMove
2310@findex CarbonMove
2311@table @asis
2312@item Syntax:
2313@code{carbonMove <area-tag>}
2314@item Example:
2315@code{carbonMove my.echomail}
2316@end table
2317
2318This statement sets the area for the previous
2319carbon@{Addr|To|From|Kludge|Subj|Text@} statement.
2320
2321If no @code{EchoArea} defined to copy (or move), the carbon msgs goes to
2322the @code{BadArea}.
2323
2324Note: You cannot carbonMove a message from EchoArea to NetmailArea
2325and vice versa.
2326
2327Unlike @code{CarbonCopy} msg gets moved, not copied into this area.
2328
2329This statement can be placed after different
2330carbon@{Addr|To|From|Kludge|Subj|Text@} statements.
2331
2332@xref{CarbonCopy}.
2333
2334@node CarbonOut, CarbonReason, CarbonMove, Carbon Copy
2335@subsection CarbonOut
2336@findex CarbonOut
2337@table @asis
2338@item Syntax:
2339@code{carbonOut <bool>}
2340@item Example:
2341@code{carbonOut}
2342@end table
2343
2344This statement makes possible carbon your outgoing mail (scanned &
2345packed). Don't forget to set carbon rules.
2346
2347This statement cannot be repeated.
2348
2349@node CarbonReason, CarbonRule, CarbonOut, Carbon Copy
2350@subsection CarbonReason
2351@findex CarbonReason
2352@table @asis
2353@item Syntax:
2354@code{carbonReason <string>}
2355@item Example:
2356@code{carbonText msged}@*
2357@code{carbonReason Found 'msged' in message}@*
2358@code{carbonCopy my.searches.echo}
2359@end table
2360
2361This statement sets the 'reason string' for the previous
2362carbon@{Addr|To|From|Kludge|Subj|Text@} statement.
2363
2364This string would be printed after ' * Forwarded ...' line in message
2365begining. That's useful when many carbons are made to single area.
2366No reason string is printed if this statement is ommitted.
2367
2368This statement can be repeated for each different
2369carbon@{Addr|To|From|Kludge|Subj|Text@} statement.
2370
2371@node CarbonRule, CarbonSubj, CarbonReason, Carbon Copy
2372@subsection CarbonRule
2373@findex CarbonRule
2374@table @asis
2375@item Syntax:
2376@code{carbonRule AND|NOT|OR}
2377@item Example:
2378@example
2379carbonGroups fido
2380carbonRule AND
2381carbonText programming
2382carbonCopy my.echomail
2383@end example
2384@end table
2385
2386With this keyword you can make it possible to have more than 1 selection
2387criteria for a message. The default rule is AND. So without using CarbonRule,
2388all expressions will be AND-ed.
2389With Carbonrule AND, the two expressions above and below the AND must be
2390true or else a message will not be copied.
2391With Carbonrule you can define how the expressions are joined together.
2392
2393CarbonRule NOT, is in fact AND NOT. So
2394
2395@example
2396        CarbonText beatles
2397        CarbonRule NOT
2398        CarbonText bugs
2399        CarbonCopy my.mail
2400@end example
2401
2402...will only copy messages when 'beatles' is in the text AND NOT 'bugs'
2403in the text.
2404
2405In general, it is possible to define more than one set of rules for
24061 single carbonArea.
2407For example:
2408@example
2409        CarbonText female
2410        CarbonRule NOT
2411        CarbonText connector
2412        CarbonRule OR
2413        CarbonSubj beer
2414        CarbonRule AND
2415        CarbonText drink
2416        CarbonText holliday
2417        CarbonCopy my.mail
2418@end example
2419Here are two sets of criteria and for all of them there is only 1 carbonarea
2420defined. After an OR, a new set of expressions start.
2421The above example can also be written as:
2422@example
2423        CarbonRule NOT
2424        CarbonText connector
2425        CarbonRule AND
2426        CarbonText female
2427        CarbonRule OR
2428        CarbonRule AND
2429        CarbonSubj beer
2430        CarbonText drink
2431        CarbonText holliday
2432        CarbonCopy my.mail
2433@end example
2434
2435Messages that have 'female' in the text, but not the word 'connector',
2436will be copied to the my.mail area.
2437
2438Also messages with 'beer' in the text AND 'drink' in the text AND 'holliday'
2439in the text, will be copied to the my.mail area.
2440
2441A set of expressions is true when they are OR-ed and at least one
2442of them is true.
2443
2444A set of expressions is true when they are AND-ed and ALL of them are true.
2445Expressions are evaluated from top to bottom.
2446
2447This statement can be repeated.
2448
2449A CarbonRule is valid until a next rule is defined of until an action.
2450After an action (CarbonCopy, CarbonMove, etc), the CarbonRule is AND again
2451and new set of expressions starts.
2452
2453@node CarbonSubj, CarbonText, CarbonRule, Carbon Copy
2454@subsection CarbonSubj
2455@findex CarbonSubj
2456@table @asis
2457@item Syntax:
2458@code{carbonSubj <pattern>}
2459@item Example:
2460@code{carbonSubj beer}@*
2461@code{carbonCopy cc.beer}
2462@end table
2463
2464If an echomail is tossed which has a subject line matched <pattern>,
2465this echomail is copied to the area specified by the @code{CarbonCopy}
2466keyword or moved to the area specified by the @code{CarbonMove} keyword.
2467You can enclose <pattern> into quotes ("<pattern>").
2468
2469This statement can be repeated.
2470
2471@node CarbonText, CarbonTo, CarbonSubj, Carbon Copy
2472@subsection CarbonText
2473@findex CarbonText
2474@table @asis
2475@item Syntax:
2476@code{carbonText <pattern>}
2477@item Example:
2478@code{carbonText cool beer}@*
2479@code{carbonCopy cc.beer}
2480@end table
2481
2482If an echomail is tossed which has a kludge line which includes the
2483substring matches <pattern>, the echomail is copied to the area
2484specified by the @code{CarbonCopy} keyword or moved to the area
2485specified by the @code{CarbonMove} keyword.
2486
2487You can enclose <pattern> into quotes ("<pattern>").
2488
2489This statement can be repeated.
2490
2491@node CarbonTo, ExcludePassthroughCarbon, CarbonText, Carbon Copy
2492@subsection CarbonTo
2493@findex CarbonTo
2494@table @asis
2495@item Syntax:
2496@code{carbonTo <pattern>}
2497@item Example:
2498@code{carbonTo Max Levenkov}@*
2499@code{carbonCopy my.echomail}
2500@end table
2501
2502If an echomail is tossed whose to-field matched <pattern>, the
2503echomail is copied to the area specified by the @code{CarbonCopy}
2504keyword or moved to the area specified by the @code{CarbonMove}
2505keyword. The names must be an exact match.
2506
2507You can enclose <pattern> into quotes ("<pattern>").
2508
2509This statement can be repeated.
2510
2511@node ExcludePassthroughCarbon, NetmailExtern, CarbonTo, Carbon Copy
2512@subsection ExcludePassthroughCarbon
2513@findex ExcludePassthroughCarbon
2514@table @asis
2515@item Syntax:
2516@code{excludePassthroughCarbon <bool>}
2517@item Example:
2518@code{excludePassthroughCarbon}
2519@end table
2520
2521Don't carbon from passthrough areas.
2522
2523This statement cannot be repeated.
2524
2525@node NetmailExtern,  , ExcludePassthroughCarbon, Carbon Copy
2526@subsection NetmailExtern
2527@findex NetmailExtern
2528@table @asis
2529@item Syntax:
2530@code{netmailExtern <program name>}
2531@item Example:
2532@code{netmailExtern douuedecode}
2533@end table
2534
2535This statement specifies external program to run for the previous
2536carbon@{Addr|To|From|Kludge|Subj|Text@} statement for netmail
2537messages...
2538
2539If this statement is ommitted and no @code{NetMailArea} defined for move or
2540copy, the carbon msgs gets copyed to the @code{BadArea}.
2541
2542If program name is prepended with '|' sign, hpt tries to pass data thru the
2543pipe, not temporary file.
2544
2545This statement can be repeated for each different
2546carbon@{Addr|To|From|Kludge|Subj|Text@} statement.
2547
2548
2549@node Advanced Concepts, Keyword Index, Configuration Reference, Top
2550@chapter Advanced Concepts in @value{HPT}
2551
2552This chapter describes how to use some features...
2553After you have managed to perform basic functions with @value{HPT}, like
2554defining paths & areas, this chapter will introduce you into some
2555advanced concepts in @value{HPT} that deserve special attention, like
2556how to use several netmail areas and similar.
2557
2558@menu
2559* Exit::            hpt exit codes
2560* Suffixes::        renaming suffixes for pkt files
2561* Netmail::         defining several netmail areas for several users
2562* ZoneGating::      how zonegating works for echomail
2563* Perl support::    Perl support in HPT
2564* Remote control::  how remote control using Areafix works
2565@end menu
2566
2567@node Exit, Suffixes, Advanced Concepts, Advanced Concepts
2568@section HPT Exit Codes
2569
2570@table @asis
2571@item 0 - successful termination
2572@item 64 - command line usage error
2573@item 66 - cannot open input (file)
2574@item 69 - service unavailable [config file not found]
2575@item 70 - internal software error [not enough memory, etc.]
2576@item 73 - can't create (user) output file [lockfile]
2577@item 74 - input/output error
2578@item 75 - temp failure; user is invited to retry [lockfile used by second copy of hpt]
2579@item 78 - configuration error
2580@end table
2581
2582@node Suffixes, Netmail, Exit, Advanced Concepts
2583@section Renaming Suffixes For Pkt Files
2584
2585@table @asis
2586@item .tos - hpt crashes on this pkt, report to developers!
2587@item .sec - a) pktpwd problem or link not found; b) bundles in unsecure inbound
2588@item .acs - could not open pkt
2589@item .bad - a) not/wrong pkt; b) bundle unpacking problems
2590@item .ntu - not to us
2591@item .err - msg tossing problem (couldn't open badArea/couldn't write msg)
2592@item .flt - perl filter (process_pkt()) returns bad retcode
2593@end table
2594
2595@node Netmail, ZoneGating, Suffixes, Advanced Concepts
2596@section Defining Several Netmail Areas For Several Users
2597
2598If you want receive netmail for one address in first netmail area, and
2599for second address in second netmail area respectively, you must add
2600@code{-a <ourAka>} to netmail area, like this:
2601
2602@table @asis
2603@item Address 2:5000/117
2604@item Address 2:90/190
2605@item NetmailArea NetMail /home/ml/fido/msgb/netmail -b squish -a 2:5000/117
2606@item NetmailArea OtherNetMail /home/ml/fido/msgb/othernetmail -b squish -a 2:90/190
2607@end table
2608
2609@node ZoneGating, Perl support, Netmail, Advanced Concepts
2610@section How Zone Gating works for echomail and what seen-bys is stripped
2611
2612We have EchoArea with links from zone1 & zone2. Echo->useAka with
2613zone2. Defined by "-a <addr>" or the by the first Echo->address from
2614config if not defined in EchoArea line.
2615
2616Program algorythm:
2617
2618@table @asis
2619@item 1.
2620check pkt zone address
2621@item 2.
2622split links in to groups: with (pktaddr.zone == linkaddr.zone) and
2623(pktaddr.zone != linkaddr.zone)
2624@item 3.
2625send msg to first group of links (their aka adding to seen-bys and
2626echo->useAka too if not in seen-bys yet)
2627@item 4.
2628if (pktaddr.zone != echo->useAka.zone) seen-bys cleaned.
2629@item 5.
2630send msg to second group of links (their aka adding to seen-bys and
2631echo->useAka too if not in seen-bys yet)
2632@item 6.
2633store msg in msgbase
2634@end table
2635
2636Examples:
2637
2638a) msg comes from z1. for z1 links we sending seen-bys with z2
2639   nodes. but z1 links must clean seen-bys by themselves (this is z2
2640   echo) or download this echo from z1 link. after that seen-bys cleaned
2641   and msg forwarded to z2 links. in the msgbase seen-bys from z2 links
2642   only.
2643
2644b) msg comes from z2. forward it to z2 links. then forward to z1
2645   links. seen-bys not cleaned: this is z2 echo and z1 links must clean
2646   it by themselves or receive echo from z1 link. store in msgbase with
2647   all seen-bys from z1 & z2 nodes.
2648
2649c) scan works the same: first sending to z2 links, adding to seen-by's
2650   z1 links and export to them.
2651
2652@node Perl support, Remote control, ZoneGating, Advanced Concepts
2653@section Perl support in HPT
2654HPT may be compiled with support for calling Perl subs in some parts of its
2655work. In this case it also provides API for such subs (Perl hooks).
2656Perl subs are located in file filter.pl, which usually located
2657in same directory as HPT's executable file but it's name and location
2658may changed via @code{HptPerlFile} configuration option.
2659The following Perl hooks are supported:
2660@table @asis
2661@item 1.
2662 after_unpack - called after unpacking an echomail bundle to @code{TempInbound}
2663@item 2.
2664 before_pack - called before packing echomail bundle to one of links
2665@item 3.
2666 process_pkt - called before processing pkt, the following variables available:
2667@table @asis
2668@item $pktname - name of pkt,
2669@item $secure - defined if this pkt from secure link
2670@end table
2671 hook must return "" for normal pkt processing or other string to rename pkt to .flt
2672@item 4.
2673 pkt_done - called after pkt processing, the following variables available:
2674@table @asis
2675@item $pktname - name of pkt,
2676@item $rc - exit code(0-ok),
2677@item $res - reason(exit code in text form):
2678@table @asis
2679@item 0 - OK ($res undefined),
2680@item 1 - Security violation,
2681@item 2 - Can't open pkt,
2682@item 3 - Bad pkt format,
2683@item 4 - Not to us,
2684@item 5 - Msg tossing problem
2685@end table
2686@end table
2687@item 5.
2688  hpt_exit - called before hpt completely exit if any other Perl hook was called
2689  during this session.
2690@item 6.
2691  route - called just before routing netmail message, the following variables
2692  availble:
2693@table @asis
2694@item $addr - message destination address,
2695@item $from - message originating address,
2696@item $toname - destination user name,
2697@item $fromname - originating user name,
2698@item $subject - message subject line,
2699@item $date - message date and time,
2700@item $text - message text,
2701@item $attr - message attributes,
2702@item $route - default route for this message (derermined
2703  via @code{Route} statements in config file (may be empty, this means
2704  that either no route at all for this message or it will be routed via
2705  one-to-multi routing(Route normal noroute 2:5004/73.*)).
2706@end table
2707
2708  Before return you can set $flavour - to hold|normal|crash|direct|immediate
2709  for required flavour of message.
2710  return "" for default routing or address via which this message should be sent.
2711  example:
2712
2713@example
2714  sub route @{
2715    if ($from eq "2:5004/75.73") return "2:5004/75.0";
2716    else return "";
2717  @}
2718@end example
2719
2720  if source address of message is 2:5004/75.73 then route it via 2:5004/75,
2721  otherwise route it using default routing
2722@item 7.
2723 scan - called while scanning messages (hpt scan or hpt pack). The following
2724 variables available:
2725@table @asis
2726@item $fromname - originating user name,
2727@item $fromaddr - message originating address,
2728@item $toname - destination user name,
2729@item $toaddr - message destination address (for netmail),
2730@item $area - message area (for echomail),
2731@item $subject - message subject line,
2732@item $date - message date and time,
2733@item $text - message text,
2734@item $attr - message attributes.
2735@end table
2736  Set $change to update $text, $subject, $fromaddr, $toaddr, $fromname,
2737$toname, $attr.
2738  If returns non-empty string (reason), the message will not pack to downlinks.
2739@item 8.
2740 filter - called for processing every message while tossing.
2741The following variables available:
2742@table @asis
2743@item $fromname - originating user name,
2744@item $fromaddr - message originating address,
2745@item $toname - destination user name,
2746@item $toaddr - message destination address (for netmail),
2747@item $area - message area (for echomail),
2748@item $subject - message subject line,
2749@item $date - message date and time,
2750@item $text - message text,
2751@item $attr - message attributes,
2752@item $pktfrom - address of originating pkt,
2753@item $secure - defined if the message received from secure link.
2754@end table
2755  Set $change to update $text, $subject, $fromaddr, $toaddr, $fromname,
2756$toname, $attr.
2757  Set $kill for kill message.
2758  If returns non-empty string (reason), the message will be moved to badarea.
2759@item 9.
2760 tossbad - called when message will be put in badArea.
2761The following variables available:
2762@table @asis
2763@item $fromname - originating user name,
2764@item $fromaddr - message originating address,
2765@item $toname - destination user name,
2766@item $toaddr - message destination address (for netmail),
2767@item $area - message area (for echomail),
2768@item $subject - message subject line,
2769@item $date - message date and time,
2770@item $text - message text,
2771@item $attr - message attributes,
2772@item $pktfrom - address of originating pkt,
2773@item $reason - reason, why badarea (text string).
2774@end table
2775  Set $change to update $text, $subject, $fromaddr, $toaddr, $fromname,
2776$toname, $attr.
2777  If returns non-empty string (reason) for kill the message.
2778
2779@end table
2780
2781@node Remote control,  , Perl support, Advanced Concepts
2782@section How remote control using Areafix works
2783
2784You can remotely control and change other links' subscription and options
2785using Areafix. Remote control will not give you full access on your system,
2786but will help you (or your cosysop) with some most common tasks.
2787
2788Some terms first.
2789
2790Controlling link is a link that exercise remote control. He should be defined
2791in config and should have allowRemoteControl token set to "on".
2792
2793Controlled link is a link whose subscription and options are controlled. He should
2794be defined in config too.
2795
2796Controlling link is allowed to send "%from <addr>" command to Areafix, where
2797<addr> is an address of controlled link. All the next commands till the end of
2798message or till the next "%from" command will be executed as if the message came
2799from controlled link. All the reports will be sent to controlling link. There can
2800be as much "%from" commands in message as you like. If there was an error while
2801processing "%from" command (for example, address was not specified in "%from"
2802command), message processing will be stopped and controlling link will receive
2803notification message.
2804
2805Example of Areafix message:
2806
2807@example
2808%from 2:450/210.1       <-- all next actions will be made with 2:450/210.1
2809+ru.husky               <-- subscribe to ru.husky
2810%areafixpwd testpwd     <-- change areafix password to 'testpwd'
2811%from 2:450/210.5       <-- all next actions will be made with 2:450/210.5
2812-bel.sysop              <-- unsubscribe from bel.sysop
2813%linked                 <-- send list of linked areas
2814@end example
2815
2816As this function allows remote control of other links' subscription and options
2817without knowing their areafix passwords, you should enable allowRemoteControl
2818token only for yourself or your cosysop.
2819
2820@node Keyword Index,  , Advanced Concepts, Top
2821
2822@value{HPT} is based on FIDOCONFIG library, so read documentation of
2823FIDOCONFIG about location of config file, keywords ideology and about
2824majority of the keywords,
2825@xref{Top, Fidoconfig Manual, , fidoconfig, Fidoconfig manual}.
2826
2827@appendix Configuration File Keyword Index
2828@printindex fn
2829
2830@bye
2831