.Dd November 1, 2019 .Dt POUNCE 1 .Os . .Sh NAME .Nm pounce .Nd IRC bouncer . .Sh SYNOPSIS .Nm .Op Fl Nv .Op Fl A Ar mesg .Op Fl C Ar path .Op Fl H Ar host .Op Fl K Ar path .Op Fl P Ar port .Op Fl Q Ar mesg .Op Fl U Ar path .Op Fl W Ar pass .Op Fl a Ar auth .Op Fl f Ar path .Op Fl h Ar host .Op Fl j Ar chan .Op Fl n Ar nick .Op Fl p Ar port .Op Fl r Ar real .Op Fl s Ar size .Op Fl u Ar user .Op Fl w Ar pass .Op Ar config ... . .Sh DESCRIPTION The .Nm daemon is a multi-client, TLS-only IRC bouncer. It maintains a persistent connection to an IRC server while allowing clients to connect and disconnect, receiving messages that were missed upon reconnection. Clients should use the IRCv3.2 server-time extension to know when missed messages were received and uniquely identify themselves by username. . .Pp Options can be loaded from files listed on the command line. Each option is placed on a line, and lines beginning with .Ql # are ignored. The options are listed below following their corresponding flags. . .Pp The arguments are as follows: . .Bl -tag -width Ds .It Fl A Ar mesg , Cm away = Ar mesg Set away status to .Ar mesg when no clients are connected. . .It Fl C Ar path , Cm cert = Ar path Load TLS certificate from .Ar path . The default path is the .Xr certbot 8 path for the .Ar host set by .Fl H . . .It Fl H Ar host , Cm bind-host = Ar host Bind to .Ar host . The default host is localhost. . .It Fl K Ar path , Cm key = Ar path Load TLS private key from .Ar path . The default path is the .Xr certbot 8 path for the .Ar host set by .Fl H . . .It Fl N , Cm names Request .Ql NAMES for each channel when a client connects. This allows clients to populate user lists, but may just cause noise for some. . .It Fl P Ar port , Cm bind-port = Ar port Bind to .Ar port . The default port is 6697. . .It Fl Q Ar mesg , Cm quit = Ar mesg Quit with message .Ar mesg when shutting down. . .It Fl U Ar path , Cm bind-unix = Ar path Bind to a UNIX-domain socket at .Ar path . Clients are accepted as sent by .Xr calico 1 . This option takes precedence over .Fl H and .Fl P . . .It Fl W Ar pass , Cm client-pass = Ar pass Require the server password .Ar pass for clients to connect. . .It Fl a Ar user : Ns Ar pass , Cm sasl = Ar user : Ns Ar pass Authenticate as .Ar user with .Ar pass using SASL PLAIN. . .It Fl f Ar path , Cm save = Ar path Load the contents of the buffer from .Ar path , if it exists, and truncate it. On shutdown, save the contents of the buffer to .Ar path . . .It Fl h Ar host , Cm host = Ar host Connect to .Ar host . . .It Fl j Ar chan , Cm join = Ar chan Join the comma-separated list of .Ar chan . . .It Fl n Ar nick , Cm nick = Ar nick Set nickname to .Ar nick . The default nickname is the user's name. . .It Fl p Ar port , Cm port = Ar port Connect to .Ar port . The default port is 6697. . .It Fl r Ar real , Cm real = Ar real Set realname to .Ar real . The default realname is the same as the nickname. . .It Fl s Ar size , Cm size = Ar size Set the buffer .Ar size . This determines the maximum number of messages stored in memory. The size must be a power of two. The default size is 4096. . .It Fl u Ar user , Cm user = Ar user Set username to .Ar user . The default username is the same as the nickname. . .It Fl v , Cm verbose Write IRC messages to standard error in red to the server, green from the server, yellow from clients and blue to clients. . .It Fl w Ar pass , Cm pass = Ar pass Log in with the server password .Ar pass . .El . .Pp Upon receiving the .Dv SIGUSR1 signal, the certificate and private key will be reloaded from the paths specified by .Fl C and .Fl K . . .Sh ENVIRONMENT .Bl -tag -width Ds .It Ev USER The default nickname. .El . .Sh EXAMPLES Command line: .Bd -literal -offset indent .Nm Fl H Li pounce.example.org Fl h Li chat.freenode.net Fl j Li '#ascii.town' .Ed . .Pp Configuration file: .Bd -literal -offset indent bind-host = pounce.example.org host = chat.freenode.net join = #ascii.town .Ed . .Sh SEE ALSO .Xr calico 1 . .Sh STANDARDS The .Nm daemon implements the following: . .Bl -item .It .Rs .%A E. Brocklesby .%A L. Hardy .%A K. Mitchell .%T IRC RPL_ISUPPORT Numeric Definition .%I IETF .%D January 2005 .%U https://tools.ietf.org/html/draft-hardy-irc-isupport-00 .Re . .It .Rs .%A Kyle Fuller .%A St\('ephan Kochen .%A Alexey Sokolov .%A James Wheare .%T IRCv3.2 server-time Extension .%I IRCv3 Working Group .%U https://ircv3.net/specs/extensions/server-time-3.2 .Re . .It .Rs .%A Lee Hardy .%A Perry Lorier .%A Kevin L. Mitchell .%A William Pitcock .%T IRCv3.1 Client Capability Negotiation .%I IRCv3 Working Group .%U https://ircv3.net/specs/core/capability-negotiation-3.1.html .Re . .It .Rs .%A S. Josefsson .%Q SJD .%T The Base16, Base32, and Base64 Data Encodings .%I IETF .%N RFC 4648 .%D October 2006 .%U https://tools.ietf.org/html/rfc4648 .Re . .It .Rs .%A C. Kalt .%T Internet Relay Chat: Client Protocol .%I IETF .%N RFC 2812 .%D April 2000 .%U https://tools.ietf.org/html/rfc2812 .Re . .It .Rs .%A William Pitcock .%A Jilles Tjoelker .%T IRCv3.1 SASL Authentication .%I IRCv3 Working Group .%U https://ircv3.net/specs/extensions/sasl-3.1.html .Re . .It .Rs .%A K. Zeilenga, Ed. .%Q OpenLDAP Foundation .%T The PLAIN Simple Authentication and Security Layer (SASL) Mechanism .%I IETF .%N RFC 4616 .%D August 2006 .%U https://tools.ietf.org/html/rfc4616 .Re .El . .Sh AUTHORS .An June Bug Aq Mt june@causal.agency . .Sh CAVEATS One instance of .Nm , and therefore one local port, is required for each server connection. . .Pp The .Nm daemon makes no distinction between channels. Elevated activity in one channel may push messages from a quieter channel out of the buffer. . .Sh BUGS Send mail to .Aq Mt june@causal.agency or join .Li #ascii.town on .Li chat.freenode.net .