TrickyIRC 1.1.0 By Trolld (troll@digitalspark.net)

Table of Contents:
1. What does TrickyIRC do?
2. Features
3. Configuring
4. Security
5. Known Issues
6. Commands/Authorizing
7. Supported/Test Clients
8. Feedback
9. More Information

--- 1. What does TrickyIRC do?
Quick Description: It's like screen and BNC wrapped into one program.

TrickyIRC acts as an arbiter program between your IRC client of choice
and an IRC server.  You tell your client to connect to it, and then it
connects to the IRC server stored in its config file.  This is what
happens, if say, you were using ircII:

  ircII --> arbiter:7667 --> irc.cs.cmu.edu

Once connected, you're on IRC as per normal.  DCCs, etc work, the arbiter
is transparent.

Now, when you exit your client program, you don't actually disconnect
from IRC.  TrickyIRC remains connected, and waits for another client to 
connect to it, maintaining your IRC server connection.

Now lets say that you get home and you want to use BitchX, no problem. 
Just point it at the arbiter, and it will sync your new session up with 
the channels/etc that you're in.

Note: In the above case you do not have to disconnect from your work IRC
client.  TrickyIRC supports multiple clients connected to one IRC session.
Be warned, however, that what you type/send in one client won't show up in
the other client(s).  This is due to the way IRC works.

--- 2. Features
Current feature set in 1.0:
  Support for multiple clients
	You can connect as many as 20 clients (you can recompile it for
	more) at a time.
  Client add notification
	When a new client is connected, a message is sent out to all the
	clients on the bus.
  Auto reconnect to IRC server
	TrickyIRC will automatically attempt to reconnect until it is 
	killed.
  IRC server list
	Server list that is cycled through.

Planned features for 2.0:
  Private message logging
	Logs and saves private messages if it all your connected clients
	are marked as away.  Stores them until you clear them.
  Channel message ring buffer
	Saves the last n lines of all the joined channels and plays them
	back when a new client connects.
  Suspended playback
	Suspends playback of message log/buffer until you request it so
	you can do things like setup ircII's windows so the played back
	data is parsed properly, etc (meaning its not going to spooge your
	client with information instantly, you can tell it when you're
	ready).
  Better logging
	Log the remote IP address (and lookup the host name)
  Better security
	Add security modes and host.allow and host.deny files
  On-the-fly server changes
	Add a command that will allow you to connect to a specific server.

--- 3. Configuring
The first time TrickyIRC is run for a user, it does the following:
  Creates ~/.trickyirc/		(main directory)
  Creates ~/.trickyirc/logs	(log directory)
  Creates ~/.trickyirc/config	(default config file)

The config file is fairly simple, here are the various options:

  [Arbiter]
  ListenPort=		7667		# Port to use (default 7667)
  AuthPhrase=		password	# Default password

  [Servers]				# List of servers
  irc.server.com	6667
  irc.server2.net	6667

--- 4. Security
Currently TrickyIRC uses a pass phrase based authentication system, which
is defined in the config file.  This means that the program is only as
secure as you choose your pass phrase to be.  The best advice I can give
is pick a good pass phrase, and make sure your config file is  user-only
readable.

--- 5. Known Issues
The biggest problem I've hit so far is that the program fails to register
that the client disconnected if there is a break in the link (i.e.;
you're modem hangs up, etc).  This is related to TCP's design, but the
connection will timeout after a while.

--- 6. Commands/Authorizing
When you connect to TrickyIRC, it will prompt you for authorization.
Currently you must send a RAW line with your pass phrase.  Most IRC
clients use /quote or /raw to do this, example:

   /quote pass <password>

Once authorized, commands can be issued to TrickyIRC buy using the same
command (/raw or /quote, depending on client) in this fashion:

   /quote COMMAND <command>

Current commands are:

  TERM
	Kills TrickyIRC
  QUIT
	Disconnect from the IRC Server and cycles you to the next server.

--- 7. Supported/Tested Clients
Most all IRC clients should work, but here are the ones that have been
tested with TrickyIRC:

  RoxIRC (unix)
  ircII-EPIC (unix)
  ScrollZ (unix)
  XiRCON 1.0b4 (win32)

Please e-mail me if you have a client to add to the list (see below).

--- 8. Feedback
Please send me any feedback you have (troll@digitalspark.net).  If you've
discovered a bug, please check the web site's Known Bug section.  If it is
not listed, e-mail me, and include as much logging and info you can get so
I can reproduce it.

You may find it helpful to use the -d option which disables detaching from
the console, and enables console logging.

--- 9. More Information
You can get a hold of me via e-mail at
  troll@digitalspark.net

And the TrickyIRC web site at
  http://www.leb.net/~troll/
