HTICK
*****

This document describes HTICK 1.0, a Fidonet Fileecho Processor for
OS/2, Windows, BeOS and Unix.

1 An Overview of HTICK
**********************

HTICK is a Fidonet file areas tosser with filefix. Now project
supported by Husky Development Team.

   Features of HTICK:
  1. tossing file areas

  2. filefix (on the fly, from command line, limit for areas...)

  3. autocreate on the fly

  4. forward requests

  5. posting to net & echo areas

  6. pause and autopause for links

  7. groups & levels for personal and public access to file areas

  8. security check of tossgroup

  9. dupe checking

 10. link defaults

 11. much, much more :)

   The advantages of HTICK are:

  1. Open Source (GPL)

  2. many supported platforms & operating systems

  3. quick bug fixing

2 Installation Procedures and Release Notes
*******************************************

This chapter provides you with information that is necessary to
successfully install and use HTICK.

   I suppose, that you already has compiled binaries. If not - read
"Download" or "Compile the Source Code" chapters.

  1. Read FIDOCONFIG documentation about location of config-file

  2. Edit config files for your purposes

  3. Run `tparser' from FIDOCONFIG package to test your config (read
     about `PublicGroup' or `AccessGrp' if you want to use groups for
     `FileEchoAreas')

  4. It is simply, isn't it? Enjoy! :-)

2.1 Download the Source Code & Binary Files
===========================================

Main page (source code, win32 & os/2 releases) - `http://husky.sf.net/htick.html'

Win32 bins (current, russian) - `http://hpt-bin.narod.ru'

2.2 Compiling the Source Code
=============================

1. The smapi and fidoconf packages are required for htick.

   2. Put the fidoconfig ans smapi packages to the directory where the
 other packages of fido linux reside:

/usr/src/packages/

-> smapi/

-> htick/

-> fidoconfig/

   3. Compile and install smapi and fidoconf packages. Use "Makefile"
for    dynamic executables and makefile.lnx (or what you need) for
static    ones.

   4. Compile and install HTICK:
$ make

$ make install
   You should use the _same_ makefiles in smapi, fidoconf and htick.

2.3 Support
===========

There are numerous reasons why you might wish to establish contact with
developers.

  1. You have decided to use HTICK on a regular basis. In this case,
     please do send a netmail at the address listed below.

  2. You have a general questions on how to configure or on how to use
     a certain feature of HTICK. In other words, you need support. In
     this case, you'd best post your question to one of the following
     echos:

    `FIDOSOFT.HUSKY'
          The international Husky conference. English is the preferred
          language here.

    `RU.HUSKY'
          This Russian echo covers Husky Project.

     If you do not have access to any of these echos, you may of course
     also contact developers via netmail or e-mail at the addresses
     listed below.

  3. You want to report a bug. There are two sorts of bugs:

       a. Normal bugs.  You think that a certain function of HTICK does
          not work as expected, e.g. it is producing garbage, or doing
          strange things, or similar. In this case, either post to the
          echos listed above, or contact developers via netmail. Please
          do supply all information that is necessary to understand
          your problem.

       b. Fatal bugs.  A fatal bug occurs if HTICK crashes. Depending
          on your operating system, the symptom might be a core dump,
          or a SYS 3175, or a general protection fault, or a system
          lockup, or a spontaneous reboot. I do consider a crash
          untolerable. No matter how stupid things you do, you should
          not be able to crash HTICK.

          If you are experienced user and get core dump, you can send
          developers gdb report. If you have a crash, locate `core'
          file that has been generated. Then run $ gdb htick core, type
          where. HTICK must be compiled with debug information (DEBUG=1
          in `huskymak.cfg' file).  Then send report to addresses below.

          If you are running any other binary version (like Windows),
          you will not get a core file on a crash. Write down as much
          information as you can, try to find a way to reproduce the
          crash and contact me at the addresses below. We need log-file
          with `loglevels 1-0A-Za-z'.

  4. You want to contribute to HTICK.  If you are a programmer and have
     fixed a problem in HTICK on your own, please submit your changes
     to me. The preferred way for doing so is to send to developers a
     difference file in GNU diff format (with -c parameter).  Your work
     will be highly appreciated and honored in an appropriate place.
     If you want to regularly work on HTICK, we also have a CVS server
     online that you can have access to if you like.

     If you want to write a new feature for HTICK, please contact
     developers beforehand to avoid that we do duplicate work. Again, I
     will appreciate and honor any efforts done by you. Please note
     that for writing a HTICK enhancement, you should be familiar with
     C. Also, HTICK uses a special indentation style throughout the
     source code, that I would like you to adhere to.

   So here are developers addresses if you want to get in contact with
us:

   * Fidonet: Max Chernogor @ 2:464/108

   * e-mail: mche@ua.fm

   * Fidonet: Stas Degteff @ 2:5080/102.1

   * e-mail: stas_degteff@users.sf.net

3 HTICK 1.0 Command Line OPTIONS and SWITCHES
*********************************************

To get help about the command line syntax, use HTICK without any
arguments

3.1 Configuration Reference
===========================

4 HTICK 1.0 Configuration Reference
***********************************

HTICK is based on FIDOCONFIG library, so read documentation of
FIDOCONFIG about location of config file and keywords ideology.

4.1 Keywords
============

4.1.1 FileAreaBaseDir
---------------------

Syntax:
     `FileAreaBaseDir <directory>'

Example:
     `FileAreaBaseDir /var/spool/fido/fileareas'

   Where the directories for all Fileareas shall be made at autocreate.
Same as MsgBaseDir.

   This statement cannot be repeated.

4.1.2 PassFileAreaDir
---------------------

Syntax:
     `PassFileAreaDir <directory>'

Example:
     `PassFileAreaDir /var/spool/fido/transit'

   Where shall be put files from Passthrough File areas (and TICs, if
ticOutbound is not defined).

   This statement cannot be repeated.

4.1.3 FileDescPos
-----------------

Syntax:
     `FileDescPos <number>'

Example:
     `FileDescPos 13'

   The number of spaces to indent long descriptions in FILES.BBS.
Recommend: 13 (8.3+space)

   This statement cannot be repeated.

4.1.4 fileLDescString
---------------------

Syntax:
     `fileLDescString <string>'

Example:
     `fileLDescString ">"'

   This string is put before long descriptions in FILES.BBS (Usually
">" or "+".).  Default value: single space.

   This statement cannot be repeated.

4.1.5 FileFixHelp
-----------------

Syntax:
     `FileFixHelp <string>'

Example:
     `FileFixHelp /usr/local/fido/filefix.hlp'

   Help file for FileFix, same as AreaFixHelp for AreaFix

   This statement cannot be repeated.

4.1.6 ExecOnFile
----------------

Syntax:
     `ExecOnFile <filearea> <filemask> <command>'

Example:
     `ExecOnFile husky *.diff /usr/local/fido/update_source.sh'

   Execute some command on receiving file.  Command gets full filepath
as parameter (space and file pathname should be appended to command
string before execution).

   This statement cannot be repeated.

4.1.7 SaveTic
-------------

Syntax:
     `SaveTic <FileEchoMask> <FileOption> <DirToSaveTic>'

Example:
     `ExecOnFile husky -l /usr/local/husky'

<DirToSaveTic>
     where put TIC for fileecho[es] <FileEchoMask>

<FileOption>
     save files with tics. May be:

    empty
          files will not be copied

    `-l'
          link files from fileechodir to <DirToSaveTic>

    `-c'
          copy files from fileechodir to <DirToSaveTic>

     Options `-l' and `-c' work only for non-Passthrough file echos

   This statement cannot be repeated.

4.1.8 MaxTicLineLength
----------------------

Syntax:
     `MaxTicLineLength <number>'

Example:
     `MaxTicLineLength 79'

   Set maximum line length in outgoing TICs to number.

   This statement cannot be repeated.

4.1.9 BusyFileDir
-----------------

Syntax:
     `BusyFileDir <directory>'

Example:
     `BusyFileDir /var/spool/fido/htick.busy/'

   Where shall be put TICs for busy links (default <outbound>/busy.htk).

   This statement cannot be repeated.

4.1.10 ConvertLongNames
-----------------------

Syntax:
     `ConvertLongNames <Upper|Lower|DontTouch>'

Example:
     `ConvertLongNames DontTouch'

   What to do with long names when toss or hatch.  Saying 'long name'
we mean a mixed cased name or a name longer than 8.3

   This statement cannot be repeated.

4.1.11 ConvertShortNames
------------------------

Syntax:
     `ConvertShortNames <Upper|Lower|DontTouch>'

Example:
     `ConvertShortNames DontTouch'

   What to do with short names when toss or hatch.  Saying 'short name'
we mean a DOS-like name: 8.3, without mixed case.

   This statement cannot be repeated.

4.1.12 addDLC
-------------

Syntax:
     `addDLC <bool>'

Example:
     `addDLC yes'

   Add Download counters ([000]) to files.bbs. Use with DLCDigits only!

   This statement cannot be repeated.

4.1.13 DLCDigits
----------------

Syntax:
     `DLCDigits <number>'

Example:
     `DLCDigits 4'

   How much digits DLC must be. DLC has [000] form.

   This statement cannot be repeated.

4.1.14 ticOutbound
------------------

Syntax:
     `ticOutbound <directory>'

Example:
     `ticOutbound /var/spool/fido/ticOub'

   TICs are stored here and killed after transmission. Default: use
PassFileAreaDir value

   This statement cannot be repeated.

4.1.15 filefixKillReports
-------------------------

Syntax:
     `filefixKillReports <bool>'

Example:
     `filefixKillReports yes'

   Set kill/sent flag to filefix replies.

   This statement cannot be repeated.

4.1.16 filefixKillRequests
--------------------------

Syntax:
     `filefixKillRequests <bool>'

Example:
     `filefixKillRequests yes'

   Kill filefix request after processing.

   This statement cannot be repeated.

4.1.17 bbsarea
--------------

Syntax:
     `bbsarea <name> <bbsareapath>'

Example:
     `bbsarea bbs /var/spool/fido/fileareas/bbsarea'

   File area without subscribing, not shown in filefix reports.  Use
for fileleist generation only ("htick filelist" command).

   This statement cannot be repeated.

4.1.18 fileDescName
-------------------

Syntax:
     `fileDescName <name>'

Example:
     `fileDescName file_id.diz'

   If no LDESC defined in tic file, use <name> file from archive fill it
(usually file_id.diz). 'unpack' action should be defined for archive
and contain `$f' parameter.

   This statement cannot be repeated.

4.1.19 FileAreaCreatePerms
--------------------------

Syntax:
     `FileAreaCreatePerms <mode>'

Example:
     `FileAreaCreatePerms 644'

   Define permissions for newly created filearea directories (UNIX only)

   This statement cannot be repeated.

4.1.20 FileFixFromName
----------------------

Syntax:
     `FileFixFromName <string>'

Example:
     `FileFixFromName <string>'

   Originator name in filefix replies.

   This statement cannot be repeated.

4.1.21 AutoFileCreateFlag
-------------------------

Syntax:
     `AutoFileCreateFlag <file>'

Example:
     `AutoFileCreateFlag /usr/local/fido/flags/new_filearea'

   Create flag when filearea has been autocreated.

   This statement cannot be repeated.

4.1.22 FileFixNames
-------------------

Syntax:
     `FileFixNames <string>'

Example:
     `FileFixNames allfix filefix htick'

   Set of names separated by space on which FileFix will respond

   This statement cannot be repeated.

4.2 Link Keywords
=================

4.2.1 fileEchoFlavour
---------------------

Syntax:
     `fileEchoFlavour <hold|normal|crash|direct|immediate>'

Example:
     `fileEchoFlavour direct'

   This statement sets the flavour which outgoing files in fileechos
for this link get.  For example set `fileEchoFlavour' to hold for
points and to crash for uplinks.

   This statement can only be repeated for different links.

4.2.2 fileAreaDefaults
----------------------

Syntax:
     `fileAreaDefaults <options> [links]'

Example:
     `fileAreaDefaults -lw 100 -g Z 2:5097/31.1'

   Set defaults for filearea definitions that follow. All options are
possible, Set defaults for filearea definitions that follow. All
options are possible, except areatag and path.  Settings in the
filearea definition override `fileAreaDefaults' See also
echoAreaDefaults (hpt). Defaults are switched off with
empty `fileAreaDefaults'.

   This statement can only be repeated for different links.

4.2.3 RemoteFileRobotName
-------------------------

Syntax:
     `RemoteFileRobotName <name>'

Example:
     `RemoteFileRobotName allfix'

   Name of remote filefix robot (need for FileForwardRequest)

   This statement can only be repeated for different links.

4.2.4 noTIC
-----------

Syntax:
     `noTIC <bool>'

Example:
     `noTIC yes'

   Disable TIC File Creation

   This statement can only be repeated for different links.

4.2.5 autoFileCreate
--------------------

Syntax:
     `autoFileCreate <on|off>'

Example:
     `autoFileCreate on'

   Allow or deny autocreating fileechoes received from this link.

   This statement can only be repeated for different links.

4.2.6 AutoFileCreateFile
------------------------

Syntax:
     `AutoFileCreateFile <file>'

Example:
     `AutoFileCreateFile /usr/local/fido/hpt/config.filefix'

   Specifies the file new filearea definitions will be placed into

   This statement can only be repeated for different links.

4.2.7 AutoFileCreateDefaults
----------------------------

Syntax:
     `AutoFileCreateDefaults <string>'

Example:
     `AutoFileCreateDefaults -lw 100 -g Z'

   Specifies the new filearea defaults.

   This statement can only be repeated for different links.

4.2.8 AutoFileCreateSubdirs
---------------------------

Syntax:
     `AutoFileCreateSubdirs <on|off>'

Example:
     `AutoFileCreateSubdirs on'

   Whether to autocreate areas like /filebase/gfd.app.edit (off) or
/filebase/gfd/app/edit (on).  If you want to configure this globally
instead of on per-link basis, set this in the deflink section. For more
information see 'AutoAreaCreateSubdirs' in the hpt manual.

   This statement can only be repeated for different links.

4.2.9 delNotRecievedTIC
-----------------------

Syntax:
     `delNotRecievedTIC <on|off>'

Example:
     `delNotRecievedTIC on'

   If file not received, then remove TIC

   This statement can only be repeated for different links.

4.2.10 FileFixFSC87Subset
-------------------------

Syntax:
     `FileFixFSC87Subset <on|off>'

Example:
     `FileFixFSC87Subset on'

   This boolean switch will change on a per link basis how TIC files
are processed. By default this switch is ON. htick will then operate
only on FSC87-compliant keywords and ignore unknown keywords in the TIC
file processed. If this switch is set to OFF all implemented keywords
will be used which can (and, in interaction with some tick processors,
WILL) lead to severe problems.  Unknown keywords found in a TIC file
will make htick stop processing that file. If you don't know what all
this is about set FileFixFSC87Subset to ON for all your links. It won't
hurt.

   This statement can only be repeated for different links.

4.2.11 TickerPackToBox
----------------------

Syntax:
     `TickerPackToBox <on|off>'

Example:
     `TickerPackToBox on'

   If link has file box - toss files and tics there

   This statement can only be repeated for different links.

4.2.12 LinkFileBaseDir
----------------------

Syntax:
     `LinkFileBaseDir <directory>'

Example:
     `LinkFileBaseDir /usr/local/fido/fileareas/2.5097.64.0'

   Where autocreated fileareas will be placed (may be "passthrough")

   This statement can only be repeated for different links.

4.2.13 ForwardFileRequests
--------------------------

Syntax:
     `ForwardFileRequests <on|off>'

Example:
     `ForwardFileRequests on'

   Allow file areas subscribe requests forward to this link.

   This statement can only be repeated for different links.

4.2.14 ForwardFilePriority
--------------------------

Syntax:
     `ForwardFilePriority <number>'

Example:
     `ForwardFilePriority 1'

   Priority in uplinks order for filearea subscribing forward-requests

   This statement can only be repeated for different links.

4.2.15 ForwardFileRequestFile
-----------------------------

Syntax:
     `ForwardFileRequestFile <file>'

Example:
     `ForwardFileRequestFile /usr/local/fido/hpt/uplink1.lst'

   List of available fileareas from this link

   This statement can only be repeated for different links.

4.2.16 FileFixEchoLimit
-----------------------

Syntax:
     `FileFixEchoLimit <number>'

Example:
     `FileFixEchoLimit 10'

   Area subscribe limit (max fileareas number this link is allowed to
subscribe to)

   This statement can only be repeated for different links.

4.3 FileArea Definition
=======================

4.3.1 FileArea
--------------

Syntax:
     `FileArea <name> <fileareapath> [options] <uplink> <downlinks>'

Example:
     `FileArea husky /var/spool/fido/fileareas/husky -a 2:5097/31 -p 28
     -g Z -d "HUSKY fileecho" 2:5097/64 2:5097/303'

   Same as EchoArea, most options are valid:

   a) -a <address>  Our own address

   b) -lr <number>  "Read level": Min link level for sending files from
this filearea to this link.

   c) -lw <number>  "Write level": Min link level allowed to post into
this filearea files received from link.

   d) -h            Hide area (non visible in %LIST and in announce)

   e) -manual       Disallow remote subscribe (disable subscribe
areafix command).

   f) -mandatory    Disallow remote unsubscribe (disable unsubscribe
areafix command).

   g) -sendorig     Set: send files from PassFileAreaDir for non
passthrough areas.

   h) -nopause      %PAUSE has no effect to this filearea

   j) -noCRC        Disable CRC check for incoming files

   k) -g <group>    Group for this filearea

   l) -d "<string>" Description for this filearea

   m) -noreplace    Don't replace exisiting files in this filearea.

   n) -nodiz	 Do not try to get file description from
<fileDescName> (for packed files).

   o) -p <integer>  Purge after n days. Setting to 0 to disables
purging.