HTICK
*****

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

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

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! :-)

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

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.

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

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

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

Configuration Reference
=======================

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

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

Keywords
========

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.

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.

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.

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.

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.

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.

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.

MaxTicLineLength
----------------

Syntax:
     MaxTicLineLength <number>

Example:
     MaxTicLineLength 79

Set maximum line length in outgoing TICs to number.

This statement cannot be repeated.

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.

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.

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.

addDLC
------

Syntax:
     addDLC <bool>

Example:
     addDLC yes

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

This statement cannot be repeated.

DLCDigits
---------

Syntax:
     DLCDigits <number>

Example:
     DLCDigits 4

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

This statement cannot be repeated.

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.

filefixKillReports
------------------

Syntax:
     filefixKillReports <bool>

Example:
     filefixKillReports yes

Set kill/sent flag to filefix replies.

This statement cannot be repeated.

filefixKillRequests
-------------------

Syntax:
     filefixKillRequests <bool>

Example:
     filefixKillRequests yes

Kill filefix request after processing.

This statement cannot be repeated.

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.

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.

FileAreaCreatePerms
-------------------

Syntax:
     FileAreaCreatePerms <mode>

Example:
     FileAreaCreatePerms 644

Define permissions for newly created filearea directories (UNIX only)

This statement cannot be repeated.

FileFixFromName
---------------

Syntax:
     FileFixFromName <string>

Example:
     FileFixFromName <string>

Originator name in filefix replies.

This statement cannot be repeated.

AutoFileCreateFlag
------------------

Syntax:
     AutoFileCreateFlag <file>

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

Create flag when filearea has been autocreated.

This statement cannot be repeated.

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.

Link Keywords
=============

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.

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.

RemoteFileRobotName
-------------------

Syntax:
     RemoteFileRobotName <name>

Example:
     RemoteFileRobotName allfix

Name of remote filefix robot (need for FileForwardRequest)

This statement can only be repeated for different links.

noTIC
-----

Syntax:
     noTIC <bool>

Example:
     noTIC yes

Disable TIC File Creation

This statement can only be repeated for different links.

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.

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.

AutoFileCreateDefaults
----------------------

Syntax:
     AutoFileCreateDefaults <string>

Example:
     AutoFileCreateDefaults -lw 100 -g Z

Specifies the new filearea defaults.

This statement can only be repeated for different links.

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.

delNotRecievedTIC
-----------------

Syntax:
     delNotRecievedTIC <on|off>

Example:
     delNotRecievedTIC on

If file not received, then remove TIC

This statement can only be repeated for different links.

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.

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.

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.

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.

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.

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.

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.

FileArea Definition
===================

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.