Sophie

Sophie

distrib > Mandriva > 2010.2 > i586 > by-pkgid > 5048a98a2a434ae6a0e486f45de0d373 > files > 15

huskybse-1.0.0-7mdv2010.0.noarch.rpm

this is only proposal, so it may be under of date, etc
do not use this document as manual for fidoconfig
the proposal keeped only for developers

===============================================================================
LINUX FIDOSOFT PROJECT
Definition of commonly used configuration files


Version: 0.15 (990121)
Status: proposal


_related documents_

project description
multiuser aspects (to do)
portability aspects (to do)
ifcico configuration description


_Location of configuration files_

the main configuration file should be searched in:

  1. $FIDOCONFIG
  2. a default path, depending to the used os.
     e.g. linux: /etc/fido/config
          freeBSD: /usr/local/etc/fido/config
          solaris: ????
          BeOS: ????
          OS/2: c:\fido\config
          WinNT: c:\fido\config

     c/c++ - programs should include a common config.h-file.
     scripts should evaluate $OSTYPE, $OS or any other environment
     variable that indicates the os.

     The configfile must be readable to fidoconfig. If you plan to use
     the autoareacreate feature the writing process must have write-access
     to the configfile.

All symbols are _not_ case-sensitiv.

The primary config-file may include further files.

{<whiteSpace>} at the start of the line will be ignored.

All keywords are evaluated as occurring, the first matching 
keyword found is valid. If there are more then one keywords of the 
same type allowed, the first line matching the situation is valid. 
If no match is found, a default-value will be used.


_Escape-sequences_

"\" is used as escape-sequence. "\" has to be written as "\\".

non-printable characters can be expressed as \<hexValue>

_Comments_

"#" at the start of a line or <whiteSpace>#<whiteSpace> within the 
line starts a comment. The comment ends with the line.

If the first word in a line is an undefined keyword, the line will 
be ignored.


_new lines_

Each keyword has to start a new line.

"\" at end of line means that "\" and the following new-line-
character(s) will be ignored. (concatenating lines)


_Recommended structure of config-files_

/etc/fido/config:
{<keyword>}
include /etc/fido/address     # own aka's
include /etc/fido/path        # directories used
? include /etc/fido/arealink    # areafix options
include /etc/fido/msgbase     # list of mail-Areas
include /etc/fido/filebase    # list of file-Areas
include /etc/fido/links       # list of users, points,
                              # up/downlinks
include /etc/fido/rights      # access-rights for users, 
                              # points, up/downlinks
include /etc/fido/packer      # packer definitions
include /etc/fido/nodelist    # nodelist definitions
include /etc/fido/routing     # routing rules
include /etc/fido/mailer      # see ifcico-cm3.0
include /etc/fido/misc	      # other options

_Keyword definitions_

/etc/fido/config:
  version <integer>.<integer>
  Name <text>
  # system's name
  Location <text>
  # location of mailer
  Sysop <Text>
  # Sysop name
  [CreateDirs]
  # try to create nonexistant directories
  [LongDirNames]
  # allow long directory names
  [SplitDirs]
  # split directories on " ", ".", "_", "/" and "-"
  {
  include <file>
  }
  # include <file> here

/etc/fido/address:
  {
  Address <aka> [Line [unsignedInteger]1* ]
  }
  # your own aka's: 
  # Show aka for all lines given.
  # If no line is given, aka will be shown for all lines.

/etc/fido/path:
  inbound <path>
  # inbound path
  outbound <path>
  # outbound root path, followed by subdirectories in
  #   binkley-style
  tempoutbound <path>
  # if link is busy, then mail holded in this outbound
  # holded mail will toss to link in next hpt session
  ticoutbound <path>
  # TICs are stored here and killed after transmission
  protinbound <path>
  # inbound path for protected sessions
  listinbound <path>
  # inbound path for listed systems
  localinbound <path>
  # inbound path for local generated mails
  MsgBaseDir <path>
  # path where autoareacreated msgbases are stored
  SemaDir <path>
  # path for semaphores
  BadFilesDir <path>
  # path where bad TICs and their associated files are stored
  Intab <file>
  # file for recoding incoming characters (used for example in russia)
  Outtab <file>
  # file for recoding outgoing characters (used for example in russia)
  importLog <file>
  # file which is created by hpt.
  # it containts the names of the areas which hpt has tossed in
  echotossLog <file>
  # file is created by a message editor.
  # it containts the name of the areas in which have been new messages entered
  linkWithImportLog <yes|no|kill>
  # importlog will be used to determine which areas whould be linked.
  FileAreasLog <file>
  # list of fileareas with new files
  FileNewAreasLog <file>
  # list of autocreated fileareas
  {
  public <path>
  }
  # path for requestable files
  #   see also -request option for fileEcho 
  logFileDir <path>
  # path for logfiles
  DupeHistoryDir <path>
  # path for dupe history files
  nodelistDir
  # path for nodelists
  # (will be ignored by ifcico)
?  #  (see ifcico documentation)
  magic
  # path for magic definitions
?  #  see ifcico documentation
  lockfile <file>
  # if another HPT session will be started and found lockfile
  # they will be terminated
  LongNameList <file>
  # list of arrived files with a long name
  fileArcList <file>
  # list of files and TICs to be archived
  filePassList <file>
  # list of passthrough-files
  fileDupeList <file>
  # dupe database
  msgidfile <file>
  # file with the first unused MsgID

/etc/fido/links
  {
  link <name>
  # name of down/uplink
  #   also default for bbs-login, if <handle> is not given
  Aka [<aka>]1*
  # links aka
  ourAka <aka>
  # our aka which is used for link
  Password <pwd>
  # default-Pwd, used for SessionPwd, PktPwd, TicPwd, AreaFixPwd and BBSPwd if
  # they are not given explicitly
  [PktPwd <pwd>]
  # Packet- password
  [TicPwd <pwd>]
  # Ticker Password
  [AreaFixPwd <pwd>]
  # Areafix password
  [FileFixPwd <pwd>]
  # Filefix password
  [BBSPwd <pwd>]
  # password for Online user.
  [SessionPwd <pwd>]
  # session password used by mailer
  [handle <name>]
  [TicGrp {<group>}]
  # group(s) for ticker
  [BBSGrp {<group>}]
  # group(s)
  [AccessGrp {<groups>}]
  # this is a list of groups for echo access
  # (see also PublicGroup and -g <group> in EchoArea options)
  [OptGrp {<groups>}]
  # this is personal groups for echo access
  # Export, Import & Mandatory uses OptGrp areas
  # or AccessGrp if OptGrp not defined
  [Export (on|off)]
  # default on
  # if Export is off, mail for groups defined in OptGrp not tossed to link
  # and if OptGrp not defined, then no mail tossed to link at all.
  [Import (on|off)]
  # default on
  # same as Export, but this is for mail from link
  [Mandatory (on|off)]
  # default off
  # do not allow the link to subscribe/unsubscribe areas
  [Level {<integer>}]
  # access level. used in echoareas to control read/write access
  AutoAreaCreate (on|off)
  # "on" means link is allowed to create an area
  AutoFileCreate (on|off)
  # "on" means link is allowed to create an filearea
  AutoAreaCreateDefaults <string>
  # Added "string" to "EchoArea ...", when area is autocreated
  AutoFileCreateDefaults <string>
  # Added "string" to "FileArea ...", when filearea is autocreated
  AutoAreaCreateFile <filename>
  # Created new echoarea in "filename"
  AutoFileCreateFile <filename>
  # Created new filearea in "filename"
  AreaFix (on|off)
  # "off" means link is not allowed to Areafix (default is on)
  FileFix (on|off)
  # "off" means link is not allowed to FileFix (default is on)
  Packer (zip|tgz|rar|arj|arc....)
  # packer to use for this Link
  EchoMailFlavour <flavour>
  # hold, crash, direct, normal
  ForwardRequests (on|off)
  # allow forward requests to this link from other links
  ForwardRequestFile <file>
  # file for forward requests & available areas
  # if not defined then forward requests unconditional
  RemoteRootName <AreaFix>
  # Name link's areas robot
  fRequestFromUpLink (on|off)
  # allow forward requests from this link to other links
  Pause
  # Stop sending arcmail (and fileareas in future)
  AutoPause <days>
  # Autostop sending arcmail to this link (automative added Pause token)
  # over <days> days. (and fileareas in future)
  }

/etc/fido/msgbase:
  # List of echo mail-Areas
  NetmailArea <name> <file> [<msgbase>] {Option}
  BadArea <name> <file> [<msgbase>] {Option}
  DupeArea <name> <file> [<msgbase>] {Option}
  {
  EchoArea <name> <file> [<msgbase>] {<Option>} \
                       {<linkAKA> {<LinkOption>}}
  }
  # name: area-tag 
  # file: filename(s) for this area without extension; 
  #   should be the area-tag (as far as possible)
  #   if file == Passthrough then [<msgBase>] is skipped and msgarea is
  #   set as an passthrough area
  # msgbase: *.msg is standard. Write Squish for an Squish-msgbase
  # LinkAKA:  aka's of up- and down links

  # -a <aka>      
  #  aka to use

  # -g <group>
  # group for this echoarea

  # Echo Security:
  # by default everything all allowed.

  [-lr <integer>]
  # required level for read access (see also "Level" in link options)
 
  [-lw <integer>]
  # required level for write access

  [-mandatory]
  # forbid to subscibe/unsubscribe from this echo

  # AreaLinkOptions defined after each link (if needed)

  [<aka> -r]
  # this link is read only
  # aka "Import off" in LinkOptions

  [<aka> -w]
  # this link is write only
  # aka "Export off" in LinkOptions

  [<aka> -m]
  # this link is mandatory subscribed
  # aka "Mandatory on" in LinkOptions

  # you may also set: "<aka> -r -m" or "<aka> -w -r" and so on...
 
  # if you don't want to carbon from this echo
  # -ccoff

  # if a group name is an unsignedInteger, it is
  #   interpreted as level, access rights are
  #   granted for links with equal or higher level
  # -p <integer>
  # purge after n days, 
  # -$m <integer>
  # leave max n messages after purge in area
  # -h           
  # hide area
  # -nopause        
  # %PAUSE has no effect to this area
  # -keepsb      
  # keep seen-by's

  # -DupeCheck off|move|del
  # toss in dupes, move dupes to dupeArea or delete dupes.
  # -DupeHistory <unsignedInteger>
  # size of dupecheck history file in days

  # -manual      
  # disallow remote changes (only manual connect/disconnect)

  # options for further development, e.g.:
  # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  # -mandatory {<group>}
  # area is mandatory for {<group>}
  # if <group> is an unsignedInteger,  this area is mandatory 
  #   for levals <= <group>
  # -tinysb     
  # keep only seen-by's of links listed in {link}
  # <LinkOption>:
  # -imp
  # import only for redundant echomail-supply
  # -def
  # default-uplink for redundant echomail-supply

  {
  domain <zone>[:<net>[/<node>[.<point>]]] <domain>
  }
  # default-domains for Zone
  # regular expressions may be used in <zone>

/etc/fido/arealink:
  AreaDescription [<file>]1*
  # search description for area in <file>,
  #   e.g. backbone.na, myareas.local 
  # format of the description files has to be: 
  #   {
  #   <areatag> [whiteSpace]1* <description>
  #   }
  #     <areatag> ::= <text>
  #     <description> ::= <text>

/etc/fido/filebase:
  # list of file areas and file echos
  {
  FileEcho <name> <path> {Option} {<linkAKA> {LinkOption}}
  # ftn File-Echo
  }
  # -l <group>
  # access read/write for group,
  # -r <group>
  # access read only for group.
  # -w <group>
  # Access write for group.
  # -noCrc 
  # trun off crc-check
  # -mandatory {<group>}
  # area is mandatory for {<group>}
  # -a <aka>      
  #  aka to use
  # -manual      
  # disallow remote changes (only manual connect/disconnect)
  # -h           
  # hide area
  # -nopause        
  # %PAUSE has no effect to this area
  # -o <path>        
  # move old files to <path>
  # -Ext {<Ext>}     
  # when replacing files, also look for files with extension <ext>
  # -a {<group>}   
  # announces in groups {<group>}
?  # -nfh          
?  # NewFilesHatch
  # -touch        
  # touch files
?  # -ztouch        
?  # touch files with ZipTouch
  # -l <date>      
  # date of last NewFilesHatch
  # -request      
  # allow filerequests
  # -bbs
  # file-echo is also file-area for bbs
  {
  FileArea <path>
  # bbs file-area
  }

/etc/fido/rights:
  {
  GroupAutoAreaCreate on|off {<group>}
  # allow or deny AutoAreaCreate for links,
  #   that are member of group
  # is no group given, this is default for all groups

  AutoCreateDef 
  # default area options for autocreated areas
  # example "AutoCreateDef -m 200 -dupecheck move"
  }
  {
  GroupDefault <group> <path> [<msgbase>] {<option>} \
                        {<linkAKA> {linkoption}} 
  }
  # defaults for auto created Areas according
  # to the group of the creator
  # ! NOT SUPPORTED YET.

  FileFileUMask <octal permission mask>
  # UMask used for files created by the ticker

  FileDirUMask <octal permission mask>
  # UMask used for directories created by the ticker


/etc/fido/packer:
  # Packer definitions
  PackerDef zip|tgz|rar|arc|arj|..... 
  #default packer, (if no packer for aka is given)
  Unpack <Call> [<offset> <matchcode>]1*
  # definitions for new unpackers
  # call: see pack
  # offset: position of recognition string in packed file.
  #         offset ::= <hexValue>
  # match code:  recognition string for packed file,
  #             ?? can be used as don't care
  # e.g.: unpack "mypack -e %s" 0e ffff????cefe
  #       files packed by mypack can be recognized by
  #         ffff(hex) at offset 0e(hex) and
  #         cefe(hex) at offset 13(hex)
  #       they can be unpacked by "mypack -e <filename>"
  pack zip|tgz|rar|arc|arj|..... <call>
  # Definition for Packer
  # call: command line call of this packer
  #       $a will be replaced by the archiv file
  #       $f will be replaced by the file  which should be packed into the archiv
  #       in <call>

/etc/fido/nodelist:
  {
  nodelist <file> (v7|v7plus|ifcico30cm|feddy|...)\
           [<defaultAddress>] [3D|4D]
  }
  # name and format of nodelist(s)
  #  see 'some remarks about ifcico'

/etc/fido/routing:
  {
  route <flavour> [enc|noenc] <target> {<linkWW>}
  }
  # <target> ::= <aka>|"host"|"hub"|"boss"|"no-route"
  # enc: ecnodes msg's
  {
  routeFile <flavour> [enc|noenc] <target> {<linkWW>}
  }
  # only mails witch attachment
  {
  routeMail <flavour> [enc|noenc] <target> {<linkWW>}
  }
  # only mails without attachment

/etc/fido/mailer:
  line <unsignedInteger> <device>
  # managing lines, e.g. for showing some aka's only
  #   for selected lines
  # further keywords:
  #   look at ifmail/misc/config

/etc/fido/misc:

  CarbonTo	<name>
  CarbonFrom	<name>
  CarbonKludge  <kludge>
  [CarbonArea]	<areatag>

  # Carbon copyes. This is case unsensitive, but you must write full name!
  # If no CarbonArea specified message goes to BadArea.
  # Note! Carbon area must be local.

  [CarbonAndQuit]
  # Each message carbons only one time.
  
  # Example:

  # CarbonTo		Max Levenkov
  # CarbonArea		my.echomail

  # CarbonKludge	MSGID: 2:5000/117.
  # CarbonArea		written.by.points

  # CarbonKludge	REPLY: 2:5000/117.
  # CarbonArea		written.to.points

  # if reply to All...
  # CarbonKludge	REPLY: 2:5000/117
  # CarbonArea		my.echomail

  [PublicGroup {<groups>}]
  # this is a list of groups for public echo access
  # to lazy sysops who don't want write AccessGrp for each link

  [ignoreCapWord]
  # ignoring Capability Word in pkt files.
  # if some pkt moved to bad. this may help, but not recommended.
  # it is better to change old software.

  #
  # AreaFix Options:
  # 

  [areafixFromPkt]
  # process areafix requests on the fly. check "areafix", "areamgr" &
  # "hpt" keywords in toUserName field

  [areafixKillReports]
  # set kill/sent flag to areafix reports

  [areafixKillRequests]
  # kill areafix request after procession

  #
  # FileFix Options:
  # 

  [filefixKillReports]
  # set kill/sent flag to filefix reports

  [filefixKillRequests]
  # kill filefix request after procession

/etc/fido/ticker

  [FileSingleDescLine]
  # use a single, but long, line in files.bbs instead of multiple lines

  [FileCheckDest]
  # check destination of incoming TICs

  FileDescPos <position>
  # Indent descriptions in FILES.BBS by <DescPos> characters (not counting
  # LDescString!).

  FileLDescString <string>
  # This string is put before long descriptions in FILES.BBS. If it is not
  # set, it is set to a single space.

  [AddDLC]
  # add DownLoadCounter to new files in files.bbs

  DLCDigits <num>
  # number of digits for DownLoadCounter

  FileMaxDupeAge <days>
  # Entries in dupe database that are older than <MaxDupeAge> days are removed.

  FileLocalPwd <password>
  # This password is used for TICs directed to yourself (for hatching).


_used notation_

follows EBNF, to enhance readability, I skipped the doubleQuotes 
around strings where possible.


Additional to EBNF:

  {
  "line"
  } 

means: "line" can be repeated _including the new-line-characters_


_list of used Keywords_

Address AreaFixPwd AutoAreaCreate AutoAreaCreateDefault
BadArea BBSGrp BBSPwd
DialDelay domain DupeArea DupeCheck DupeHisory DupeHisoryDir
EchoArea
FileArea FileEcho FileFixPwd Flags
GroupDefault
inbound include
Link listinbound Location logFileDir
magic ModemAfterCall ModemConnect ModemDial ModemError ModemHangup 
ModemOK ModemPort ModemReset
Name NetmailArea Nodelist nodelistDir
Options outboand
pack Packer PackerDef Password Phone PhoneTrans PktPwd protinbound 
public
Route RouteFile RouteMail
Speed Sysop
Handle
TicGrp TicPwd TimeoutConnect TimeoutReset TossGrp
Unpack
version


_defined token_

<file> ::= a valid filename for the used operatin system

<path> ::= a valid pathname for the used operating system

<target> ::= (<aka>|"host"|"hub"|"boss"|"direct")

<defaultAddrerss> ::= <aka>

<linkAka> ::= <aka>

<aka> ::= <zone>:<net>/<node>[.<point>][@<domainName>]
 #           no wildcards allowed in zone,net,node,point

<linkWW> ::= <akaWithWildcards>

<akaWithWildcards> ::= 
[<zone>:[<net>/]]<node>[.<point>][@<domainName>] 
 #  * and ? wildcards allowed
 #   in zone,net,node,point

<msgbase> ::= squish|jam|rfc|feddi|...

<name> ::= [<letter>|<digit>|"-"|"_"]1*64

<pwd> ::= [<letter>|<digit>|"-"|"_"]1*8

<offset> ::= <hexValue>

<call> ::= <text>"$a"|"$f"[<text>]
 #           must be a valid command for the used
 #           command processor/shell

<flavour> ::= normal | crash | hold | direct | immediate

<matchcode> ::= [<hexValue>|"??"]1*

<domainName> ::= [<upperCaseLetter>|<digit>|"_"]1*8

<lowerCaseLetter> ::= "a"|"b"|"c"|"d"|"e"|"f"|"g"|"h"|"i"|
                      "j"|"k"|"l"|"m"|"n"|"o"|"p"|"q"|"r"|
                      "s"|"t"|"u"|"v"|"w"|"x"|"y"|"z" 

<upperCaseLetter> ::= "A"|"B"|"C"|"D"|"E"|"F"|"G"|"H"|"I"|
                      "J"|"K"|"L"|"M"|"N"|"O"|"P"|"Q"|"R"|
                      "S"|"T"|"U"|"V"|"W"|"X"|"Y"|"Z" 

<letter> ::= <upperCaseLetter> | <lowerCaseLetter> 

<digit> ::= "0"|"1"|"2"|"3"|"4"|"5"|"6"|"7"|"8"|"9" 

<hexDigit> ::= "A"|"B"|"C"|"D"|"E"|"F"|<digit>

<hexValue> ::= <hexDigit> <hexDigit> 

<otherSym> ::= ""|"#"|"$"|"%"|"&"|"'"|"("|")"|"*"|"+"|","|
               "-"|"."|"/"|":"|";"|"<"|"="|">"|"?"|"@"|"["|
               "\"|"]"|"^"|"_"|"`"|"{"|"|"|"}"|"~" 

<whiteSpace> ::= " "|<tab>

<text> ::= [<letter>|<digit>|<whiteSpace>|<oherSym>]1*

<unsignedInteger> ::= <digit> {<digit>} 

<integer> ::= ["-"] <unsignedInteger>

<zone> ::= <integer>
# valid range:  0..32767
<net> ::= <integer>     
# valid range: -1..32767
<node> ::= <integer>  
# valid range: -1..32767
<point> ::= <integer>   
# valid range:  0..32767


_EBNF symbols_

<> Enclose term names 

| Separates alternatives (exclusive OR) 

[] Term enclosed is optional (not used or used once) 

{} Term enclosed is used zero or more times 

() Enclose groups of alternative terms 

[]n*m Term enclosed is used n to m times

[]n* Term enclosed is used n or more times



_todo_

define regular expressions as wildcards in zone,net,nodeNr,point
check definition of keywords,options
samples
sample data structure for C
sample config-file-parser for C


_some remarks about ifcico_

my definition of:
  nodelistDir
  nodelist
  public
is not identical to ifcico's.