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