1 .\" Copyright (c) 2023-2004 Omar Polo <op@openbsd.org>
2 .\" Copyright (c) 2003-2004 Daniel Hartmeier. All rights reserved.
4 .\" Redistribution and use in source and binary forms, with or without
5 .\" modification, are permitted provided that the following conditions
7 .\" 1. Redistributions of source code must retain the above copyright
8 .\" notice, this list of conditions and the following disclaimer.
9 .\" 2. Redistributions in binary form must reproduce the above copyright
10 .\" notice, this list of conditions and the following disclaimer in the
11 .\" documentation and/or other materials provided with the distribution.
13 .\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
14 .\" IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
15 .\" OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
16 .\" IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
17 .\" INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
18 .\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
19 .\" DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
20 .\" THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
21 .\" (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
22 .\" THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
29 .Nd proxy IRC client and ICB server
32 .Ar host Ns Oo : Ns Ar port Oc Ns Oo / Ns Ar room Oc
35 is a proxy that allows to connect an IRC client to an ICB server.
36 The proxy talks IRC via standard input and standard output,
37 so it's suitable to be run with
39 and connects to the ICB server specified in the command line, optionally
40 joining automatically a room.
42 Commands from the IRC client are translated to ICB commands and forwarded
44 Messages from the ICB server are translated to IRC messages and forwarded
48 .Bd -literal -offset indent
49 $ icbirc default.icb.net/slackers
52 IRC (Internet Relay Chat) and ICB (Internet Citizen's Band) are two separate
54 ICB is an older and simpler protocol, basically a subset of IRC.
55 The two most significant differences (from the client's perspective) are:
57 An ICB client can only join a single channel (called group).
58 Joining a second channel automatically parts the first channel.
60 An ICB channel can only have a single operator (called moderator).
61 Giving operator status to a second client automatically removes
62 operator status from the first client.
64 .Sh SUPPORTED COMMANDS
66 supports the following IRC commands:
68 .Bl -tag -width MODExoxnickx
70 Set the default group, used during login.
72 Set or change nickname.
74 Supply additional user information (like ident), used during login.
78 Shows information about a user.
81 Arguments starting with '#' are interpreted as channel names
82 (listing all users in the specified channel), anything else
83 is used for a simple string search within users' 'nick!ident@host'.
87 Send an open or personal message.
95 Pass moderation to nick.
97 Close client and server connection, wait for next client connection.
100 Additionally, the command RAWICB can be used to send custom ICB
102 The proxy automatically prefixes the correct command length and
103 replaces commas with ICB argument separators.
105 .Bl -tag -width RAWICBxhmxnickxmsg
106 .It RAWICB hm,nick,msg
112 .%T Internet Relay Chat Protocol
116 .%T Internet Relay Chat: Client Protocol
120 .%T Internet Relay Chat: Channel Management
125 .%O ftp://ftp.icb.net/pub/icb/src/icbd/Protocol.html
128 .%T The History of ICB
129 .%O http://www.icb.net/history.html
132 .%T General guide to Netiquette on ICB
133 .%O http://www.icb.net/_jrudd/icb/netiquette.html
141 .Aq daniel@benzedrine.cx
144 Depending on the ICB community on a particular server, netiquette rules
145 vary greatly from common IRC rules (or lack thereof).
147 Client scripts or other forms of automated client actions might generate
148 noise or violate ICB community policies, and lacking support for some
149 commands might confuse the script.
150 Clients should be properly configured and tested on a dedicated server
151 before connecting to a public server.
153 In particular, WHOIS and WHO filtering is done on the proxy. Each such
154 request causes the proxy to fetch the entire user list from the ICB
155 server (there are no ICB commands that take filters), hence automatic
156 WHOIS requests from the IRC client can cause unwanted load on the ICB
157 server (turn off 'WHOIS on JOIN' in the IRC client, if enabled).
159 On ICB, a moderator (channel operator) can leave the group (channel) and
160 rejoin later, preserving his status, as compared to IRC, where the channel
161 would be left operator-less in this case.
162 The proxy does not currently detect the operator status on rejoin in this
163 case, and the IRC client will (temporarily) show the channel op-less.
165 IPv6 is not supported yet.