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