tshelper - Telnet server helper for IRC services and server developers

tshelper is a small program that can be used in place of telnet or netcat
to open a raw datastream to an IRC server.  tshelper provides some
functionality that makes it far easier on the developer than telnet or
netcat, including:
1.  Silent handling of PING (both the 1 parameter prefixless version and
    the 2 parameter prefixed version).  This can be disabled if a user wishes
    to handle PING him or her self.
2.  tee-like logging of all data sent to or received from the IRC server.
3.  Full IPv6 and UNIX domain socket support to connect to the server, as
    well as vhost (bind ip) support.
4.  An optional script file, listing all commands that would be sent to
    the server after it connects.  Each command is listed per line, and
    # comments are permitted (provided the # character is in the very
    first column of a line).
5.  Easy marking of all text by a 4 character prefix.  '*** ' marks text
    generated by the tshelper program itself, '<== ' marks text received
    from the IRC server, '==> ' marks text sent to the IRC server from
    user input, and 'S=> ' marks text sent to the server from the script
    file.  This marking makes it easier to follow the data stream.
6.  A control code usable in the interactive interface and in the script
    file that is replaced with the current timestamp (in UNIX epoch format)
    before being sent to the server.  This can vastly simplify developers
    work and efforts.  The control code is CTRL-K.
7.  A control code usable in the interactive interface and in the script
    file to force a blank line to be sent to the server.  This is needed
    for interacting with certain non-IRC protocols.  The control code is
    CTRL-E.
8.  Unique exit codes for each type of error situation, useful in a shell
    script or another program via system():
    0  - Successful completion (EOF from user)
    1  - Syntax error on the command line
    2  - DNS lookup error for the target hostname
    3  - Connection error (in connect())
    4  - Connection error (in select())
    5  - Read error from server
    6  - Read error from STDIN (shouldn't be possible)
    7  - The user or server tried to use too long of a line, 512 bytes per
         RFC1459
    8  - Write error to server
    9  - Logfile error
    10 - DNS lookup error for the vhost/bind hostname
    11 - Binding error for the vhost/bind ip
    12 - Script file error
    13 - EOF from server, the server closed the link without a read() error

tshelper is written by W. Campbell <wcampbel@botbay.net> with some code
from Sentinel (also by W. Campbell) and FreeBSD's whois client.

NOTE:  If there is a better suggestion for a control code rather than CTRL-K,
       please tell me so.

WARNING:  The author is not responsible for any problem this program
          may cause, or the behavior of any user of this program.
          tshelper is provided 'AS IS' with no warranty or liability.

# $Id: README,v 1.7 2004/01/12 20:31:38 wcampbel Exp $
