1\input texinfo @c -*-texinfo-*- 2@c %**start of header 3@setfilename fidoconfig.info 4@set HPT HPT 5@settitle FidoConfig Manual 6@setchapternewpage odd 7@c %**end of header 8 9@copying 10This file documents fidoconfig. 11 12Copyright 1998-2018 Husky Development Team 13 14@end copying 15 16@titlepage 17@title FidoConfig Manual 18@subtitle a way to make your unix fido-capable 19@author Matthias Tichy 20@author Max Levenkov 21 22@page 23@vskip 0pt plus 1filll 24Copyright @copyright{} 1998-2018 Husky Development Team 25 26@end titlepage 27 28@contents 29 30@c @ifinfo 31 32@dircategory Fidonet Software 33@direntry 34* Fidoconfig: (fidoconfig). The format of the husky common config file. 35@end direntry 36 37@node Top, design goals, (dir), (dir) 38@top fidoconfig 39 40This document describes the use of fidoconfig to make fido work on your 41favorite platform. 42 43This document applies to version 1.9 of fidoconfig. 44@c @end ifinfo 45 46@menu 47* design goals:: what we want to achieve 48* config file:: how does it look like 49* keywords:: Common keywords reference 50* converting:: Converting fidoconfig 51* tparser:: testing your config 52* contact:: contacting the author 53@end menu 54 55@node design goals, config file, Top, Top 56@chapter Design goals 57The design goal of fidoconfig was to provide one config-file for several 58different fido software packages like editor, tosser etc. 59An additional aim was to have one library (fidoconfig) which can be used by 60all programs. 61The advantage is you only have to edit one config-file, so changing your 62system is much easier than with common software packages. Also bugs can only 63creep in one library and not in thousands over thousands libraries. 64The config definition can be used in all operating systems. Also the library 65should be quite portable. 66 67@node config file, keywords, design goals, Top 68@chapter Config file 69 70@include proposal.texi 71 72@node keywords, converting, config file, Top 73@chapter Common Keywords Reference 74 75@menu 76* general keywords:: General keywords 77* path log keywords:: Path- and log-related keywords 78* packer keywords:: Packers and unpakers definition 79* link keywords:: Link definition keywords (link section) 80* area management keywords:: Keywords for area definition, area groups, and access 81* autocreate keywords:: Keywords related to area autocreation (except those belonging to robot and link sections) 82* robot keywords:: Robot definition keywords (robot section) 83@end menu 84 85@node general keywords, path log keywords, keywords, keywords 86@section Common Keywords 87 88@menu 89* version:: version of fidoconfig 90* name:: your system name 91* location:: your location 92* sysop:: your name 93* include:: include other files 94* address:: your system address 95* commentChar:: Comment character 96* seqdir:: path for msgid sequence stamp 97* seqoutrun:: max msgid seq outrun from current time 98@end menu 99 100@node version, name, general keywords, general keywords 101@subsection version 102@table @asis 103@item Syntax: 104@code{version <integer>.<integer>} 105@item Example: 106@code{version 1.9} 107@end table 108 109Here you specify which version of fidoconfig your config belongs to. 110Currently this statement does nothing. 111 112This statement cannot be repeated. 113 114@node name, location, version, general keywords 115@subsection name 116@table @asis 117@item Syntax: 118@code{name <string>} 119@item Example: 120@code{name Leetebrok BBS} 121@end table 122 123Here you specify your system's name. 124 125This statement cannot be repeated. 126 127@node location, sysop, name, general keywords 128@subsection location 129@table @asis 130@item Syntax: 131@code{location <string>} 132@item Example: 133@code{location Dusseldorf} 134@end table 135 136You specify your location here. 137 138This statement cannot be repeated. 139 140@node sysop, include, location, general keywords 141@subsection sysop 142@table @asis 143@item Syntax: 144@code{sysop <string>} 145@item Example: 146@code{sysop Matthias Tichy} 147@end table 148 149You specify your name with this keyword. 150 151This statement cannot be repeated. 152 153@node include, address, sysop, general keywords 154@subsection include 155@table @asis 156@item Syntax: 157@code{include <file>} 158@item Example: 159@code{include /etc/fido/areas} 160@end table 161 162You can include other files into your config file. For example if you would like to 163have different config parts, you can include a file and (via cron job or manually) 164change the content of this file without changing the rest of the config. 165Additionally you can split your config in different parts. So you can 166have your fileareas definition in another file than your msgareas definition. 167This gives you the ability to have some survey about your config. 168 169This statement can be repeated. But don't make recursive includes, e.g. 170include a file which includes another which includes the first. Although 171this will be detected and fixed many times, there is a chance that it 172will not be detected one time. 173 174@node address, commentChar, include, general keywords 175@subsection address 176@table @asis 177@item Syntax: 178@code{Address <addr>} 179@item Example: 180@code{Address 2:2433/1245} 181@end table 182 183This command specifies which akas your system has. This statement is 184full 5d compatible, which means you can have also addresses like 185@code{2:2433/1245.1@@fidonet.org}. The first address statement is your 186main aka which will be used by tosser on different occasions, for 187example if zone number could not be taken from the @@INTL Kludge in 188netmails. 189 190This statement can be repeated. 191@strong{The domain name is not full supported throughout fidoconfig} 192 193@node commentChar, seqdir, address, general keywords 194@subsection commentChar 195@table @asis 196@item Syntax: 197@code{commentChar <char>} 198@item Example: 199@code{commentChar ;} 200@end table 201 202This command specifies which symbol is used to mark rest of line as comment. 203Default is '#' 204 205This statement can be repeated. 206 207@node seqdir, seqoutrun, commentChar, general keywords 208@subsection seqdir 209@table @asis 210@item Syntax: 211@code{seqDir <path>} 212@item Example: 213@code{seqDir /var/spool/fido/seq} 214@end table 215 216Sets path for current msgid sequence stamp directory. This directory 217should be used for msgid sequence stamp only to preventing surprises. 218@xref{seqoutrun}. 219 220By default environment variable SEQDIR is used. 221 222This statement cannot be repeated. 223 224@node seqoutrun, , seqdir, general keywords 225@subsection seqoutrun 226@table @asis 227@item Syntax: 228@code{seqOutrun <string>} 229@item Example: 230@code{seqOutrun 1m} 231@end table 232 233Sets maximum outrun for msgid sequence from current time. @xref{seqdir}. 234 235Use decimal number with optional suffix. 236 237Suffixes are: 238 239@table @asis 240@item y - year (365 days) 241@item m - month (31 days) 242@item w - week (7 days) 243@item d - day 244@item h - hour 245@end table 246 247Set seconds without suffix. 248 249By default environment variable SEQOUT is used, or 3y if it isn't set. 250 251This statement cannot be repeated. 252 253@node path log keywords, packer keywords, general keywords, keywords 254@section Path- and log-related keywords 255 256@menu 257* Outbound:: outbound path 258* FileBoxesDir:: directory where fileBoxes of links are created 259* Inbound:: inbound path 260* LocalInbound:: local inbound 261* ProtInbound:: protected inbound 262* LockFile:: file which lock programs session 263* AdvisoryLock:: set lock file "advisory" 264* tempDir:: path for temporary files (possible memory disk) 265* logfiledir:: path for log files 266* syslogfacility:: facility to use for syslogging 267* loglevels:: sets level of log output 268* ScreenLogLevels:: sets level of log output to screen 269* LogDateFormat:: set date format used in logs 270* LogEchoToScreen:: set output to screen log information 271* seqdir:: path for msgid sequence stamp 272@end menu 273 274@node Outbound, FileBoxesDir, path log keywords, path log keywords 275@subsection outbound 276@table @asis 277@item Syntax: 278@code{outbound <path>} 279@item Example: 280@code{outbound /var/spool/fido/out} 281@end table 282 283This command specifies your outbound path. This outbound path is 284binkley-style. A binkley style outbound consists of a base path and 285subdirectories. Each subdirectory represents a place for all the files 286for one zone. The base path is the zone path for your base zone. 287 288Example: 289 290@example 291@table @asis 292@item /var/spool/fido/out 293This directory contains the files for your base zone. 294@item /var/spool/fido/out.003 295This directory contains the files for zone 3. 296@item /var/spool/fido/out.00A 297This directory contains the files for zone 10. 298@end table 299@end example 300 301The zone directory contains the flow-files for each node. A Flow-file of a node 302has the name NNNNFFFF.?lo 303 304@example 305@table @asis 306@item NNNN 307The 4-digit hex-number of the node's netnumber. 308@item FFFF 309The 4-digit hex-number of the node's nodenumber. 310@item ? 311Here the flavour of the mails can be chosen. @strong{h}-hold, @strong{c}-crash, 312@strong{f}-normal, @strong{d}-direct, @strong{i}-immediate. 313@end table 314@end example 315 316For points there is a subdirectory with nodes flowfilename with suffix.pnt. In 317this subdirectory the flowfiles have the names PPPPPPPP ( 8-digit point number 318in hex). 319 320For a deeper background on a binkley-style outbound see the binkley-term 321documentation and source code. 322 323This statement cannot be repeated. 324 325@node FileBoxesDir, Inbound, Outbound, path log keywords 326@subsection FileBoxesDir 327@findex FileBoxesDir 328@table @asis 329@item Syntax: 330@code{FileBoxesDir <directory>} 331@item Example: 332@code{FileBoxesDir ../boxes} 333@end table 334 335This statement specifies directory where link file boxes are placed (and 336created if necessary). For prevention of collisions: @code{FileBoxesDir} 337and @code{outbound} should be pointed into different directory paths and 338even not be subdirectory of another. 339 340@table @asis 341@item Currently it is implemented support for the file box names in the following 342form: 343@code{z.n.f.p[.h]}, 344@item where: 345@item z: 346zone number; 347@item n: 348net number; 349@item f: 350node number; 351@item p: 352point number (point number is mandatory and should be zero for node); 353@item .h: 354optional suffix ".h" are specify the "hold" flavour. 355@item In the example: 356@code{FileBoxesDir /fido/fileboxes} 357@item For the link with address @code{2:5021.19} will possibled two fileboxes: 358@code{/fido/fileboxes/2.5021.19.0} and @code{/fido/fileboxes/2.5021.19.0.h} 359@end table 360 361This statement cannot be repeated. 362 363 364@node Inbound, LocalInbound, FileBoxesDir, path log keywords 365@subsection inbound 366@table @asis 367@item Syntax: 368@code{inbound <path>} 369@item Example: 370@code{inbound /var/spool/fido/in} 371@end table 372 373This command specifies where your inbound files are stored. This directory 374is the base directory which means if you have a connection which is not 375protected and the other system is not listed the files go in here. 376Only netmails are tossed from this inbound. 377 378This statement cannot be repeated. 379 380@node LocalInbound, ProtInbound, Inbound, path log keywords 381@subsection LocalInbound 382@findex LocalInbound 383@table @asis 384@item Syntax: 385@code{localinbound <path>} 386@item Example: 387@code{localinbound /var/spool/fido/in.loc} 388@end table 389 390This command specifies the path, from which all types of netmail and echomail 391are tossed @strong{without} any password checking. You can put pkt's here 392which were created by a file tosser etc. So created by a you or a programm on 393your own system. 394 395This statement cannot be repeated. 396 397@node ProtInbound, LockFile, LocalInbound, path log keywords 398@subsection ProtInbound 399@findex ProtInbound 400@table @asis 401@item Syntax: 402@code{protinbound <path>} 403@item Example: 404@code{protinbound /var/spool/fido/in.sec} 405@end table 406 407This command specifies where files should be stored which were received 408during a password-protected session. 409All types of mail are tossed from this path. But passwords are checked 410before. 411 412This statement cannot be repeated. 413 414@node LockFile, AdvisoryLock, ProtInbound, path log keywords 415@subsection LockFile 416@findex LockFile 417@table @asis 418@item Syntax: 419@code{lockfile <file>} 420@item Example: 421@code{lockfile /var/lock/hpt.lock} 422@end table 423 424Another session of @value{HPT} will be terminated if the @code{LockFile} 425is exists (default setting). 426 427This statement cannot be repeated. 428 429@xref{AdvisoryLock}. 430 431@node AdvisoryLock, tempDir, LockFile, path log keywords 432@subsection AdvisoryLock 433@findex AdvisoryLock 434@table @asis 435@item Syntax: 436@code{AdvisoryLock <integer>} 437@item Example: 438@code{AdvisoryLock 10} 439@end table 440 441If value @code{AdvisoryLock} > 0, then @value{HPT} checks if 442@code{LockFile} is locked by another session of @value{HPT} or not. 443Program will not be terminated if the original process which created 444@code{LockFile} is running. Second instance of hpt will check @code{LockFile} 445for locking number of times defined by @code{AdvisoryLock} with period 446of 1 second. And if the file exists, but not locked 447(stale), @value{HPT} will be running... 448If @code{AdvisoryLock} = 0, advisorylock is off. 449 450This statement cannot be repeated. 451 452@strong{Don't use this under BeOS! (there is no locking mechanism).} 453 454@xref{LockFile}. 455 456 457@node tempDir, logfiledir, AdvisoryLock, path log keywords 458@subsection tempDir 459@table @asis 460@item Syntax: 461@code{tempDir <path>} 462@item Example: 463@code{tempDir /var/tmp} 464@end table 465 466This command specifies the path where the temporary files of the fido-programs 467should be stored. This directory can be erased while booting. Good idea is to 468set it to a memory disk. 469 470Default value is path specified by TEMP, TMP or TMPDIR enviroment variables (use 471TEMP first, if it not defined then use TMP, next use TMPDIR). 472If these enviroment variables are not defined: 473- win32 versions use %WINDIR%\TEMP (usually c:\windows\temp for Win9x/Me and 474 c:\winnt\temp for Windows NT/2000/XP) 475- versions for unix-like OS'es use /tmp 476- other versions use c:\ 477 478This statement cannot be repeated. 479 480 481@node logfiledir, syslogfacility, tempDir, path log keywords 482@subsection logfiledir 483@table @asis 484@item Syntax: 485@code{logFileDir <path>} 486@item Example: 487@code{logFileDir /var/spool/log/fido} 488@end table 489 490This command specifies the path where the log-files of the fido-programs should 491be stored. 492 493This statement cannot be repeated. 494 495Some programs use logFileDir for persistent temporary/work files. 496 497@node syslogfacility, loglevels, logfiledir, path log keywords 498@subsection syslogfacility 499@table @asis 500@item Syntax: 501@code{syslogFacility <facility>} 502@item Example: 503@code{syslogFacility local0} 504@end table 505 506Some Husky programs are able to write logs via syslogd instead of via log 507file. For those programs, this keyword defines which facility to use for 508writing to the syslog. Syslogd will use this facility name to decide which 509syslog logfile the log messages will go to. Common names that can be used 510include @code{mail}, @code{news}, @code{uucp}, @code{local0}. The exact 511values that can be used depend upon your operating system. Refer to the man 512page for @file{syslog.conf} or @file{/usr/include/sys/syslog.h} for more 513information. 514 515Logging via syslogd is only supported on UNIX platforms, and currently only 516used by @file{herp}, but not by any other Husky program. If a Husky program 517logs via log file or via syslog or both depends on the program and not on 518your fidoconfig file. Consult the individual program's documentation. 519 520@node loglevels, ScreenLogLevels, syslogfacility, path log keywords 521@subsection LogLevels 522@findex LogLevels 523@table @asis 524@item Syntax: 525@code{loglevels <string>} 526@item Example: 527@code{loglevels 1345789,A-F Q} 528@end table 529 530This statement defines log levels list for writing messages into log file. 531Hiphen is a range char (A-F expands to ABCDEF). 532Only alpha & numeric log level characters are recognized, others are ignored. 533 534In example we output to log messages with levels 3,4,5,7,8,9,A,B,C,D,E,F,Q. 535 536The log levels are following: 537 538@table @asis 539@item 1 - Program start, end; 540@item 2 - dupecheck 541@item 3 - linking messages 542@item 4 - scanning messages 543@item 5 - posting messages 544@item 6 - execute strings 545@item 7 - bundles, pkts, links, freqs, file routing, file attachs, msg packing 546@item 8 - areafix, relink, autocreate 547@item 9 - error messages (critical, usually exit on error) 548@item 0 - creation of file-flags 549@item A - trivial error messages (print message and continue execution) 550@item B - warnings & alerts 551@item C - informational messages 552@item D - statistics 553@item E - summary 554@item F - print program name & version 555@item G - message send/sent 556@item H - recoding operations & recoding tables read/write 557@item I - Generate or check MSGID 558@item J - Echomail phase 559@item K - Filebox phase 560@item L - Netmail phase 561@item M - File create 562@item N - File delete 563@item O - operations with opened file (read, write, seek, ...) 564@item P - Directory operations (create, delete, rename, ...) 565@item Q - Email message parsing and construction 566@item R - Truncate file 567@item S - File send/sent 568@item T - Test files (exist, permittions, etc.) 569@item U - Functions calls (entering func & leaving it) 570@item V - reserved 571@item W - reserved 572@item X - Filenames construction 573@item Y - Link messagebase pass (some phase in hptlink & etc) 574@item Z - debug messages: source lines (functions control points). 575@item a-z - debug messages 576@end table 577 578Default value: 1234567890ABCDEF 579 580This statement cannot be repeated. 581 582@node ScreenLogLevels, LogDateFormat, loglevels, path log keywords 583@subsection ScreenLogLevels 584@findex ScreenLogLevels 585@table @asis 586@item Syntax: 587@code{Screenloglevels <string>} 588@item Example: 589@code{Screenloglevels 2345789,A-C} 590@end table 591 592Sets levels of log output to screen. See loglevels for details. 593 594This statement cannot be repeated. 595 596@node LogDateFormat, LogEchoToScreen, ScreenLogLevels, path log keywords 597@subsection LogDateFormat 598@findex LogDateFormat 599@table @asis 600@item Syntax: 601@code{logDateFormat <string>} 602@item Example: 603@code{logDateFormat "%H:%M:%S "} 604@end table 605 606Set date format for log messages. The parameter expected to be a valid 607strftime() format string. The following macros are expanded to current 608date/time value (incomplete list): 609 610@multitable {Col1} {Biiiig Column 2 PADPADPADPADPADPADPADPADPADPADPADPADPADPADPADPADPADPADPADPAD} 611@item %d 612@tab current day of month as a decimal number, zero-prefixed (01-31) 613@item %e 614@tab current day or month as a decimal number, space-perfixed ( 1-31) 615@item %H 616@tab current hour as a decimal number (00-23) 617@item %M 618@tab current minute as a decimal number (00-59) 619@item %m 620@tab current month as a decimal number (01-12) 621@item %S 622@tab current second as a decimal number (00-59) 623@item %Y 624@tab current year with century as a decimal number (for example, 2005) 625@item %y 626@tab current year without century as a decimal number (for example, 05) 627@item %A 628@tab national representation of the full weekday name (for example, Monday) 629@item %a 630@tab national representation of the abbreviated weekday name (for example, Mon) 631@item %B 632@tab national representation of the full month name (for example, April) 633@item %b 634@tab national representation of the abbreviated month name (for example, Apr) 635@end multitable 636 637Please refer to strftime() manual page to see the complete list of macros 638allowed. National representation of month or weekday name is determined by 639the current locale. 640 641This statement cannot be repeated. 642 643@node LogEchoToScreen, , LogDateFormat, path log keywords 644@subsection LogEchoToScreen 645@findex LogEchoToScreen 646@table @asis 647@item Syntax: 648@code{logEchoToScreen <bool>} 649@item Example: 650@code{logEchoToScreen} 651@end table 652 653Enable or disable log messages screen output. See also @ref{ScreenLogLevels}. 654 655This statement cannot be repeated. 656 657@node packer keywords, link keywords, path log keywords, keywords 658@section Packer definition keywords 659 660@menu 661* pack:: definition for packer 662* unpack:: definition for unpacker 663@end menu 664 665@node pack, unpack, packer keywords, packer keywords 666@subsection Pack 667@findex Pack 668@table @asis 669@item Syntax: 670@code{Pack zip|tgz|rar|arc|arj|..... <call>} 671@item Example: 672@code{Pack zip zip -9 -g -q $a $f} 673@end table 674 675This statement sets the command line call for the packer. 676The file will be moved into the archive, that means the file will be 677deleted from the harddisk. It only remains in the archive. 678 679$a will be replaced by the archive file. 680 681$f will be replaced by the file which should be packed into the archive. 682 683If some husky program is compiled with hptzip, you can use the following definition to use internal zip packer: 684@example 685 686@code{Pack zip zipInternal} 687@end example 688 689@quotation Warning 690You can't use shell input-output redirection chars under DOS or Win* 691platforms: hpt implementation uses workaround for command.com bug and 692doesn't run command.com to execute external commands such as 693packers/unpackers. hpt calls OS function to execute them instead of 694command.com. 695@end quotation 696 697@quotation Note 698On some OSes, if a program called can't be found (can't be run) result of pack 699command is undefined. (Example: DOS. Reason of this: command.com does not 700return error code if executable file was not found.) 701To prevent danger write full path name for packer program, please. 702@end quotation 703 704This statement can be repeated. 705 706@node unpack, , pack, packer keywords 707@subsection Unpack 708@findex Unpack 709@table @asis 710@item Syntax: 711@code{Unpack "<call>" <offset> <matchcode>} 712@item Example for DOS: 713@example 714Unpack "c:\arc\pkunpak /r $a $p $f" 0 1a 715Unpack "c:\arc\pak e /wn $a $p" -2 fe 716Unpack "c:\arc\lha e /m $a $p $f" 2 2d6c68 717Unpack "c:\arc\zoo e:O $a $p $f" 0 5a4f4f 718Unpack "c:\arc\jar e -y $a $p $f" 14 1a4a61721b 719# *.rar 720Unpack "c:\arc\unrar e -y -c- -o+ -inul $a $p $f" 0 52617221 721# rar-sfx/DOS 722Unpack "c:\arc\unrar e -y -c- -o+ -inul $a $p $f" 28 52534658 723@end example 724@item Example for Linux: 725@example 726Unpack "/usr/bin/zoo e:O $a $p $f" 0 5a4f4f 727Unpack "/usr/bin/arc eno $a $p'*.*' $f" 0 1a 728Unpack "/usr/bin/unzip -joLqq $a -d $p $f" 0 504b0304 729Unpack "cd $p && /usr/bin/unarj e $a $f>/dev/null" 0 60ea 730Unpack "/usr/bin/unrar e -y -c- -o+ -inul $a $p $f" 0 52617221 731Unpack "/usr/bin/unrar e -y -c- -o+ -inul $a $p $f" 28 52534658 732Unpack "/usr/bin/jar e -y $a $p $f" 14 1a4a61721b 733Unpack "cd $p && /usr/bin/ha eyq -e $a $f" 0 4841 734@end example 735@end table 736 737This statement sets the call of certain unpackers according to the id in the 738archive file 739 740@code{call} is the command line call for the packer (enclosed into quotes!); 741 742@code{offset} position of recognition string in packed file; 743 744@code{match code} hexdump of the recognition string for packed file, ?? can be used as any byte; 745 746@code{$a} will be replaced by the archive file to extract from; 747 748@code{$p} will be replaced by the path to unpacked files (usually tempoutbound); 749@quotation 750@strong{HPT-specific:} @code{$p} will be replaced by the temp inbound path. 751@end quotation 752 753@code{$f} will be replaced by the description file name if any (used by htick, see 'FileDescName' token; possibly other husky programs). 754 755@example 756 757e.g.: unpack "unzip -joLqq $a -d $p $f" 0 504b0304 758 759 files packed by zip can be recognized by 760 504b0304(hex) at offset 0(integer) 761 they can be unpacked by htick using command 762 "unzip -joLqq <filename> -d <path> <descrption_filename>" 763 764@end example 765 766if some husky program is compiled with hptzip, you can use the following definition: 767@example 768 769@code{Unpack zipInternal 0 504b0304} 770@end example 771 772@quotation Warning 773You can't use shell input-output redirection chars under DOS or Win* 774platforms: hpt implementation uses workaround for command.com bug and 775doesn't run command.com to execute external commands such as 776packers/unpackers. hpt calls OS function to execute them instead of 777command.com. 778@end quotation 779 780Also see hpt and htick documentation. 781 782This statement can be repeated. 783 784@quotation Note 785On some OSes, if a program called can't be found (can't be run) result of unpack 786command is undefined. (Example: MS DOS. Reason of this: command.com does not 787return error code if executable file was not found.) 788To prevent danger write full path name for unpacker program, please. 789@end quotation 790 791@node link keywords, area management keywords, packer keywords, keywords 792@section Link definition keywords (Link section) 793 794These keywords relate to Link section of config. Every link of your system should be defined 795via it's own link entry. Definition of link begins with keyword @code{Link}. 796Immediately after it you should put any settings for that link. Link section 797is considered as closed on first keyword which isn't allowed in link section. 798All the following keywords except @code{Link} and @code{LinkDefaults} which start section 799are allowed inside it. 800 801@quotation Note 802'*' mark in keywords here means that it should be either substituted with robot's name 803to which appropriate setting is applied or omitted to apply to all robots. 804@end quotation 805 806@menu 807* link:: adding a link to your config 808* linkdefaults:: start/end/destroy link's default definitions 809* aka:: link's address 810* ouraka:: our aka for link 811* password:: link's default password 812* pktpwd:: pktpassword for this link 813* ticpwd:: ticker password for this link 814* areafixpwd:: areafix password for this link 815* AreafixName:: remote "areafix" name 816* filefixpwd:: filefix password for this link 817* bbspwd:: bbs password for this link (online user) 818* sessionpwd:: session password for this link 819* handle:: nickname or handle for link 820* packer:: default packer for link 821* *AutoCreate:: right to auto create areas on your system 822* *AutoCreateFile:: file where autocreated areas by this links are going 823* *AutoCreateDefaults:: set defaults to autocreated areas 824* *AutoSubscribe:: automatically subscribe the link to autocreated areas 825* *ForwardRequests:: allow forward requests to this link 826* *FwdDenyFile:: file with area list for denyed requests 827* *FwdDenyMask:: mask list for denyed requests 828* *DenyFwdReqAccess:: deny access to forward requests 829* *DenyUncondFwdReqAccess:: deny access to unconditional forward requests 830* *FwdFile:: file for forwardRequest, AvialableAreas & descriptions 831* *FwdMask:: mask list for forwardRequests 832* *FwdPriority:: forward requests priority 833* *EchoLimit:: limit for subscribe via areafix 834* Pause:: don't export mail for this link 835* Export:: rules for echomail export 836* Import:: rules for echomail import 837* OptGrp:: groups for export/import/mandatory 838* AccessGrp:: groups for echomail access 839* LinkGrp:: add this group to autoCreateDefaults 840* Mandatory:: disable unsubscribing from all echoareas 841* Manual:: disable subscribing to all echoareas 842* Level:: definition of link access level 843@end menu 844 845@node link, linkdefaults, link keywords, link keywords 846@subsection link 847@table @asis 848@item Syntax: 849@code{link <string>} 850@item Example: 851@code{link Matthias Tichy} 852@end table 853 854This statement starts a new Link-definition. All the following link-related statements 855change the configuration of this link until a new link statement is found. 856A parameter is the name of this link. 857 858This statement can be repeated. 859 860@node linkdefaults, aka, link, link keywords 861@subsection linkdefaults 862@findex LinkDefaults 863@table @asis 864@item Syntax: 865@code{linkdefaults [begin | end | destroy]} 866@item Example: 867@code{linkdefaults} 868@end table 869 870This statement starts section of default definitions of links. 871All the following link-related statements change default configuration 872of link until a @code{'link'} or @code{'linkdefaults end'} or 873@code{'linkdefaults destroy'} statement is found. 874All parameters collected in linkdefaults sections are copied to link 875configuration every time when @code{'link'} statement is found in 876configuration file. Link-related statements after @code{'linkdefaults end'} or 877@code{'linkdefaults destroy'} or before first @code{'link'} or 878@code{'linkdefaults'} statement are treated as error. 879@code{'linkdefaults'} statement without @code{'begin'} or @code{'end'} means 880@code{'linkdefaults begin'} 881@code{'linkdefaults destroy'} destroys all default definitions. 882 883Be careful with @code{Pause}, @code{Export}, etc. ;-) 884 885This statement can be repeated. New definitions overwrite old ones. 886 887@node aka, ouraka, linkdefaults, link keywords 888@subsection aka 889@table @asis 890@item Syntax: 891@code{aka <addr>} 892@item Example: 893@code{aka 2:2433/1245} 894@end table 895 896This statement sets the aka for the current link. 897 898This statement can only be repeated for different links. 899 900@node ouraka, password, aka, link keywords 901@subsection ouraka 902@table @asis 903@item Syntax: 904@code{ouraka <addr>} 905@item Example: 906@code{ouraka 2:2433/1247} 907@end table 908 909This statement sets the aka which is used for this link. 910 911This statement can only be repeated for different links. 912 913@node password, pktpwd, ouraka, link keywords 914@subsection password 915@table @asis 916@item Syntax: 917@code{password [<string>]} 918@item Example: 919@code{password secret} 920@end table 921 922This statement sets the default password for the link. 923If you do not set the other passwords, this password will be used. 924Password may be case insensitive or case sensitive depending on the program. 925 926There is no limit for @code{Password} length except the @code{PktPwd}. 927 928This statement can only be repeated for different links. 929 930@node pktpwd, ticpwd, password, link keywords 931@subsection pktpwd 932@table @asis 933@item Syntax: 934@code{pktpwd [<string>]} 935@item Example: 936@code{pktpwd geheim} 937@end table 938 939This statement sets the pktpassword for the actual link. 940Only passwords with maximal 8 characters are valid because of limitations of 941other software packages. 942An empty statement is allowed. 943 944If you do not set the pktpwd, password from the common password statement 945will be used (@xref{password}.) 946 947This statement can only be repeated for different links. 948 949@node ticpwd, areafixpwd, pktpwd, link keywords 950@subsection ticpwd 951@table @asis 952@item Syntax: 953@code{ticpwd [<string>]} 954@item Example: 955@code{ticpwd geheim} 956@end table 957 958This statement sets the ticker password for the actual link. 959Only passwords with maximal 8 characters are valid because of limitations of 960other software packages. 961An empty statement is allowed. 962 963If you do not set the ticpwd, password from the common password statement 964will be used (@xref{password}.) 965 966This statement can only be repeated for different links. 967 968@node areafixpwd, AreafixName, ticpwd, link keywords 969@subsection areafixpwd 970@table @asis 971@item Syntax: 972@code{areafixpwd [<string>]} 973@item Example: 974@code{areafixpwd geheim} 975@end table 976 977This statement sets the areafix password for the actual link. 978An empty statement is allowed, but not recommended. 979 980If you do not set the areafixpwd, password from the common password statement 981will be used (@xref{password}.) 982 983This statement can only be repeated for different links. 984 985@node AreafixName, filefixpwd, areafixpwd, link keywords 986@subsection AreafixName 987@findex AreafixName 988@table @asis 989@item Syntax: 990@code{remoteRobotName <string>} 991@item Example: 992@code{remoteRobotName allfix} 993@end table 994 995Set remote system "areafix" to new name. This token used when requests 996to subscribing/unsubscribing of new areas forwarded to this link. 997 998This statement can only be repeated for different links. 999 1000@node filefixpwd, bbspwd, AreafixName, link keywords 1001@subsection filefixpwd 1002@table @asis 1003@item Syntax: 1004@code{filefixpwd [<string>]} 1005@item Example: 1006@code{filefixpwd geheim} 1007@end table 1008 1009This statement sets the filefix password for the actual link. 1010An empty statement is allowed, but not recommended. 1011 1012If you do not set the filefixpwd, password from the common password statement 1013will be used (@xref{password}.) 1014 1015This statement can only be repeated for different links. 1016 1017@node bbspwd, sessionpwd, filefixpwd, link keywords 1018@subsection bbspwd 1019@table @asis 1020@item Syntax: 1021@code{bbspwd [<string>]} 1022@item Example: 1023@code{bbspwd geheim} 1024@end table 1025 1026This statement sets the bbs password for the actual link. 1027An empty statement is allowed. 1028 1029If you do not set the bbspwd, password from the common password statement 1030will be used (@xref{password}.) 1031 1032This statement can only be repeated for different links. 1033 1034@node sessionpwd, handle, bbspwd, link keywords 1035@subsection sessionpwd 1036@table @asis 1037@item Syntax: 1038@code{sessionpwd [<string>]} 1039@item Example: 1040@code{sessionpwd geheim} 1041@end table 1042 1043This statement sets the session password for the actual link. 1044An empty statement is allowed. 1045 1046If you do not set the sessionpwd, password from the common password statement 1047will be used (@xref{password}.) 1048 1049This statement can only be repeated for different links. 1050 1051@node handle, packer, sessionpwd, link keywords 1052@subsection handle 1053@table @asis 1054@item Syntax: 1055@code{handle <name>} 1056@item Example: 1057@code{handle eddie} 1058@end table 1059 1060This statements gives a link a nickname. This statement is supposed for bbs 1061systems. 1062 1063This statement can only be repeated for different links. 1064 1065@node packer, *AutoCreate, handle, link keywords 1066@subsection packer 1067@table @asis 1068@item Syntax: 1069@code{packer <packer>} 1070@item Example: 1071@code{packer zip} 1072@end table 1073 1074This statement sets the packer for the link. You can use the packer 1075which you has set up using the @code{Pack} statement. If you omit this 1076statement or set @code{Packer none} no mail will be packed. The pkt's 1077will be stored in the outbound. 1078 1079If you use hptzip (Zlib) library, you can set <packer> - zip. 1080 1081This statement can only be repeated for different links. 1082 1083@node *AutoCreate, *AutoCreateFile, packer, link keywords 1084@subsection *AutoCreate 1085@findex *AutoCreate 1086@table @asis 1087@item Syntax: 1088@code{<robot name>autocreate <bool>} 1089@item Example: 1090@code{areafixAutoCreate on}@* 1091@code{filefixAutoCreate on} 1092@end table 1093 1094This statement gives a link the permission to create echoareas on your system just 1095by sending messages in them and fileareas by sending files in the areas. 1096 1097The echoareas are created using the @code{areafixAutoCreateDefaults} contents: 1098@example 1099 EchoArea <areaName> <msgBaseDir><areaName> -a <mypktaddr> -b Squish <areafixAutoCreateDefaults> <linkAddr> 1100@end example 1101 1102Default message base type is Squish. But you can set "-b Jam" or "-b 1103Msg" in @code{areafixAutoCreateDefaults}. 1104 1105Similar rules apply to creating fileareas. 1106 1107This statement can only be repeated for different links. 1108 1109@node *AutoCreateFile, *AutoCreateDefaults, *AutoCreate, link keywords 1110@subsection *AutoCreateFile 1111@findex *AutoCreateFile 1112@table @asis 1113@item Syntax: 1114@code{<robot name>autoCreateFile <file>} 1115@item Example: 1116@code{areafixAutoCreateFile /etc/fido/areas.matthias}@* 1117@code{filefixAutoCreateFile /etc/fido/fareas} 1118@end table 1119 1120This statement defines where autocreated areas by this link are going to. 1121If you omit this statement the default configuration file will be used. 1122The tosser must have the rights to create and change the file. 1123 1124@strong{You must include the specified file for yourself into fidoconfig, 1125so these autocreated areas will be founded in subsequent tosser-runs.} 1126 1127@strong{autoCreateFile and Include strings must be the *same*.} 1128 1129This statement can only be repeated for different links. 1130 1131@node *AutoCreateDefaults, *AutoSubscribe, *AutoCreateFile, link keywords 1132@subsection *AutoCreateDefaults 1133@findex *AutoCreateDefaults 1134@table @asis 1135@item Syntax: 1136@code{<robot name>autoCreateDefaults <string>} 1137@item Example: 1138@code{areafixAutoCreateDefaults -$m 200 -dupecheck move}@* 1139@code{filefixAutoCreateDefaults -p 90} 1140@end table 1141 1142Set default options for autocreated echo or file areas. Please do not put 1143any paths or @code{passthrough} keyword here, use @code{MsgBaseDir} or 1144@code{FileAreaBaseDir} for that globally or @code{LinkMsgBaseDir} and 1145@code{LinkFileBaseDir} for specific links. 1146 1147When an echo (or fileecho) is created, @code{EchoArea} (or @code{FileArea}) 1148keyword is written to the area declaration first, then areaname, then path 1149to the area file (area directory for fileecho) or @code{passthrough} keyword, 1150then the options from @code{AutoCreateDefaults} and after that the address 1151of the link creating the area. The options from @code{AutoCreateDefaults} 1152override the options from the current @ref{EchoAreaDefaults} or 1153@ref{fileAreaDefaults,,,htick}. 1154 1155This statement can only be repeated for different links. 1156 1157@node *AutoSubscribe, *ForwardRequests, *AutoCreateDefaults, link keywords 1158@subsection *AutoSubscribe 1159@findex *AutoSubscribe 1160@table @asis 1161@item Syntax: 1162@code{<robot name>AutoSubscribe <bool>} 1163@item Example: 1164@code{areafixAutoSubscribe on}@* 1165@code{filefixAutoSubscribe on} 1166@end table 1167 1168Automatically subscribe the link to all autocreated areas. On default it 1169is off for all links. The value of @code{AutoSubscribe} does not influence 1170already existing areas. If you want to subscribe a link to all existing 1171areas in a group, use @ref{EchoAreaDefaults} or @ref{fileAreaDefaults,,,htick}. 1172 1173This statement can only be repeated for different links. 1174 1175@node *ForwardRequests, *FwdDenyFile, *AutoSubscribe, link keywords 1176@subsection *ForwardRequests 1177@findex *ForwardRequests 1178@table @asis 1179@item Syntax: 1180@code{<robot name>forwardRequests <bool>} 1181@item Example: 1182@code{areafixforwardRequests on}@* 1183@code{filefixforwardRequests on} 1184@end table 1185 1186By default "forwardRequests" are off. "On" allows forward requests to this 1187link from other links. If neither @code{forwardRequestFile} nor 1188@code{forwardRequestMask} are defined, then requests will be forwarded unconditionally. 1189 1190@code{LinkGrp} can deny access to some links... 1191 1192This statement can only be repeated for different links. 1193 1194@xref{LinkGrp}. 1195 1196@node *FwdDenyFile, *FwdDenyMask, *ForwardRequests, link keywords 1197@subsection *FwdDenyFile 1198@findex *FwdDenyFile 1199@table @asis 1200@item Syntax: 1201@code{<robot name>FwdDenyFile <file>} 1202@item Example: 1203@code{areafixFwdDenyFile /etc/fido/denyfwdafix}@* 1204@code{filefixFwdDenyFile /etc/fido/denyfwdffix} 1205@end table 1206 1207Don't forward requests for areas from this file. 1208@strong{Pattern matching does not supporting!} 1209 1210This statement can only be repeated for different links. 1211 1212@node *FwdDenyMask, *DenyFwdReqAccess, *FwdDenyFile, link keywords 1213@subsection *FwdDenyMask 1214@findex *FwdDenyMask 1215@table @asis 1216@item Syntax: 1217@code{<robot name>FwdDenyMask <string>[,<string> ...]} 1218@item Example: 1219@code{areafixFwdDenyMask TYT.*, *FLAME*}@* 1220@code{filefixFwdDenyMask RAIL*} 1221@end table 1222 1223Don't forward the requests matching the masks. 1224 1225This statement can only be repeated for different links. 1226 1227@node *DenyFwdReqAccess, *DenyUncondFwdReqAccess, *FwdDenyMask, link keywords 1228@subsection *DenyFwdReqAccess 1229@findex *DenyFwdReqAccess 1230@table @asis 1231@item Syntax: 1232@code{<robot name>denyFwdReqAccess <bool>} 1233@item Example: 1234@code{areafixDenyFwdReqAccess}@* 1235@code{filefixDenyFwdReqAccess} 1236@end table 1237 1238Don't allow forward requests from this link (via @verb{|<robot name>|}) to your 1239links. 1240 1241This statement can only be repeated for different links. 1242 1243@node *DenyUncondFwdReqAccess, *FwdFile, *DenyFwdReqAccess, link keywords 1244@subsection *DenyUncondFwdReqAccess 1245@findex *DenyUncondFwdReqAccess 1246@table @asis 1247@item Syntax: 1248@code{<robot name>denyUncondFwdReqAccess <bool>} 1249@item Example: 1250@code{areafixDenyUncondFwdReqAccess}@* 1251@code{filefixDenyUncondFwdReqAccess} 1252@end table 1253 1254Don't allow unconditional forward requests from this link (via @verb{|<robot name>|}) 1255to your links. 1256 1257This statement can only be repeated for different links. 1258 1259@node *FwdFile, *FwdMask, *DenyUncondFwdReqAccess, link keywords 1260@subsection *FwdFile 1261@findex *FwdFile 1262@table @asis 1263@item Syntax: 1264@code{<robot name>FwdFile <file>} 1265@item Example: 1266@code{areafixFwdFile /etc/fido/echo777.lst}@* 1267@code{filefixFwdFile /etc/fido/fecho777.lst} 1268@end table 1269 1270The file contains a list of areas for which forward requests 1271to the link are possible. If the file contains area descriptions 1272they will be used when autocreating areas. If not defined then 1273forward requests will be unconditional. 1274 1275This statement can only be repeated for different links. 1276 1277@node *FwdMask, *FwdPriority, *FwdFile, link keywords 1278@subsection *FwdMask 1279@findex *FwdMask 1280@table @asis 1281@item Syntax: 1282@code{<robot name>FwdMask <string>[,<string> ...]} 1283@item Example: 1284@code{areafixFwdMask nsk.*}@* 1285@code{filefixFwdMask book*} 1286@end table 1287 1288If area nsk.* (nsk.test for example) will be requested by a downlink and 1289forward requests to the uplink are allowed, then it is created and request 1290goes to uplink. If the area doesn't match to any mask in the list, then the 1291next link is checked for a possibility of the forward request. 1292 1293This statement can only be repeated for different links. 1294 1295@node *FwdPriority, *EchoLimit, *FwdMask, link keywords 1296@subsection *FwdPriority 1297@findex *FwdPriority 1298@table @asis 1299@item Syntax: 1300@code{<robot name>FwdPriority <integer>} 1301@item Example: 1302@code{areafixFwdPriority 1}@* 1303@code{filefixFwdPriority 5} 1304@end table 1305 1306By default the robot (areafix or filefix) checks every link sequentially in the order 1307the links are defined in config whether the request can be forwarded to the link. 1308But you can set a priority for some links... "1" is the 1309first link to forward requests, "2" is the second, etc. 1310 1311This statement can only be repeated for different links. 1312 1313@node *EchoLimit, Pause, *FwdPriority, link keywords 1314@subsection *EchoLimit 1315@findex *EchoLimit 1316@table @asis 1317@item Syntax: 1318@code{EchoLimit <integer>} 1319@item Example: 1320@code{EchoLimit 50} 1321@end table 1322 1323This is maximum areas which can be subscribed via * robot for this link. 1324 1325This statement can only be repeated for different links. 1326 1327@node Pause, Export, *EchoLimit, link keywords 1328@subsection Pause 1329@findex Pause 1330@table @asis 1331@item Syntax: 1332@code{pause ([on]|off|earea|farea)} 1333@item Examples: 1334@code{pause} 1335@code{pause earea} 1336@code{pause} 1337@end table 1338 1339Stop export echomail, fileechoes or both for this link. 1340 1341This statement can only be repeated for different links. 1342 1343See also @ref{AutoPause,,,hpt,hpt} section. 1344 1345@node Export, Import, Pause, link keywords 1346@subsection Export 1347@findex Export 1348@table @asis 1349@item Syntax: 1350@code{export <bool>} 1351@item Example: 1352@code{export off} 1353@end table 1354 1355By default "Export on". 1356 1357If "Export" is "off", mail is not tossed to link. You can restrict effect 1358of this setting to particular groups. @ref{OptGrp} 1359 1360This statement can only be repeated for different links. 1361 1362@node Import, OptGrp, Export, link keywords 1363@subsection Import 1364@findex Import 1365@table @asis 1366@item Syntax: 1367@code{import <bool>} 1368@item Example: 1369@code{import off} 1370@end table 1371 1372By default "import on". 1373 1374Same as @code{Export}, but this is for mail @strong{from} link. 1375 1376This statement can only be repeated for different links. 1377 1378@node OptGrp, AccessGrp, Import, link keywords 1379@subsection OptGrp 1380@findex OptGrp 1381@table @asis 1382@item Syntax: 1383@code{optgrp <string>[,<string> ...]} 1384@item Example: 1385@code{optgrp A,X,Fido} 1386@end table 1387 1388This setting restricts effect of @code{Export}, @code{Import} & @code{Mandatory} options 1389to the given groups. If @code{OptGrp} is not defined - the restrictions 1390will be applied to @strong{all} areas. If @code{OptGrp} is defined 1391then link will have default import/export access to all groups other than 1392explicitly given in this statement. 1393 1394This statement can only be repeated for different links. 1395 1396@node AccessGrp, LinkGrp, OptGrp, link keywords 1397@subsection AccessGrp 1398@findex AccessGrp 1399@table @asis 1400@item Syntax: 1401@code{accessgrp <string>[,<string>...]} 1402@item Example: 1403@code{accessgrp A,B,C,Local} 1404@end table 1405 1406This statement connects a link to several echomail groups. See also 1407@code{PublicGroup} and @code{-g <group>} in echoarea options. 1408 1409This statement can only be repeated for different links. 1410 1411@node LinkGrp, Mandatory, AccessGrp, link keywords 1412@subsection LinkGrp 1413@findex LinkGrp 1414@table @asis 1415@item Syntax: 1416@code{linkgrp <string>} 1417@item Example: 1418@code{linkgrp Fido} 1419@end table 1420 1421Specifies a group to use for areas auto-created from this link. Also link 1422can delete echo areas in his @code{LinkGrp} group. 1423 1424In this example: 1425 14261) string @code{Fido} will be added to a new area record unless 1427@code{areaixAutoCreateDefaults} defines an implicit group; 1428 14292) links that have no access to the @code{Fido} group can't forward requests 1430to uplink with @code{LinkGrp Fido}; 1431 14323) this link can delete echo areas with @code{-g Fido} group. 1433 1434This statement can only be repeated for different links. 1435 1436@node Mandatory, Manual, LinkGrp, link keywords 1437@subsection Mandatory 1438@findex Mandatory 1439@table @asis 1440@item Syntax: 1441@code{mandatory <bool>} 1442@item Example: 1443@code{mandatory on} 1444@end table 1445 1446By default "mandatory off". 1447 1448This statement disallows the link to unsubscribe areas via areafix. 1449 1450This statement can only be repeated for different links. 1451 1452@node Manual, Level, Mandatory, link keywords 1453@subsection Manual 1454@findex Manual 1455@table @asis 1456@item Syntax: 1457@code{manual <bool>} 1458@item Example: 1459@code{manual on} 1460@end table 1461 1462By default "manual off". 1463 1464This statement disallows the link to subscribe areas via areafix. 1465 1466This statement can only be repeated for different links. 1467 1468@node Level, , Manual, link keywords 1469@subsection Level 1470@findex Level 1471@table @asis 1472@item Syntax: 1473@code{level <non-negative integer>} 1474@item Example: 1475@code{level 200} 1476@end table 1477 1478An access level of a link to areas. By default it is "level 0". 1479Used to control the link's read/write access to areas. The value has no meaning 1480by itself but only in relation to echo or file echo options -lr and -lw. 1481@xref{EchoArea}. If, for example, you set @code{Level 35} for a link then 1482the link will have read access to all areas with @code{-lr} equal or less than @code{35} 1483and write access to all areas with @code{-lw} equal or less than @code{35}. 1484 1485This statement can only be repeated for different links. 1486 1487 1488@c <!------------------------------------------------------------------------------------------------------> 1489 1490@node area management keywords, autocreate keywords, link keywords, keywords 1491@section Area management keywords 1492 1493@menu 1494* EchoArea:: definition of echoarea 1495* EchoAreaDefaults:: defaults for echoarea 1496* BadArea:: definition of badarea 1497* DupeArea:: definition of dupearea 1498* NetMailArea:: definition of netmailarea 1499* NetArea:: same as netmailarea 1500* RobotsArea:: definition of robotsarea 1501* LocalArea:: definition of the BBS message area 1502* FileArea:: definition of filearea 1503* BbsArea:: definition of the BBS file area 1504* AreaGroup:: definition of areagroup 1505* AreaGroupDefaults:: default options for areas in group 1506* GrpDesc:: area group description 1507* PublicGroup:: this is a list of area groups for public acess 1508* ReadOnly:: set link(s) readonly for area(s) 1509* WriteOnly:: set link(s) writeonly for area(s) 1510@end menu 1511 1512@node EchoArea, EchoAreaDefaults, area management keywords, area management keywords 1513@subsection EchoArea 1514@findex EchoArea 1515@table @asis 1516@item Syntax: 1517@code{EchoArea <name> <file> [-b <msgbase>] [Options] [linkAKAs] [linkOptions]} 1518@item Example: 1519@code{EchoArea linux.develop.ger /var/spool/fido/msgb/linux.develop.ger 1520-b Squish -a 2:2433/1247 -g A -dupeCheck move -dupehistory 11 -d "Linux 1521development" 2:2433/1245 -def} 1522@end table 1523 1524This statement specifies the echoareas. 1525@table @asis 1526@item @strong{name}: 1527area-tag 1528@item @strong{file}: 1529filename(s) for this area without extension; 1530should be the area-tag (as far as possible). if file == Passthrough then 1531[-b <msgbase>] is skipped and msgarea is set as an passthrough area. 1532@item @strong{msgbase}: 1533@code{Msg} is standard (OPUS *.msg-base). Write @code{Squish} for an 1534Squish-msgbase and @code{Jam} for Jam-msgbase. 1535@item @strong{linkAKA}: 1536aka's of up- and down links (full 4D address). 1537you can use masks like: "*:*/*" - all downlinks from you config. 1538This links are auto-mandatory. Always use slash in mask! 1539@end table 1540 1541@strong{Options}: 1542 1543@table @asis 1544@item -pass 1545define area as passthrough even if msgbase type or filename is defined. 1546@item -lr <non-negative integer> 1547required level for a link to have read access to the area (@xref{Level} for an explanation); 1548@item -lw <non-negative integer> 1549required level for a link to have write access to the area (@xref{Level} for an explanation); 1550@item -mandatory 1551forbid to unsubscribe from this echo; 1552@item -noMandatory 1553enable unsubscribe from this echo if echoareadefaults set @code{-mandatory}; 1554@item -manual 1555disallow remote subscribe (only manual connect); 1556@item -noManual 1557allow remote subscribe (using netmail to areafix) if echoareadefaults set @code{-manual}; 1558@item -p <integer> 1559purge after n days: used by purging utilities like sqpack (*); default value is 0; 1560@item -$m <integer> 1561leave max n messages after purge in area (*); default value is 0; 1562@item -noPack 1563do not purge or pack area (overrides -p & -$m) (*) 1564@item -pack 1565enable purge or pack area (*) if echoareadefaults set @code{-noPack}; 1566@item -killRead 1567kill read msgs in area on purging (*) 1568@item -noKillRead 1569disable kill read msgs in area on purging (*) if echoareadefaults set @code{-killRead}; 1570@item -keepUnread 1571keep unread msgs in area on purging (*) 1572@item -nokeepUnread 1573do not keep unread msgs in area on purging (*) if echoareadefaults set @code{-keepUnread}; 1574@item -kill 1575kill messagebase of area when setting it to passthrough 1576@item -nokill 1577do not kill messagebase when setting area to passthrough if echoareadefaults set @code{-kill}; 1578@item -a <addr> 1579aka to use (first address from config if not defined) 1580@item -b <msgbase type> 1581type of msgbase (Msg, Squish, Jam) (*) 1582@item -g <group> 1583group for this echoarea 1584@item -keepsb 1585keep seen-by kludges (used in CarbonCopy) 1586@item -nokeepsb 1587do not keep seen-by kludges (used in CarbonCopy) if echoareadefaults set @code{-keepsb}; 1588@item -tinysb 1589no seen-by kludges stores in message base (*) 1590@item -notinysb 1591seen-by kludges stores in message base (*) if echoareadefaults set @code{-tinysb}; 1592@item -killsb 1593no seen-by & path kludges stores in message base (*) 1594@item -nokillsb 1595seen-by & path kludges stores in message base (*) if echoareadefaults set @code{-killsb}; 1596@item -dosfile 1597file name of area is in dos style (8+3). Please be aware of the fact that 1598this will currently automatically disable the autoAreaCreateSubdirs feature. 1599@item -nodosfile 1600file name of area is in long filename style if echoareadefaults set @code{-dosfile}; 1601@item -hide 1602hide area in areafix reports (%list & etc.); 1603@item -nohide 1604show area in areafix reports (%list & etc.) if disabled in echoareadefaults; 1605@item -d "Description for the area between double quote (like this)" 1606describe area (for areafix reports & etc.); 1607@item -nopause 1608%PAUSE has no effect to this area; 1609@item -pause 1610%PAUSE has effect to this area if disabled in echoareadefaults; 1611@item -paused 1612Area is paused (unsubscribed at uplink). This flag is automatically set and 1613cleared by hpt if ,@xref{AutoAreaPause}, enabled. 1614@item -noautoareapause 1615Do not automatically pause area even if ,@xref{AutoAreaPause}, is enabled. 1616@item -autoareapause 1617Automatically pause area (if ,@xref{AutoAreaPause}, is enabled). 1618@item -ccoff 1619disables carbonCopies for this area; 1620@item -noccoff or -ccon 1621enables carbonCopies for this area if disabled in echoareadefaults; 1622@item -DupeCheck off|move|del 1623toss dupes, move dupes to @code{DupeArea} or delete dupes. 1624@item -DupeHistory <unsignedInteger> 1625size of dupecheck history file in days for all dupe base types 1626except @code{CommonDupeBase}, 7 days if not defined 1627(@xref{AreasMaxDupeAge,,,hpt,hpt}.); 1628@item -nolink 1629disables reply-linking for this area (*); 1630@item -link 1631enables reply-linking for this area (*) if disabled in echoareadefaults; 1632@item -scan listed|manual|never 1633conditions to scan area: if listed in echotoss file or "-a" option; if run with "-a" option; or never 1634@item -debug 1635write debug info about this area to areaname.dbg (or common.dbg if "-dosfile" is used) 1636@item -nodebug 1637disable debug output if defined in echoareadefaults; 1638@item -sbadd(<addr2D>,...) 1639add seen-by(s) at tossing time; 1640@item -sbign(<addr2D>,...) 1641ignore seen-by(s) and toss mail to link(s). 1642@item -sbstrip(<addr2D>,...) 1643Remove specified seen-bys (done before -sbadd). Can be combined with -sbkeepAll. 1644@item -sbkeep(<addr2D>,...) 1645Keep specified seen-bys when zone-gating. 1646@item -sbkeepAll 1647Keep all seen-bys when zone-gating (prevails over -sbkeep). 1648@item -nosbkeepAll 1649Disable -sbkeepAll if enabled for example by @code{EchoAreaDefaults}. 1650@item -tooOld <number of days> 1651Move incoming echomail older than the given number of days to BadMail (0 = disabled). 1652A value >= 90 is recommended! A value too low will filter legitimate traffic. 1653@item -tooNew <number of days> 1654Move incoming echomail newer than the given number of days to BadMail (0 = disabled). 1655A value >= 30 is recommended! A value too low will filter legitimate traffic. 1656@item -r 1657Default read-only: set link read-only at subscribing 1658@item -w 1659Default write-only: set link write-only at subscribing 1660@end table 1661 1662(*) - these tokens to be removed from @code{areafixAutoCreateDefaults} when 1663creating passthrough areas. 1664 1665@strong{LinkOptions}: 1666@table @asis 1667@item -def 1668default-uplink (used for area deletion, @xref{AdvancedAreafix,,,hpt,hpt}.) 1669@item -r 1670this link is read only 1671@item -w 1672this link is write only 1673@item -mn 1674this link is mandatory subscribed, 1675you may also set: "<aka> -r -mn" or "<aka> -w -mn" and so on... 1676 1677Link Options -r -w are left for backward compatibility. We strongly recommend to 1678use tokens ReadOnly & WriteOnly for setting permissions on arealinks. 1679@end table 1680 1681This statement can be repeated. 1682 1683@subsection Note. 1684The msgbase @code{MSG} is limited to 65536 messages. This is SMAPI 1685implementation limit. 1686 1687@node EchoAreaDefaults, BadArea, EchoArea, area management keywords 1688@subsection EchoAreaDefaults 1689@findex EchoAreaDefaults 1690@table @asis 1691@item Syntax: 1692@code{EchoAreaDefaults [passthrough | -b <msgbase>] [Options] [linkAKAs] [linkOptions]} 1693@item Example: 1694@code{EchoAreaDefaults -b Squish -a 2:280/1507 -g F -dupeCheck move -dupehistory 11 -p 14 2:280/1126} 1695@end table 1696 1697With this keyword you can specify settings that will be set for the 1698@code{EchoArea} and @code{LocalArea} definitions that follow. It makes 1699the echoarea definitions shorter. All echoarea settings can be used 1700@strong{except} the areaname and message base path. 1701 1702When you specify a different value in an echoarea definition, it 1703overrules the default setting. 1704 1705With the default from the example above, an echoarea definition could be: 1706 1707@example 1708EchoArea fidosoft.husky /var/spool/fido/msgb/fidosoft.husky -d "husky 1709development" 2:280/6207 1710@end example 1711 1712This will internally be expanded to: 1713 1714@example 1715EchoArea fidosoft.husky /var/spool/fido/msgb/fidosoft.husky -d "husky 1716development" -b Squish -a 2:280/1507 -g F -dupeCheck move -dupehistory 11 1717-p 14 2:280/1126 2:280/6207 1718@end example 1719 1720Another example: 1721 1722@example 1723EchoArea evolution /var/spool/fido/msgb/evolution -d "about fantasies" -p 100 1724@end example 1725 1726that will be expanded to: 1727 1728@example 1729EchoArea evolution /var/spool/fido/msgb/evolution -d "about fantasies" 1730-b Squish -a 2:280/1507 -g F -dupeCheck move -dupehistory 11 -p 100 17312:280/1126 1732@end example 1733 1734As you will notice, the default settings are combined with the 1735additional settings in the EchoArea definition, and the messages are 1736purged after 100 days instead of 14 (the default). 1737 1738This statement can be repeated. 1739 1740An @code{EchoAreaDefults} setting is valid until a next @code{EchoAreaDefaults} 1741setting. 1742@code{EchoAreaDefaults} can also be switched off with an empty definition: 1743 1744@example 1745EchoAreaDefaults [OFF] 1746@end example 1747 1748The word 'OFF' is not needed but makes it more readable. 1749 1750@node BadArea, DupeArea, EchoAreaDefaults, area management keywords 1751@subsection BadArea 1752@findex BadArea 1753@table @asis 1754@item Syntax: 1755@code{BadArea <name> <file> [-b <msgbase>] [Options]} 1756@item Example: 1757@code{BadArea badarea /var/spool/fido/msgb/bad -b Squish} 1758@end table 1759 1760This statement specifies the BadArea. Messages which have no area on 1761your system go to the badArea. 1762@xref{EchoArea}, for details on @code{Options}. 1763Like all areas BadArea is *.msg base per default. 1764 1765This statement cannot be repeated. 1766 1767@node DupeArea, NetMailArea, BadArea, area management keywords 1768@subsection DupeArea 1769@findex DupeArea 1770@table @asis 1771@item Syntax: 1772@code{dupeArea <name> <file> [-b <msgbase>] [Options]} 1773@item Example: 1774@code{dupeArea dupeArea /var/spool/fido/msgb/dupes -b Squish} 1775@end table 1776 1777This statement specifies the DupeArea. Messages which area dupes 1778e.g. come to your system the second time, will be put in the DupeArea. 1779@xref{EchoArea}, for details on @code{Options}. 1780Like all areas DupeArea is *.msg base per default. 1781 1782This statement cannot be repeated. 1783 1784@node NetMailArea, NetArea, DupeArea, area management keywords 1785@subsection NetMailArea 1786@findex NetMailArea 1787@table @asis 1788@item Syntax: 1789@code{NetmailArea <name> <file> [-b <msgbase>] [Options]} 1790@item Example: 1791@code{NetmailArea netmail /var/spool/fido/msgb/netmail -b Squish} 1792@end table 1793 1794This statement specifies the @code{NetMailArea}. @xref{EchoArea}, 1795for details on @code{Options}. Like all areas NetmailAreas is *.msg 1796bases per default. 1797 1798This statement can be repeated to use different netmailareas. 1799 1800@xref{NetArea}. 1801 1802This statement can be repeated. 1803 1804@node NetArea, RobotsArea, NetMailArea, area management keywords 1805@subsection NetArea 1806@findex NetArea 1807@table @asis 1808@item Syntax: 1809@code{NetArea <name> <file> [-b <msgbase>] [Options]} 1810@item Example: 1811@code{NetArea netmail /var/spool/fido/msgb/netmail -b Squish} 1812@end table 1813 1814@xref{NetMailArea}. 1815 1816This statement can be repeated. 1817 1818@node RobotsArea, LocalArea, NetArea, area management keywords 1819@subsection robotsarea 1820@table @asis 1821@item Syntax: 1822@code{robotsArea <string>} 1823@item Example: 1824@code{robotsArea SecondNetMail} 1825@end table 1826 1827Specifies area used for areafix and filefix scanning. Replies from robots will 1828also be stored here. @strong{RobotsArea must be NetmailArea for security purposes!} 1829 1830This statement cannot be repeated. 1831 1832@node LocalArea, FileArea, RobotsArea, area management keywords 1833@subsection LocalArea 1834@findex LocalArea 1835@table @asis 1836@item Syntax: 1837@code{LocalArea <name> <file> [-b <msgbase>] [Options]} 1838@item Example: 1839@code{LocalArea linux.develop.ger /var/spool/fido/msgb/linux.develop.ger -b Squish -a 2:2433/1247 -dupeCheck move -dupehistory 11 -d "Linux development"} 1840@end table 1841 1842This statement creates an @code{LocalArea}. The only difference between 1843a @code{LocalArea} and an @code{EchoArea} is that a @code{LocalArea} has 1844no links and is not scanned for new mails. 1845 1846This statement can be repeated. 1847 1848 1849@node FileArea, BbsArea, LocalArea, area management keywords 1850@subsection filearea 1851@table @asis 1852@item Syntax: 1853@code{FileArea <name> <fileareapath> <uplink> [options] [<downlinks>]} 1854@item Example: 1855@code{filearea Photoes /var/spool/fido/fileecho/Photoes 2:50/1 -d "Sysop photoes"} 1856@end table 1857 1858This statement specifies the @code{FileArea}: fileecho definition. 1859Read HTick documentation for details. 1860 1861 1862@node BbsArea, AreaGroup, FileArea, area management keywords 1863@subsection bbsarea 1864@table @asis 1865@item Syntax: 1866@code{bbsarea <name> <bbsareapath>} 1867@item Example: 1868@code{BBSarea Incoming /var/spool/fido/BBS/incoming} 1869@end table 1870 1871This statement specifies the @code{BBSArea}: BBS file area definition. 1872It's used for filelist building. 1873Read HTick documentation for details. 1874 1875@node AreaGroup, AreaGroupDefaults, BbsArea, area management keywords 1876@subsection AreaGroup 1877@findex AreaGroup 1878@table @asis 1879@item Syntax: 1880@code{AreaGroup <group name> <pattern list>} 1881@item Example: 1882@code{AreaGroup RUSSIAN ru.* su.*} 1883@end table 1884 1885You can group areas by their names and then apply some default options to such 1886areas. <group name> is a unique handle for every group. <pattern list> is a 1887list of patterns with wich area names will be compared. If area name equals 1888to some of patterns in group it will be assigned to this group. 1889Pattern lookup will be performed in order you wrote them. 1890 1891If you define AreaGroup once and then define it again with the same name 1892patterns from these two definitions will be joined. 1893 1894@example 1895AreaGroup DN dn.* 1896AreaGroup DN dnepr.* 464.* 1897 1898will produce patterns as if you define 1899 1900AreaGroup DN dn.* dnepr.* 464.* 1901@end example 1902 1903This statement can be repeated. 1904 1905@node AreaGroupDefaults, GrpDesc, AreaGroup, area management keywords 1906@subsection AreaGroupDefaults 1907@findex AreaGroupDefaults 1908@table @asis 1909@item Syntax: 1910@code{AreaGroupDefaults <group name> <options>} 1911@item Example: 1912@code{AreaGroupDefaults RUSSIAN -p 14 -dupehistory 11} 1913@end table 1914 1915This token defines default options for areas in group (see @code{AreaGroup} 1916token). Options are the same as in EchoArea or EchoAreaDefaults. 1917Parsing priority: 1918EchoAreaDefaults (if defined) 1919AreaGroupDefaults (if areaName suits pattern from one of groups) 1920EchoArea 1921 1922@node GrpDesc, PublicGroup, AreaGroupDefaults, area management keywords 1923@subsection grpdesc 1924@table @asis 1925@item Syntax: 1926@code{grpDesc <group name> <group description>} 1927@item Examples: 1928@code{grpDesc A "Echomail areas from 2:5020/52"} 1929@code{grpDesc Pvt Private areas} 1930@end table 1931 1932This statement defines description for the group of areas. Both name and 1933description can be optionally enclosed by double quotes ("). Note that you 1934can use a variable-length string for group name, not just a single char. 1935 1936This statement can be repeated. 1937 1938@node PublicGroup, ReadOnly, GrpDesc, area management keywords 1939@subsection PublicGroup 1940@findex PublicGroup 1941@table @asis 1942@item Syntax: 1943@code{PublicGroup <string>[,<string>,...] } 1944@item Example: 1945@code{PublicGroup local,a,b,othernet} 1946@end table 1947 1948Specifies groups for public echo acess. 1949 1950This statement cannot be repeated. 1951 1952@node ReadOnly, WriteOnly, PublicGroup, area management keywords 1953@subsection ReadOnly 1954@findex ReadOnly 1955@table @asis 1956@item Syntax: 1957@code{ReadOnly <addressMask> <areaMask>} 1958@item Example: 1959@code{ReadOnly 2:5021/19.* tver.sysop*} 1960@end table 1961 1962This statement set one or many links to writeonly for specified area masks. 1963If you write node address do it *without* trailing .0! 1964 1965If areaMask begins with '!' symbol it means that links won't be set 1966readonly for areas that match areaMask 1967 1968@example 1969 ReadOnly 2:5021/19.* tver.sysop* 1970 ReadOnly 2:5021/19.1 !tver.sysop* 1971 ReadOnly 2:5021/19.2 !tver.sysop.talks 1972 ReadOnly 2:5021/192 ru.anekdot 1973@end example 1974 1975It means that all points if 2:5021/19 set r/o for tver.sysop* echoareas and 1976fileareas except 2:5021/19.1 for all areas and 2:5021/19.2 can write 1977only to tver.sysop.talks from tver.sysop* areagroup. Last rule implements 1978a read-only status of ru.anekdot (echo)area for node 2:5021/192. 1979 1980This statement can be repeated. 1981 1982@node WriteOnly, , ReadOnly, area management keywords 1983@subsection WriteOnly 1984@findex WriteOnly 1985@table @asis 1986@item Syntax: 1987@code{WriteOnly <addressMask> <areaMask>} 1988@item Example: 1989@code{WriteOnly 2:5021/19.* NobodyReadArea} 1990@end table 1991 1992This statement set one or many links to writeonly for specified area masks. 1993If you write node address do it *without* trailing .0! 1994 1995This statement can be repeated. 1996 1997 1998@node autocreate keywords, robot keywords, area management keywords, keywords 1999@section Autocreate keywords 2000 2001@menu 2002* CreateAddUplink:: set default uplink for auto-created areas 2003* CreateAreasCase:: case of autocreated areas names 2004* CreateFwdNonPass:: autocreate non-passthru echoes in fwd.req. operations 2005* ReportRequester:: allow reporting link who requested area on autocreate 2006* ReportTo:: set area or netmail for autocreate reports 2007@end menu 2008 2009 2010@node CreateAddUplink, CreateAreasCase, autocreate keywords, autocreate keywords 2011@subsection CreateAddUplink 2012@findex CreateAddUplink 2013@table @asis 2014@item Syntax: 2015@code{createAddUplink [<bool>]} 2016@item Example: 2017@code{createAddUplink} 2018@end table 2019 2020If enabled, the link from which an area is auto-created is marked as 2021the default uplink for this area. It is turned off by default. Please note 2022that you cannot use autoCreateDefaults for that. 2023 2024This statement cannot be repeated. 2025 2026@node CreateAreasCase, CreateFwdNonPass, CreateAddUplink, autocreate keywords 2027@subsection CreateAreasCase 2028@findex CreateAreasCase 2029@table @asis 2030@item Syntax: 2031@code{createAreasCase (Lower|Upper)} 2032@item Example: 2033@code{createAreasCase Upper} 2034@end table 2035 2036This statement defines case of areanames in autocreation. 2037Default is lower case. 2038 2039This statement cannot be repeated. 2040 2041@node CreateFwdNonPass, ReportRequester, CreateAreasCase, autocreate keywords 2042@subsection CreateFwdNonPass 2043@findex CreateFwdNonPass 2044@table @asis 2045@item Syntax: 2046@code{createFwdNonPass <bool>} 2047@item Example: 2048@code{createFwdNonPass} 2049@end table 2050 2051Autocreate non-passthru echoes in forward request operations. 2052MsgBaseDir should be not passthrough! 2053 2054This statement cannot be repeated. 2055 2056@node ReportRequester, ReportTo, CreateFwdNonPass, autocreate keywords 2057@subsection ReportRequester 2058@findex ReportRequester 2059@table @asis 2060@item Syntax: 2061@code{reportRequester <bool>} 2062@item Example: 2063@code{reportRequester off} 2064@item Defaults: 2065@code{reportRequester on} 2066@end table 2067 2068By default, the link who requested an area is displayed in the auto-create 2069report. This keyword disables showing it. 2070 2071This statement cannot be repeated. 2072 2073@node ReportTo, , ReportRequester, autocreate keywords 2074@subsection ReportTo 2075@findex ReportTo 2076@table @asis 2077@item Syntax: 2078@code{ReportTo <string>} 2079@item Example: 2080@code{ReportTo netmail} 2081@end table 2082 2083Set name of echoarea or netmailarea to place autocreate reports. 2084 2085This statement cannot be repeated. 2086 2087@node robot keywords, , autocreate keywords, keywords 2088@section Robot definition keywords (Robot section) 2089 2090@menu 2091* Robot:: begin of Robot section 2092* FromName:: set From: field in response messages 2093* HelpFile:: file with help for areafix reports 2094* KillRequests:: delete areafix requests 2095* MsgSize:: maximum areafix report size 2096* RobotNames:: set additional areafix names 2097* RobotOrigin:: set origin for areafix reports 2098* QueryReports:: insert linked areas list into areafix reports 2099* QueueFile:: idle requests queue file for areafix 2100* ReportsAttr:: set flags to areafix reports 2101* SplitStr:: set split string for splitted areafix messages 2102* AutocreateFlag:: create this file-flag after auto-area-create 2103* NewAreaRefuseFile:: file with areas which we don't want to autocreate 2104* ForwardRequestTimeout:: requested from uplink area traffic timeout (in days) 2105* IdlePassthruTimeout:: timeout (in days) before unlink on uplink passthrough echo with one link (& some time later remove from config) 2106* KilledRequestTimeout:: wait time (in days) for kill area without links 2107* AutoAreaPause:: Enables or disables area pause algorythm 2108@end menu 2109 2110@node Robot, FromName, robot keywords, robot keywords 2111@subsection Robot 2112@findex Robot 2113@table @asis 2114@item Syntax: 2115@code{Robot <robot name>} 2116@item Example: 2117@code{Robot AreaFix} 2118@end table 2119 2120This keyword begins Robot section. All the following robot-related statements 2121change the configuration of this robot until a new @code{Robot} statement is found. 2122Currently used names are 'default', 'Areafix' and 'Filefix'. 2123Values set for default robot are used as defaults for other robots. 2124 2125@node FromName, HelpFile, Robot, robot keywords 2126@subsection FromName 2127@findex FromName 2128@table @asis 2129@item Syntax: 2130@code{FromName <string>} 2131@item Example: 2132@code{FromName "HPT AreaFix"} 2133@end table 2134 2135 Use value from @code{FromName} in field @code{From} when 2136responding on messages to areafix. If this token not defined, name in 2137original message will be used. Example: 2138@example 2139 21401) FromName not defined in config: 2141 2142Original message to areafix: 2143---------------------------- 2144From: Sysop 2145To: ArEaFiX 2146 2147AreaFix's response: 2148------------------- 2149From: ArEaFiX 2150To: Sysop 2151 21522) FromName "HPT AreaFix" 2153 2154Original message to areafix: 2155---------------------------- 2156From: Sysop 2157To: ArEaFiX 2158 2159AreaFix's response: 2160------------------- 2161From: HPT AreaFix 2162To: Sysop 2163 2164@end example 2165 2166Also this value is being used when creating reports by qrep command. 2167 2168@node HelpFile, KillRequests, FromName, robot keywords 2169@subsection HelpFile 2170@findex HelpFile 2171@table @asis 2172@item Syntax: 2173@code{HelpFile <file>} 2174@item Example: 2175@code{HelpFile /etc/ftn/areafix.hlp} 2176@end table 2177 2178This is help file, which robot sends to link if he requests "%HELP". 2179 2180This statement cannot be repeated. 2181 2182@node KillRequests, MsgSize, HelpFile, robot keywords 2183@subsection KillRequests 2184@findex KillRequests 2185@table @asis 2186@item Syntax: 2187@code{KillRequests <bool>} 2188@item Example: 2189@code{KillRequests} 2190@end table 2191 2192Delete requests from links to robot. 2193 2194This statement cannot be repeated. 2195 2196@node MsgSize, RobotNames, KillRequests, robot keywords 2197@subsection MsgSize 2198@findex MsgSize 2199@table @asis 2200@item Syntax: 2201@code{MsgSize <integer>} 2202@item Example: 2203@code{MsgSize 20} 2204@end table 2205 2206This option set up maximum robot message size (20 kb). 2207If not defined, reports will be not splitted... 2208 2209This statement cannot be repeated. 2210 2211@node RobotNames, RobotOrigin, MsgSize, robot keywords 2212@subsection RobotNames 2213@findex RobotNames 2214@table @asis 2215@item Syntax: 2216@code{RobotNames <string>} 2217@item Example: 2218@code{RobotNames SqaFix, hptfix} 2219@end table 2220 2221Set additional names for robot. Default names for Areafix robot are "areafix", "areamgr", 2222"hpt". Default names for Filefix robot are "FileFix", "FileMgr", "AllFix", "FileScan", "htick". 2223 2224This statement cannot be repeated. 2225 2226@node RobotOrigin, QueryReports, RobotNames, robot keywords 2227@subsection RobotOrigin 2228@findex RobotOrigin 2229@table @asis 2230@item Syntax: 2231@code{RobotOrigin <string>} 2232@item Example: 2233@code{RobotOrigin c0()1 $tAt10n} 2234@end table 2235 2236the origin string in robot's reports will be like this: 2237 * Origin: c0()1 $tAt10n (<your addr>) 2238 2239This statement cannot be repeated. 2240 2241@node QueryReports, QueueFile, RobotOrigin, robot keywords 2242@subsection QueryReports 2243@findex QueryReports 2244@table @asis 2245@item Syntax: 2246@code{QueryReports <bool>} 2247@item Example: 2248@code{QueryReports off} 2249@end table 2250 2251This statement enables/disables including linked areas list into all robot 2252replies. 2253 2254Default: off. 2255 2256This statement cannot be repeated. 2257 2258@node QueueFile, ReportsAttr, QueryReports, robot keywords 2259@subsection QueueFile 2260@findex QueueFile 2261@table @asis 2262@item Syntax: 2263@code{QueueFile <string>} 2264@item Example: 2265@code{QueueFile /fido/datafiles/areafix.queue} 2266@end table 2267 2268This command specifies the queue file containing your delayed forward-requests. 2269Hpt must have read/write rights for this file. 2270To use this feature run @code{hpt qupd} periodically. 2271 2272@quotation Note 2273Don't set this to the same value for different robots. It may lead to confusion and unexpected behaviour. 2274@end quotation 2275 2276This statement cannot be repeated. 2277 2278@node ReportsAttr, SplitStr, QueueFile, robot keywords 2279@subsection ReportsAttr 2280@findex ReportsAttr 2281@table @asis 2282@item Syntax: 2283@code{ReportsAttr <attr>} 2284@item Example: 2285@code{ReportsAttr pvt loc k/s} 2286@item or 2287@code{ReportsAttr pvt,loc,k/s} 2288@end table 2289 2290Set attributes to robot's reports. 2291 2292Valid attributes are: 2293@table @asis 2294@item pvt 2295@item crash 2296@item read 2297@item sent 2298@item att 2299@item fwd 2300@item orphan 2301@item k/s 2302@item loc 2303@item fwd 2304@item xx2 2305@item frq 2306@item rrq 2307@item cpt 2308@item arq 2309@item urq 2310@item kfs 2311@item tfs 2312@item dir 2313@item imm 2314@item cfm 2315@item npd 2316@end table 2317 2318Default is "pvt loc k/s npd". 2319 2320If this statement is used inside Link or LinkDefaults section, it sets 2321attributes for this particular link. Otherwise it defines attributes used 2322by default. 2323 2324This statement can be repeated for different links. 2325 2326@node SplitStr, AutocreateFlag, ReportsAttr, robot keywords 2327@subsection SplitStr 2328@findex SplitStr 2329@table @asis 2330@item Syntax: 2331@code{SplitStr <string>} 2332@item Example: 2333@code{SplitStr > Message splitted. To be continued...} 2334@end table 2335 2336This string added after splitted robot's messages. 2337 2338This statement cannot be repeated. 2339 2340@node AutocreateFlag, NewAreaRefuseFile, SplitStr, robot keywords 2341@subsection AutocreateFlag 2342@findex AutocreateFlag 2343@table @asis 2344@item Syntax: 2345@code{AutocreateFlag <file>} 2346@item Example: 2347@code{AutocreateFlag /etc/ftn/flags/aac.flag} 2348@end table 2349 2350Create file-flag after autocreating area. This feature can be used 2351for execute some scripts after tossing. 2352 2353This statement cannot be repeated. 2354 2355@node NewAreaRefuseFile, ForwardRequestTimeout, AutocreateFlag, robot keywords 2356@subsection NewAreaRefuseFile 2357@findex NewAreaRefuseFile 2358@table @asis 2359@item Syntax: 2360@code{newAreaRefuseFile <file>} 2361@item Example: 2362@code{newAreaRefuseFile /etc/ftn/areas/dontcrte.lst} 2363@end table 2364 2365This token defines a file which will be used when autocreating echoarea. 2366File contains list of areas which we don't allow to autocreate. 2367Subscribtion on such areas is also refused because such areas are marked as 2368dead. Each line of this file is a mask of echotag. 2369 2370Example: 2371@table @asis 2372@item RU.LIST.CITYCAT.* 2373@item SU.KASCHENKO.LOCAL 2374@end table 2375 2376This statement cannot be repeated. 2377 2378@node ForwardRequestTimeout, IdlePassthruTimeout, NewAreaRefuseFile, robot keywords 2379@subsection ForwardRequestTimeout 2380@findex ForwardRequestTimeout 2381@table @asis 2382@item Syntax: 2383@code{ForwardRequestTimeout <number>} 2384@item Example: 2385@code{ForwardRequestTimeout 7} 2386@end table 2387 2388This statement specifies time to wait (in days) for area requested from 2389uplink. If there is no traffic in this area, @code{<program> qupd} unsubscribes 2390area from this uplink and subscribes to it at next uplink. If next uplink 2391for this echoarea not avaiable, @code{<program> qupd} removes echoarea from queue. 2392 2393To use this feature run @code{<program> qupd} daily. 2394 2395This token requires keyword QueueFile. @xref{QueueFile}. 2396 2397Default is 7 days. 2398 2399This statement cannot be repeated. 2400 2401@node IdlePassthruTimeout, KilledRequestTimeout, ForwardRequestTimeout, robot keywords 2402@subsection IdlePassthruTimeout 2403@findex IdlePassthruTimeout 2404@table @asis 2405@item Syntax: 2406@code{IdlePassthruTimeout <number>} 2407@item Example: 2408@code{IdlePassthruTimeout 3} 2409@end table 2410 2411This statement specifies time to wait (in days) before unsubscribing echoarea 2412from uplink after the time last downlink unsubscribed (one uplink rest). 2413 2414To use this feature run @code{<program> qupd} daily. 2415 2416This token requires keyword QueueFile. @xref{QueueFile}. 2417 2418Default is 3 days. 2419 2420This statement cannot be repeated. 2421 2422@node KilledRequestTimeout, AutoAreaPause, IdlePassthruTimeout, robot keywords 2423@subsection KilledRequestTimeout 2424@findex KilledRequestTimeout 2425@table @asis 2426@item Syntax: 2427@code{KilledRequestTimeout <number>} 2428@item Example: 2429@code{KilledRequestTimeout 4} 2430@end table 2431 2432This statement specified time wait (days) for delete from config echoarea after 2433unsubscribe it from uplink (last link). 2434 2435Run @code{<program> qupd} daily for use this feature. 2436 2437This token requires keyword QueueFile. @xref{QueueFile}. 2438 2439Default is 4 days. 2440 2441This statement cannot be repeated. 2442 2443@node AutoAreaPause, , KilledRequestTimeout, robot keywords 2444@subsection AutoAreaPause 2445@findex AutoAreaPause 2446@table @asis 2447@item Syntax: 2448@code{AutoAreaPause <bool>} 2449@item Example: 2450@code{AutoAreaPause} 2451@end table 2452 2453default: off (disabled) 2454 2455Enables or disables area pause algorythm. If area is passthrough 2456and there is only uplink alive (link with "-def" flag set) while other links 2457are paused, unsubscribe message will be sent to uplink and "-paused" flag 2458will be set to area. If another link subscribes to the area, or one of already 2459paused links resumes his subscription, area will be subscribed at uplink again 2460and "-paused" flag cleared. Note, that links cannot send messages to paused 2461area, they will be moved to badmail. If enabled, algorythm also works if link 2462is paused by AutoPassive. 2463 2464You may disable or enable algorythm for a particular area by setting one of 2465"-noautoareapause" or "-autoareapause" flags. 2466 2467This statement cannot be repeated. 2468 2469 2470@c <!----------------------------------------------------------------------------------------------> 2471 2472@node converting, tparser, keywords, Top 2473@chapter Converting fidoconfig 2474Since popular mail readers, BBS programs and mailers does not support 2475fidoconfig, we have developed programs that convert your fidoconfig to 2476these config file formats. 2477 2478Golded+ by Alexander A.Aganichev supports fidoconfig and converter isn't needs, 2479MsgEd TE 6.x and above integrated with fidoconfig. 2480 2481Also we have developed program to convert configuration files of Fastecho 2482tosser program into fidoconfig, to make migration from Fastecho to fidoconfig 2483(and hpt) more easy. 2484 2485@enumerate 2486@item fconf2golded 2487@*Converts fidoconfig to configuration file of Golded by Odinn Sorensen. 2488 2489Synopsys:@* 2490@command{fconf2golded <goldedConfigFileName> [<default.cfg>]} 2491 2492Example: 2493@example 2494fconf2golded ~/golded/golded.cfg ~/golded/goldDefaults.cfg 2495@end example 2496 2497@item fconf2msged 2498@*Converts fidoconfig to configuration file of MgsEd sysce version 6. 2499 2500Synopsys:@* 2501@command{fconf2msged <msgedConfigFileName>} 2502 2503Example: 2504@example 2505fconf2msged ~/msged.areas 2506@end example 2507 2508@item fconf2aquaed 2509@*Convert fidoconfig to configuration file of AquaEd. 2510 2511Synopsys:@* 2512@command{fconf2aquaed <aquaedConfigFileName> [<default.cfg>]} 2513(if you specify default.cfg there will be a include <default.cfg> generated in 2514your config file) 2515 2516Example: 2517@example 2518fconf2aquaed ~/aquaed/aquaed.cfg 2519@end example 2520 2521@item fconf2binkd@* 2522Fidoconfig to binkd config converter: generates passwords file for binkd or 2523generates simple binkd config file (you may include it into real config). 2524 2525Synopsys:@* 2526@command{fconf2binkd [-v] [-h] [-c path/to/fidoconfig] [-f] [-p] [output_file_name]} 2527 2528See details in fconf2binkd(1) man page or fconf2binkd.html. 2529 2530Examples: 2531@example 2532fconf2binkd -c ../husky/config -p binkd.pwd 2533fconf2binkd binkd.conf 2534@end example 2535 2536@item fconf2fidogate@* 2537Convert fidoconfig into config file of fidogate. 2538 2539Synopsys:@* 2540@command{fconf2fidogate <FidoGateAreasFileName> [<default.cfg>]} 2541(you may read config defaults from default.cfg) 2542 2543Example: 2544@example 2545fconf2fidogate /usr/local/lib/fidogate/areas 2546@end example 2547 2548@item fconf2squish@* 2549Convert fidoconfig into config file of Squish. 2550 2551Synopsys:@* 2552@command{fconf2squish (<squish.cfg>|-) [<default.cfg>]} 2553(- as squish.cfg means stdout) 2554(you may read config defaults from default.cfg) 2555 2556See details in fconf2squish(1) man page or fconf2squish.html 2557 2558Examples: 2559@example 2560fconf2squish ~/squish/squish.cfg 2561fconf2squish - | grep -i echo >sqechoes.cfg 2562@end example 2563 2564@item fconf2tornado@* 2565Convert fidoconfig into config file of Tornado BBS. 2566 2567Synopsys:@* 2568@command{fconf2tornado -[command [-command...]] <tornado.ctl> [<default.cfg>]} 2569(you may read config defaults from default.cfg) 2570 2571See details in fconf2tornado(1) man page or fconf2tornado.html 2572 2573Examples: 2574@example 2575fconf2tornado -ff -g -grLocal filearea.ctl temp.ctl 2576fconf2tornado -mel -ss256 c:\bbs\tornado\msgarea.ctl 2577@end example 2578 2579@item fecfg2fconf@* 2580Convert configuration of Fastecho into fidoconfig. 2581 2582Synopsys:@* 2583@command{fecfg2fconf [path]fastecho.cfg [output fidoconfig]} 2584 2585Example: 2586@example 2587fecfg2fconf c:\fido\fastecho\fastecho.cfg fidoconfig.tmp 2588@end example 2589 2590@end enumerate 2591 2592@node tparser, contact, converting, Top 2593@chapter Testing the config 2594You should run @command{tparser} @sc{everytime} you have changed the config. If tparser 2595found error in config please correct your config file and try again. 2596 2597@table @asis 2598@item Syntax: 2599@command{tparser [-h|@minus{}-help] [-Dvar=value] [-E] [-P] [/path/to/config/file]} 2600@item Example: 2601@example 2602@command{tparser -Dmodule=hpt | less} 2603@end example 2604@end table 2605 2606tparser (like any fidoconfig program) will display error messages if you have 2607made an error in the config. It also may be display some warnings about your 2608config settings. It will grumble on every Keyword it does not know. It will 2609stop after the first error (not warning) to give you the ability to change 2610your config. 2611 2612@section Options 2613 2614@table @asis 2615@item -Dvar=value 2616Set the config variable @code{var} to @code{value}. 2617@item -E 2618Dumps config into stdout (all config variables expanded). 2619@item -h 2620@itemx @minus{}-help 2621Display usage information. 2622@item -P 2623Try to create non-existing directories. 2624@end table 2625 2626 2627@node contact, , tparser, Top 2628@chapter Contacting the author 2629You can reach me at 2630 2631@example 2632@email{mtt@@tichy.de} 26332:2432/645 2634@end example 2635 2636and in the fido echoarea 2637 2638@example 2639linux.develop.ger 2640fidosoft.husky 2641@end example 2642 2643Max Levenkov: 2644@example 2645@email{sackett@@mail.ru} 2646ru.husky (russian) 2647ru.echoprocessors (russian) 2648fidosoft.husky (english) 2649@end example 2650 2651The actual fidoconfig library and other fido software will be on 2652@url{http://husky.sourceforge.net}. 2653 2654@bye 2655