dircproxy(1) | General Commands Manual | dircproxy(1) |
dircproxy - Detachable Internal Relay Chat Proxy Server
dircproxy [-hvDI] [-f config_file] [-P listen_port] [-p pid_file]
dircproxy is an IRC proxy server designed for people who use IRC from lots of different workstations or clients, but wish to remain connected and see what they missed while they were away.
You connect to IRC through dircproxy, and it keeps you connected to the server, even after you detach your client from it. While you're detached, it logs channel and private messages as well as important events, and when you re-attach it'll let you know what you missed.
This can be used to give you roughly the same functionality as using ircII and screen(8) together, except you can use whatever IRC client you like, including X ones!
Authentication is provided by a password, and optional hostname checking. This links it to a connection class specified in the configuration file. Only one user may use a connection class at one time, when that user detaches, the connection to the server is kept open. When someone (usually the user) subsequently connects to dircproxy and provides the same password, they are reconnected to the connection to the server, instead of having a new connection created for them.
Multiple connection classes can be defined, allowing multiple people to use the same proxy.
dircproxy can use either a .dircproxyrc file in the user's home directory, or a system-wide dircproxyrc file. It will load the first it finds (home directory first, then system-wide). If no configuration file is specified, it will not start.
The configuration file has the following format:
Empty lines and lines starting with '#' are comments.
Connection classes start with 'connection {' and end with '}'. They obtain default values from all the entries above them in the configuration file, and may contain values of their own.
Otherwise a line is of the format 'keywords arguments'. If the argument contains spaces it should be contained in double quotes ('"with spaces"'). The possible keywords and their meanings are as follows (note that the configuration file is not case-sensitive):
LOCAL OPTIONS
These options may not be placed inside a connection class as they affect the operation of the entire dircproxy server.
This can be a numeric port number, or a service name from /etc/services
none = Don't write pid file
GLOBAL OPTIONS
These options may be placed in a connection class, or outside of one. If they are outside then they only affect those connection classes defined afterwards.
This can be a numeric port number, or a service name from /etc/services
0 = iterate forever
0 = iterate forever. This isn't recommended.
yes = send keepalive probes
no = don't send keepalive probes
0 = don't send PINGs
For this you specify a number of bytes, then optionally a time period in seconds seperated by a colon. If the time period is ommitted then per second is assmued.
server_throttle 10 # 10 bytes per second
server_throttle 10:2 # 10 bytes per 2 seconds (5 per second)
0 = do not throttle the connection
yes = Automatically connect to the first server
no = Wait for a /DIRCPROXY JUMP from the client
-1 = Don't rejoin
0 = Immediately
yes = Leave them
no = Remain on them
yes = Rejoin the channels dircproxy automatically left
no = Leave permanently on detach
0 = Don't reset idle time
yes = Yes, disconnect
no = No, don't let me on
yes = Close session on disconnection
no = Stay connected to server until reattachment
Set to "" to not set any modes.
Set to "" to not drop any modes.
A good setting for many people would be "+r", as most servers use that to mean your connection is restricted. Don't set it to this if you're on DALnet however, DALnet uses +r to indicate you have registered with NickServ (gee, thanks guys!).
Set to "" to not refuse any modes.
none = Do not bind any specific hostname
none = Do not set an away message for you
none = Use dircproxy version number as QUIT message
none = Do not announce attachment
none = Do not announce detachment
none = Leave nickname as it is
yes = try to keep my nickname while I'm disconnected
no = if it changes, leave it
yes = reply to ctcp messages while client is detached
no = nothing but silence
yes = Channel text is logged to files
no = Channel text is NOT logged to files
This only applies if 'chan_log_enabled' is 'yes'.
yes = Log channel text while offline and online
no = Log channel text only while offline
This only applies if 'chan_log_enabled' is 'yes'.
0 = No limit to log files
This only applies if 'chan_log_enabled' is 'yes'.
-1 = Recall the whole log (not recommended if chan_log_always is yes)
0 = Don't automatically recall anything
This applies to ordinary channel logs if 'chan_log_enabled' is 'yes' and also to the permanent copy if 'chan_log_copydir' is set to something other than 'none'.
yes = Include timestamp
no = Do not include timestamp
This does mean that the time itself won't be displayed in the log files themselves, a timestamp is in place instead. This may cause problems if you're doing things with the log files yourself.
yes = Do fancy relative timestamping
no = Do normal timestamping
If you do define it, it'll add to each log as you use it. If you start with "~/" then it will use a directory under your home directory.
This is done regardless of the 'chan_log_enabled' and 'chan_log_always' options, although if those are off then you won't get that text recalled to your client, despite it being in this file. The timestamping options do apply however.
none = Do not make a permanent copy
The program can be anywhere in your $PATH, or you can start it with "~/" if its in a directory under your home directory.
This is done regardless of the 'chan_log_enabled' and 'chan_log_always' options.
none = Do not pipe log messages to a program
yes = Server/private messages are logged to files
no = Server/private messages are NOT logged to files
This only applies if 'other_log_enabled' is 'yes'.
yes = Log server/private messages while offline and online
no = Log server/private messages only while offline
This only applies if 'other_log_enabled' is 'yes'.
0 = No limit to log file
This only applies if 'other_log_enabled' is 'yes'.
-1 = Recall the whole log (not recommended if other_log_always is yes)
0 = Don't automatically recall anything
This applies to the server/private message log if 'other_log_enabled' is 'yes' and also the permanet copy if 'other_log_copydir' is set to something other than 'none'.
yes = Include timestamp
no = Do not include timestamp
This does mean that the time itself won't be displayed in the log files themselves, a timestamp is in place instead. This may cause problems if you're doing things with the log files yourself.
yes = Do fancy relative timestamping
no = Do normal timestamping
If you do define it, it'll add to the log as it uses it. If you start with "~/" then it will use a directory under your home directory.
This is done regardless of the 'other_log_enabled' and 'other_log_always' options, although if those are off then won't get that text recalled to your client, despite it being in this file. The timestamping options do apply however.
none = Do not make a permanent copy
The program can be anywhere in your $PATH, or you can start it with "~/" if its in a directory under your home directory.
This is done regardless of the 'other_log_enabled' and 'other_log_always' options.
none = Do not pipe log messages to a program
0 = Don't adjust log timestamps.
Example, to just log text and action's:
log_events "none,+text,+action"
Example, to log everything but server messages:
log_events "all,-server"
# you don't need to specify 'all'
log_events -server
The possible events are:
text
Channel text and private messages
action
CTCP ACTION events (/me) sent to you or channels
ctcp
Whether to record whether a CTCP was sent to you
join
People (including you) joining channels
part
People (including you) leaving channels
kick
People (including you) being kicked from channels
quit
People quit''ing from IRC
nick
People (including you) changing nickname
mode
Changes in channel modes or your own personal mode
topic
Changes to the channel topic
client
You detaching and attaching
server
Connections and disconnections from servers
error
Problems and errors dircproxy encounters (recommended!)
yes = Proxy incoming requests.
no = Do not proxy incoming requests.
yes = Proxy outgoing requests.
no = Do not proxy outgoing requests.
It is a comma seperated list of port numbers or ranges of ports, for example '57100-57199,57400,57500,57600-57800'
any = Use any port given to us by the kernel.
yes = Send reject CTCP message back.
no = Do not send any message back.
yes = Send as fast as possible.
no = Wait for each packet to be acknowledged.
If start with "~/" then it will use a directory under your home directory.
none = Do not capture files.
yes = Capture even when a client is connected.
no = Capture only when client detached.
yes = Start with nickname.
no = Do not alter the filename.
0 = No limit to file size.
See the README.dcc-via-ssh file included with the dircproxy distribution for more information.
This can be a numeric port number, or a service name from /etc/services
none = There is no tunnel.
See the README.dcc-via-ssh file included with the dircproxy distribution for more information.
This can be a numeric port number, or a service name from /etc/services
none = There is no tunnel.
This is most useful if you are sysadmin running a dircproxy server for multiple people and want them to all appear as different usernames without using a hacked identd. Because dircproxy is still running as root, it will have those privileges for all operations, including the bind(2) for the 'local_address' config option if you're using Secure Linux patches.
This can only be used if your system supports seteuid(2) and if you are running dircproxy as the root user, and not just setuid. Attempting otherwise will generate a warning as dircproxy starts.
This can be a numeric uid or a username from /etc/passwd.
none = Do not do this.
yes = Show me the pretty logo
no = I don't like logos, I'm boring, I eat llamas.
none = No custom motd
yes = Show the stats
no = They don't interest me, don't show them.
yes = Command enabled
no = Command disabled
yes = Command enabled
no = Command disabled
yes = Can jump to any server
no = Only ones in the config file
yes = Command enabled
no = Command disabled
yes = Command enabled
no = Command disabled
yes = Command enabled
no = Command disabled
yes = Command enabled
no = Command disabled
Additionally, the following keywords may go only inside a connection class definition. One 'password' and at least one 'server' (unless 'server_autoconnect' is 'no' and 'allow_jump_new' is 'yes') are mandatory.
You can use the included dircproxy-crypt(1) utility to generate these passwords.
[hostname[:[port][:password]]
Note: You must surround the list of channels with quotes to distinguish from comments.
For clarification, this is the format of this line:
join "channel[ key][,channel[ key]]..."
dircproxy will reread its configuration file whenever it receives the hangup signal, SIGHUP.
Sending an interrupt signal, SIGINT, or a terminate signal, SIGTERM, will cause dircproxy to exit cleanly.
More information, including announcements of new releases, can be found at:
http://www.dircproxy.net/
Please submit and review bug reports at:
http://bugzilla.dircproxy.net/
Written by Scott James Remnant <scott@netsplit.com>.
Copyright (C) 2002 Scott James Remnant. All Rights Reserved. dircproxy is distributed under the GNU General Public License.
11 Jan 2001 |