hatch - a tool for hatching files into Fidonet file areas

HATCH is free software; you can redistribute it and/or modify it
under the terms of the GNU General Public License as published by the
Free Software Foundation; either version 2, or (at your option) any
later version.

HATCH is distributed in the hope that it will be useful, but
WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
General Public License for more details.

You should have received a copy of the GNU General Public License
along with HATCH; see the file COPYING. If not, write to the Free
Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.

0. Contents
-----------

1. Description
2. Installation
3. Disclaimer
4. To Do List

1. Description
--------------

This program does two things. First, it stores the given file
in the fidonet outbound directory and it creates a tic file.

Tick files have the following syntax and semantic:
 
 Area <file area>
 Origin <this node or point>
 From <this node or point>
 To <name of bossnode>, <boss node>
 File <filename>
 Desc <description for announcing>
 Created <signature of the hatch program>
 Path <this node or point>
 Seenby <this node or point>
 Crc <CRC32 over whole file>
 Pw <password>

A sample tick file is the following
 
 Area LINUXTXT
 Origin 2:2426/2120.12
 From 2:2426/2120.12
 To Andreas Braukmann, 2:2426/2120
 File DOMAIN.IN
 Desc Liste der IN-Domain's
 Created by Joey's VI
 Path 2:2426/2120.12
 Seenby 2:2426/2120.12
 Crc AFCE34DA
 Pw password

The program assumes that there is a file in ~fido called fileareas
which contains information about file areas, boss node, recipant...

The format is the following

 <file area>   <node>	<name of bossnode>

Example:
LINUXTXT	2:2426/2120	Andreas Braukmann

The fields are delimited by tabs or spaces.

hatch creates a tick file and a copy of the given file in the outbound
directory and adds these file to the .flo file.

2. Installation
---------------

You should at least have obtained the following files:

COPYING   - GNU Public License
README    - this file
Changes   - made changes between versions
Makefile  - data for make
config.h  - config header
crc.c     - calculates crc32
hatch.c   - main source code
samples   - directory with sample files

* Edit the Makefile and set USER and DEST to values you like

* Edit config.h

   #define FILEAREA_FILE "/usr/local/lib/fidonet/fileareas"

   This filearea file is needed, because you should be able to have
   more than one file area and also from different nodes. So it has to
   be noted somewhere.

   #define ALIASES_FILE "/usr/local/lib/fidonet/aliases"

   This is the alias file fidogate also uses. We need it to get the
   point number.

   #define PASSWDS_FILE "/usr/local/lib/fidonet/passwds"

   This file contains the passwords for ifcico. We need them, too. At
   Infodrom it's moved into a separate file, but it should also work
   with a global config file as a keyword exist.

   #define OUTBOUND "/var/spool/fidonet/outb"

   Here all the files go.

   #define FLO "flo"

   The suffix for the flo files. At Infodrom we use "flo", but you
   might want to have "FLO"

* run 'make' to compile hatch as any user and/or run 'make install' as root, e.g.
  `su' before executing to install the program.

3. Disclaimer
-------------

I wrote this program to easily hatch some files into the LinuxNet
(Europe).

This program comes with absolute no warrenty. Use on you own risc.

Please report errors, additions, greetings to me. Flames may go to
/dev/null.

I'm interested in some hints what should changed to run with binkley
and ifmail, too. So if you have that running, please contace me.

	Usenet:   Martin.Schulze@Infodrom.North.DE (preferred)
	Internet: Martin.Schulze@Informatik.Uni-Oldenburg.DE
	Fidonet:  Martin Schulze @ 2:2426/2120.12

4. To Do List
-------------

* It might be insecure, but ver 0.2 doesn't notice any other actions
  to flo files. so you have to be sure that it's the only programm
  that has write access to it. [file locking]

* At the moment, no logging is made. This should change in the next
  versions

