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