dircproxy(1)

๐ŸŽ€ dircproxy(1) โ€” General Commands Manual ๐ŸŽ€

โœจ NAME โœจ

dircproxy โ€” Detachable Internal Relay Chat Proxy Server

๐ŸŒธ SYNOPSIS ๐ŸŒธ

dircproxy [-hvDI] [-f config_file] [-P listen_port] [-p pid_file]

๐Ÿ’– DESCRIPTION ๐Ÿ’–

Okay bestie, so dircproxy is an IRC proxy server made for people who use IRC from lots of different workstations or clients, but who want to stay connected and see what they missed while they were away. Literally main character energy for your IRC session. ๐Ÿ‘‘

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. No cap, that's the whole vibe. โœจ

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! Obsessed. ๐Ÿ’…

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. Slay, shared proxy era. ๐ŸŒˆ

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. That's not a vibe check you want to fail, bestie. ๐Ÿ˜ญ

๐Ÿ”ฅ OPTIONS ๐Ÿ”ฅ

  • -f config_file โ€” Specifies the configuration file to be used, overriding the default search list.
  • -h โ€” Displays a brief help message detailing the command-line arguments, then exits. Helpful lil bestie. ๐Ÿ’–
  • -v โ€” Displays the dircproxy version number, then exits.
  • -D โ€” Run in the foreground and do not fork into the background.
  • -I โ€” Use to indicate dircproxy is being run from the inetd(8) daemon. This implies -D. For more information on running dircproxy under inetd(8), see the README.inetd file. ๐Ÿ“„
  • -P listen_port โ€” Specifies an alternate port to use, overriding the default and any value specified in the configuration file. You can also add the IP-address of the adapter you want dircproxy to bind to, e.g.: 192.168.64.1:7007
  • -p pid_file โ€” Specifies a file to write the process id to, overriding the default and any value specified in the configuration file.

๐Ÿ› ๏ธ CONFIGURATION ๐Ÿ› ๏ธ

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

๐Ÿ‘‘ GLOBAL OPTIONS ๐Ÿ‘‘

These options may not be placed inside a connection class as they affect the operation of the entire dircproxy server.

  • listen_port โ€” What port should dircproxy listen for connections from IRC clients on?

This can be a numeric port number, or a service name from /etc/services. You can also enter the IP-address of the adapter you want dircproxy to bind to, e.g.: 192.168.64.1:7007

  • pid_file โ€” File to write the dircproxy process id to on startup. If you start this with a "~/" then it refers to a file in a directory under your home directory.
    • none = Don't write pid file
  • client_timeout โ€” Maximum amount of time (in seconds) a client can take to connect to dircproxy and provide their password and nickname etc. Tick tock, bestie. โณ
  • connect_timeout โ€” Maximum amount of time (in seconds) a client has to provide a server to connect to after they've logged in. This only applies if 'server_autoconnect' is 'no' for that class.
  • dns_timeout โ€” Maximum amount of time (in seconds) to wait for a reply from a DNS server. If the time exceeds this then the lookup is cancelled.

๐ŸŒผ LOCAL 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.

๐Ÿ”ฅ SERVER OPTIONS ๐Ÿ”ฅ

Options affecting the connection to the IRC server.

  • server_port โ€” What port do we connect to IRC servers on if the server string doesn't explicitly set one?

This can be a numeric port number, or a service name from /etc/services

  • server_retry โ€” How many seconds after disconnection or last connection attempt do we wait before retrying again?
  • server_maxattempts โ€” If we are disconnected from the server, how many times should we iterate the server list before giving up and declaring the proxied connection dead?
    • 0 = iterate forever
  • server_maxinitattempts โ€” On first connection, how many times should we iterate the server list before giving up and declaring the proxied connection dead?
    • 0 = iterate forever. This isn't recommended.
  • server_keepalive โ€” This checks whether the dircproxy to server connection is alive at the TCP level. If no data is sent in either direction for a period of time, a TCP keepalive probe is sent.
    • yes = send keepalive probes
    • no = don't send keepalive probes
  • server_pingtimeout โ€” For some people, dircproxy doesn't notice that the connection to the server has been dropped because the socket remains open. For example, those behind a NAT'd firewall. dircproxy can ping the server and make sure it gets replies back. If the time since the last reply was received exceeds the number of seconds below the server is assumed to be "stoned" and dircproxy leaves it. If you have a high latency connection to the server, it can wrongly assume the server is stoned because the PINGs don't arrive in time. Either raise the value, or use the 'server_keepalive' option instead.
    • 0 = don't send PINGs
  • server_throttle โ€” To prevent you from being flooded off the IRC network, dircproxy can throttle the connection to the server to prevent too much being sent within a certain time period.

For this you specify a number of bytes, then optionally a time period in seconds separated by a colon. If the time period is omitted then per second is assumed.

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
  • server_autoconnect โ€” Should dircproxy automatically connect to the first server in the list when you connect. If you set this to 'no', then 'allow_jump' is automatically set to 'yes'. If 'allow_jump_new' is also 'yes', then you can create connection classes with no 'server' lines.
    • yes = Automatically connect to the first server
    • no = Wait for a /DIRCPROXY JUMP from the client

๐Ÿฆ‹ CHANNEL OPTIONS ๐Ÿฆ‹

Options affecting channels you join.

  • channel_rejoin โ€” If we are kicked off a channel, how many seconds do we wait before attempting to rejoin.
    • -1 = Don't rejoin
    • 0 = Immediately
  • channel_leave_on_detach โ€” Should dircproxy automatically make you leave all the channels you were on when you detach?
    • yes = Leave them
    • no = Remain on them
  • channel_rejoin_on_attach โ€” If 'channel_leave_on_detach' is 'yes' then should dircproxy rejoin those channels when you attach again?
    • yes = Rejoin the channels dircproxy automatically left
    • no = Leave permanently on detach

๐Ÿ’ค IDLE OPTIONS ๐Ÿ’ค

Options affecting idle times on IRC.

  • idle_maxtime โ€” Set this to the maximum amount of time you want to appear idle for while on IRC, if you set this then dircproxy will reset your idle time if it reaches this limit (in seconds).
    • 0 = Don't reset idle time

๐Ÿ’€ DISCONNECTiON OPTIONS ๐Ÿ’€

Options affecting when dircproxy disconnects you.

  • disconnect_existing_user โ€” If, when you connect to dircproxy, another client is already using your connection class (ie, if you forgot to close that one), then this option lets you automatically kill that one off. Make sure you turn any "automatic reconnect to server" options off before using this, otherwise you'll have a fight on your hands. ๐Ÿ˜ญ
    • yes = Yes, disconnect
    • no = No, don't let me on
  • disconnect_on_detach โ€” When you detach from dircproxy it usually keeps you connected to the server until you connect again. If you don't want this, and you want it to close your server connection as well, then set this.
    • yes = Close session on disconnection
    • no = Stay connected to server until reattachment

๐ŸŽญ MODE OPTIONS ๐ŸŽญ

Options affecting user modes set by the IRC server.

  • initial_modes โ€” Which user modes should we automatically set when you first connect to a server. Just in case you forget to do it yourself with your irc client.

Set to "" to not set any modes.

  • drop_modes โ€” Which user modes to drop automatically when you detach, handy to limit the impact that your client has while connected, or for extra security if you're an IRCop.

Set to "" to not drop any modes.

  • refuse_modes โ€” Which user modes to refuse to accept from a server. If the server attempts to set one of these, then the connection to it will be dropped and the next server in the list will be tried.

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.

๐Ÿ  ADDRESS OPTIONS ๐Ÿ 

Options affecting your address on IRC.

  • local_address โ€” Local hostname to use when connecting to an IRC server. This provides the same functionality as the ircII -H parameter.
    • none = Do not bind any specific hostname

โœจ MESSAGE OPTIONS โœจ

These are all about the messages dircproxy sends for you, or sets on your behalf. Basically it's your lil' hype squad speaking for you while you're gone ๐Ÿ’…

  • away_message โ€” okay so if you dip out without setting an /AWAY message first, dircproxy can totally set one for you, so nobody thinks you're sitting there at your keyboard when you're literally not ๐Ÿ’€
    • none = Do not set an away message for you
  • quit_message โ€” if you don't give a message when you /DIRCPROXY QUIT, this one gets used instead. It's also what gets used when you've told dircproxy not to stay attached to the server when you detach ๐Ÿซถ
    • none = Use dircproxy version number as QUIT message
  • attach_message โ€” dircproxy can drop an announcement into every channel you're in when you reattach, just so everyone knows the main character is back ๐Ÿ‘‘. If you start this with /ME then it goes out as an ACTION CTCP message (exactly like the ircII /me command) โœจ
    • none = Do not announce attachment
  • detach_message โ€” same vibe, opposite direction: dircproxy can announce to every channel you're on when you detach, so everyone knows you've ghosted (affectionately) ๐ŸŒธ. If you start this with /ME then it gets sent as an ACTION CTCP message (just like the ircII /me command)
    • none = Do not announce detachment
  • detach_nickname โ€” the nickname to automatically change to after you detach, so people can tell you're away, for example ๐Ÿฆ‹. If this contains a * character, then that character gets replaced with whatever your nickname was before you detached (so "*_away" adds _away to the end of your nickname) โ€” cute, right?
    • none = Leave nickname as it is

๐ŸŽ€ NICKNAME OPTIONS ๐ŸŽ€

Stuff that affects your nickname ๐Ÿ’–

  • nick_keep โ€” whether dircproxy should try to keep the nickname you last set with your client. If this is yes and your nickname gets snatched while your client is disconnected, it'll keep on trying to get it back until a client connects again. Dedication fr fr ๐Ÿ”ฅ
    • yes = try to keep my nickname while I'm disconnected
    • no = if it changes, leave it

๐Ÿ’… CTCP OPTIONS ๐Ÿ’…

Replies and that โœจ

  • ctcp_replies โ€” whether dircproxy should reply to the standard set of CTCP messages while your client is detached
    • yes = reply to ctcp messages while client is detached
    • no = nothing but silence ๐Ÿค

๐ŸŒˆ LOGGING OPTIONS ๐ŸŒˆ

These options affect both the internal logging inside dircproxy (so messages can be recalled to you when you come back from being disconnected) and general logging for your own personal use. Two for one, we love efficiency ๐Ÿซถ

  • log_timestamp โ€” log messages can have a timestamp slapped on the front so you know exactly when a message was logged โญ. The format of that timestamp depends on what log_relativetime is set to
    • yes = Include a timestamp in all log messages
    • no = Do not include a timestamp
  • log_relativetime โ€” if log_timestamp is yes, then you get to pick between intelligent relative timestamps or ordinary fixed ones ๐Ÿ•ฐ๏ธ. If you go relative, the timestamp shown when log info is recalled to your client depends on how old that line is, with possible date info if it's a really old message. If you don't go relative, then only the time (in HH:MM format) gets logged.

Lowkey important: this obviously has no effect on the log files under the directory specified by log_dir.

  • yes = Use relative timestamps
  • no = Use fixed timestamps
  • log_timeoffset โ€” the difference in minutes from your IRC client to the dircproxy machine. So if you're in GMT but your dircproxy machine is in PST (which is 8 hours behind), then this would be -(8 * 60) = -480 ๐Ÿงฎ. Used to adjust log file timestamps so they're in the right time zone for you.
    • 0 = Don't adjust log timestamps.
  • log_events โ€” the events you want dircproxy to log for you ๐Ÿ‘€. This is a comma separated list of event names, prefixed with + to add the event to the list or - to remove an event. You can also say all to log all events (that's the default) or none to not log anything at all.

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!) ๐Ÿ”ฅ
  • log_dir โ€” dircproxy keeps its own internal log files (under /tmp) so it can recall info to your client when you reconnect ๐Ÿ—‚๏ธ. It can also log messages to files for your own personal use.

Under this directory, a file gets created named after each channel you join, a file gets created named after each nickname that sends you private messages (or that you send to), and a final file called server gets created containing server events โœจ

This logging happens regardless of the enabled or always settings โ€” those only affect the internal logging. However, the log_events settings do affect what gets logged ๐Ÿ‘ˆ

If you start with ~/ then it'll use a directory under your home directory ๐Ÿ 

  • none = Do not create log files for your own use
  • log_program โ€” a program to pipe log messages into ๐ŸŽ€. If given, dircproxy will run this program for each log message, giving the full source information as the first argument, the destination as the second, and the message itself as a single line on standard input.

The program can be anywhere in your $PATH, or you can start it with ~/ if it's in a directory under your home directory ๐Ÿงš

This logging happens regardless of the enabled or always settings โ€” those only affect the internal logging. However, the log_events settings do affect what gets logged ๐Ÿ‘ˆ

  • none = Do not pipe log messages to a program

๐Ÿฆ‹ INTERNAL CHANNEL LOG OPTIONS ๐Ÿฆ‹

Options affecting the internal logging of channel text so it can be recalled to your client when you reconnect ๐Ÿ’œ. Heads up: these options only apply if chan_log_enabled is set to yes.

  • chan_log_enabled โ€” whether logging of channel text for later recall should happen, so you can see what you missed ๐Ÿ˜ญ
    • yes = Channel text is logged for recall
    • no = Channel text is NOT logged for recall
  • chan_log_always โ€” channel text will always be logged for later recall while you're offline, so when you come back you can see what you missed ๐ŸŒธ. You can also, if you want, log channel text while you're online, so if you're only away a short time you can get an idea of any context ๐Ÿ‘€
    • yes = Log channel text for recall while offline and online
    • no = Log channel text for recall only while offline
  • chan_log_maxsize โ€” to preserve your harddisk space, you can limit the size of the internal channel log file, which is stored in the /tmp directory ๐Ÿ’พ. Once the log file reaches this number of lines, every line added results in a line being removed from the top. If you know you're never gonna want all that logged info, this might be a good setting for you ๐Ÿซถ
    • 0 = No limit to internal log file size
  • chan_log_recall โ€” the number of lines from the bottom of each internal channel log to automatically recall to your IRC client when you reconnect ๐ŸŽ€. If this is low, you may not get much useful info; if this is high, it may take a long time for all the info to arrive โณ
    • -1 = Recall the whole log (not recommended if chan_log_always is yes)
    • 0 = Don't automatically recall anything

๐Ÿ“ INTERNAL PRIVATE LOG OPTIONS ๐Ÿ“

Options affecting the internal logging of private messages, notices, CTCP and DCC events so they can be recalled to your client when you reconnect ๐Ÿ’Œ. These options only apply if private_log_enabled is set to yes.

  • private_log_enabled โ€” whether logging of private messages for later recall should happen, so you can see what you missed ๐Ÿ˜ญ
    • yes = Private messages are logged for recall
    • no = Private messages are NOT logged for recall
  • private_log_always โ€” private messages will always be logged for later recall while you're offline, so when you come back you can see what you missed ๐ŸŒธ. You can also, if you want, log private messages while you're online, so if you're only away a short time you can get an idea of any context ๐Ÿ‘€
    • yes = Log private messages for recall while offline and online
    • no = Log private messages for recall only while offline
  • private_log_maxsize โ€” to preserve your harddisk space, you can limit the size of the internal private message log file, which is stored in the /tmp directory ๐Ÿ’พ. Once the log file reaches this number of lines, every line added results in a line being removed from the top. If you know you're never gonna want all that logged info, this might be a good setting for you ๐Ÿซถ
    • 0 = No limit to internal log file size
  • private_log_recall โ€” the number of lines from the bottom of the internal private message log to automatically recall to your IRC client when you reconnect ๐ŸŽ€. If this is low, you may not get much useful info; if this is high, it may take a long time for all the info to arrive โณ
    • -1 = Recall the whole log (not recommended if private_log_always is yes)
    • 0 = Don't automatically recall anything

๐Ÿ‘‘ INTERNAL SERVER LOG OPTIONS ๐Ÿ‘‘

Options affecting the internal logging of server messages so they can be recalled to your client when you reconnect. These options only apply if the server_log_enabled option is set to yes.

  • server_log_enabled โ€” whether logging of server messages for later recall should take place, so you can actually see what you missed while you were away.
    • yes = Server messages are logged for recall
    • no = Server messages are NOT logged for recall
  • server_log_always โ€” server messages will always be logged for later recall while you're offline, so when you come back you can see what you missed. You can also log server messages while you're online, if you want โ€” handy for when you're only away a short time and just want a lil bit of context.
    • yes = Log server messages for recall while offline and online
    • no = Log server messages for recall only while offline
  • server_log_maxsize โ€” to preserve your harddisk space, you can cap the size of the internal server message log file, which lives in the /tmp directory. Once the log file reaches this number of lines, every line added kicks a line off the top. If you know you're never gonna want all that logged info, this is a great setting for you, honestly.
    • 0 = No limit to internal log file size
  • server_log_recall โ€” how many lines from the bottom of the internal server message log get automatically recalled to your IRC client when you reconnect. Set it low and you may not get much useful info; set it high and it might take ages for all that information to arrive.
    • -1 = Recall the whole log (not recommended if server_log_always is yes)
    • 0 = Don't automatically recall anything

๐Ÿ’… DCC PROXY OPTIONS ๐Ÿ’…

Options affecting proxying and capturing of DCC chat and send requests. slay.

  • dcc_proxy_incoming โ€” whether dircproxy should proxy DCC chat and send requests that other people on IRC send to you.
    • yes = Proxy incoming requests.
    • no = Do not proxy incoming requests.
  • dcc_proxy_outgoing โ€” whether dircproxy should proxy DCC chat and send requests that you send to other people on IRC.
    • yes = Proxy outgoing requests.
    • no = Do not proxy outgoing requests.
  • dcc_proxy_ports โ€” the ports dircproxy can use to listen for DCC connections on. This one's for when you're behind a firewall that only lets certain ports through, or when you're doing DCC-via-ssh. ๐Ÿซถ

It's 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.
  • dcc_proxy_timeout โ€” maxmimum amount of time (in seconds) to allow for both sides of a DCC proxy to be connected.
  • dcc_proxy_sendreject โ€” whether to send a physical REJECT message via CTCP back to the source of the request in the event of a failure.
    • yes = Send reject CTCP message back.
    • no = Do not send any message back.
  • dcc_send_fast โ€” whether to ignore the "acknowledgment" packets from the client and just send the file to them as fast as possible. There should be no real danger in doing this.
    • yes = Send as fast as possible.
    • no = Wait for each packet to be acknowledged.
  • dcc_capture_directory โ€” dircproxy can capture files sent via DCC and store them on the server. Especially useful while you're detached โ€” whether it does it while attached or not depends on dcc_capture_always. This is the directory those captured files get stored in.

If it starts with "~/" then it will use a directory under your home directory.

  • none = Do not capture files.
  • dcc_capture_always โ€” if we're capturing DCC send's, should we do it while the client is connected as well? If yes, then the client will never see the file โ€” it'll just be stored on the server with a notice sent to the client telling them where it is.
    • yes = Capture even when a client is connected.
    • no = Capture only when client detached.
  • dcc_capture_withnick โ€” whether to start the filename of the captured file with the nickname of the sender, so you know who it came from.
    • yes = Start with nickname.
    • no = Do not alter the filename.
  • dcc_capture_maxsize โ€” maximum size (in kilobytes) that a captured file can be. If a captured file is larger than this, or becomes larger than this, then the capture gets aborted and the file removed from the disk. Prevents people from filling your disk up with a massive file while you're detached. king behavior honestly.
    • 0 = No limit to file size.
  • dcc_tunnel_incoming โ€” port of a local ssh tunnel leading to another dircproxy client that we should use for incoming DCC requests. This should not be set if dcc_tunnel_outgoing is set.

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.
  • dcc_tunnel_outgoing โ€” port of a local ssh tunnel leading to another dircproxy client that we should use for outgoing DCC requests. This should not be set if dcc_tunnel_incoming is set.

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.

๐Ÿ”ฅ ADVANCED OPTIONS ๐Ÿ”ฅ

Options for the advanced user. iykyk.

  • switch_user โ€” if you're running dircproxy as root, it can switch to a different "effective user id" to create the server connection. That means your system ident daemon (and therefore IRC, if it queries it) will see your server connection as the user you put here, instead of root. ๐Ÿ’…

This is most useful if you're a 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.

๐ŸŽ€ MOTD OPTIONS ๐ŸŽ€

Options affecting the dircproxy message of the day.

  • motd_logo โ€” if this is yes, then the dircproxy logo and version number will be included in the message of the day when you connect. Only the picky would turn this off, its pretty! โœจ
    • yes = Show me the pretty logo
    • no = I don't like logos, I'm boring, I eat llamas.
  • motd_file โ€” custom message of the day file to send when users connect to dircproxy. The contents of this file will be sent after the logo and before the stats. If you start this with a "~/" then it refers to a file in a directory under your home directory.
    • none = No custom motd
  • motd_stats โ€” display information on what channels you were on, and log file sizes etc in the message of the day. This is handy, and lets you know not only how much information you missed, but how much will be sent to you.
    • yes = Show the stats
    • no = They don't interest me, don't show them.

๐Ÿ‘‘ COMMAND OPTIONS ๐Ÿ‘‘

Options allowing or disallowing the use of /DIRCPROXY commands.

  • allow_persist โ€” you can disable the /DIRCPROXY PERSIST command if you do not want people using your proxy to be able to do that.
    • yes = Command enabled
    • no = Command disabled
  • allow_jump โ€” you can disable the /DIRCPROXY JUMP command if you do not want people to do that.
    • yes = Command enabled
    • no = Command disabled
  • allow_jump_new โ€” if the /DIRCPROXY JUMP commmand is enabled, then you can disable it being used to jump to a server:port that isn't in the list specified in the configuration file.
    • yes = Can jump to any server
    • no = Only ones in the config file
  • allow_host โ€” you can disable the /DIRCPROXY HOST command if you do not want people to do that.
    • yes = Command enabled
    • no = Command disabled
  • allow_die โ€” you can enable the /DIRCPROXY DIE command if you want people to be able to kill your proxy. This isn't recommended as a global option โ€” instead only enable it for a specific connection class (ie yours).
    • yes = Command enabled
    • no = Command disabled
  • allow_users โ€” you can enable the /DIRCPROXY USERS command if you want people to be able to see who's using your proxy. This isn't recommended as a global option โ€” instead only enable it for a specific connection class (ie yours).
    • yes = Command enabled
    • no = Command disabled
  • allow_kill โ€” you can enable the /DIRCPROXY KILL command if you want people to be able to disconnect anyone using your proxy (including you!). This isn't recommended as a global option โ€” instead only enable it for a specific connection class (ie yours).
    • yes = Command enabled
    • no = Command disabled
  • allow_kill โ€” you can enable the /DIRCPROXY NOTIFY command if you want people to be able to send a notice to anyone using your proxy (including you!). This isn't recommended as a global option โ€” instead only enable it for a specific connection class (ie yours).
    • yes = Command enabled
    • no = Command disabled
๐Ÿ’€ ok bestie real talk: yes, the page literally says allow_kill twice โ€” the second one is describing /DIRCPROXY NOTIFY. That's a typo in the original page, not me being chaotic. Noted and left exactly as-is, fr fr.

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.

  • password โ€” password required to use this connection class. This should be encrypted using your system's crypt(3) function. It must be the same as the password supplied by the IRC client on connection for this connection class to be used. ๐Ÿ”

...and for the <password> bits, bestie, there's a whole little helper: you can use the included dircproxy-crypt(1) utility to generate these passwords ๐Ÿ’…โœจ

  • server โ€” the server you're connecting to. And yup, you can give multiple servers here โ€” in which case they are iterated when the connection to one is dropped (like a group chat where the vibes die, so you move to the next one ๐Ÿ”). It's got this format:
[hostname[:[port][:password]]
  • from โ€” this one's the bouncer at the door ๐Ÿ‘‘ the connection hostname must match this mask, and you can list multiple masks so more hosts are allowed to connect. The * and ? wildcards may be used โ€” they're giving main character energy, use them wisely.
  • join โ€” the channels you auto-join the second you first connect ๐ŸŽ€ multiple channels are allowed, either by separating the names with a comma, or by specifying multiple from the channel name with a space.
โš ๏ธ Note: you must surround the list of channels with quotes, so it doesn't get confused with comments. fr fr, the parser cannot read your mind ๐Ÿ™ˆ

So for clarification, this is literally the format of this line:

join "channel[ key][,channel[ key]]..."

โœจ SIGNALS โœจ

dircproxy is lowkey a great listener, here's what it reacts to:

  • Send it the hangup signal, SIGHUP, and it will reread its configuration file whenever it receives it ๐Ÿ”„ (no restart needed, iconic behaviour honestly).
  • Send an interrupt signal, SIGINT, or a terminate signal, SIGTERM, and dircproxy will exit cleanly ๐Ÿซถ like a polite queen leaving the party, no mess, no drama.

๐ŸŒธ NOTES ๐ŸŒธ

More information โ€” including announcements of new releases ๐ŸŽ‰ โ€” can be found at:

http://dircproxy.securiweb.net/

๐Ÿฆ‹ SEE ALSO ๐Ÿฆ‹

(the whole friend group, ily all ๐Ÿ’œ)


๐Ÿ’€ BUGS ๐Ÿ’€

Please submit and review bug reports at:

http://dircproxy.securiweb.net/

like, don't just suffer in silence, tell the maintainers ๐Ÿ˜ญ


๐Ÿ‘‘ AUTHOR ๐Ÿ‘‘

Written by Scott James Remnant <scott@netsplit.com>.

Current maintainership by Francois Harvey <fharvey at securiweb dot net>.


Copyright (C) 2000,2001,2002,2003 Scott James Remnant <scott@netsplit.com>.

Copyright (C) 2004,2005 Francois Harvey <fharvey at securiweb dot net>

dircproxy is distributed under the GNU General Public License.


and that's the whole page bestie!! ๐ŸŒˆ it's dircproxy(1), dated 11 Jan 2005 โ€” yes she's vintage, yes she still ate ๐Ÿ’…โœจ go set up your bouncer, you're gonna slay ๐Ÿซถ๐ŸŽ€

๐Ÿ“ฆ where this page comes from
  • alpine 3.24: dircproxy-doc 1.2.0_rc-r5 ยท GPL-2.0-or-later
  • ๐Ÿ’– girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms