1 .\" $Id: icbirc.8,v 1.1.1.1 2007/01/11 15:55:54 dhartmei Exp $
3 .\" Copyright (c) 2003-2004 Daniel Hartmeier. All rights reserved.
5 .\" Redistribution and use in source and binary forms, with or without
6 .\" modification, are permitted provided that the following conditions
8 .\" 1. Redistributions of source code must retain the above copyright
9 .\" notice, this list of conditions and the following disclaimer.
10 .\" 2. Redistributions in binary form must reproduce the above copyright
11 .\" notice, this list of conditions and the following disclaimer in the
12 .\" documentation and/or other materials provided with the distribution.
14 .\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
15 .\" IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
16 .\" OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
17 .\" IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
18 .\" INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
19 .\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
20 .\" DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
21 .\" THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
22 .\" (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
23 .\" THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
30 .Nd proxy IRC client and ICB server
34 .Op Fl l Ar listen-address
35 .Op Fl p Ar listen-port
36 .Op Fl s Ar server-name
37 .Op Fl P Ar server-port
40 is a proxy that allows to connect an IRC client to an ICB server.
41 The proxy accepts client connections, connects to the server, and forwards
42 data between those two connections.
44 Commands from the IRC client are translated to ICB commands and forwarded
46 Messages from the ICB server are translated to IRC messages and forwarded
49 The options are as follows:
51 .Bl -tag -width xlxlistenxaddress
53 Do not daemonize (detach from controlling terminal) and produce debugging
54 output on stdout/stderr.
55 .It Fl l Ar listen-address
56 Bind to the specified address when listening for client connections.
57 If not specified, connections to any address are accepted.
58 .It Fl p Ar listen-port
59 Bind to the specified port when listening for client connections.
60 Defaults to 6667 when not specified.
61 .It Fl s Ar server-name
62 Hostname or numerical address of the ICB server to connect to.
63 .It Fl P Ar server-port
64 Port of the ICB server to connect to.
65 Defaults to 7326 when not specified.
69 .Bd -literal -offset indent
70 $ icbirc -s default.icb.net
73 IRC (Internet Relay Chat) and ICB (Internet Citizen's Band) are two separate
75 ICB is an older and simpler protocol, basically a subset of IRC.
76 The two most significant differences (from the client's perspective) are:
78 An ICB client can only join a single channel (called group).
79 Joining a second channel automatically parts the first channel.
81 An ICB channel can only have a single operator (called moderator).
82 Giving operator status to a second client automatically removes
83 operator status from the first client.
85 .Sh SUPPORTED COMMANDS
87 supports the following IRC commands:
89 .Bl -tag -width MODExoxnickx
91 Set the default group, used during login.
93 Set or change nickname.
95 Supply additional user information (like ident), used during login.
99 Shows information about a user.
101 Lists matching users.
102 Arguments starting with '#' are interpreted as channel names
103 (listing all users in the specified channel), anything else
104 is used for a simple string search within users' 'nick!ident@host'.
108 Send an open or personal message.
114 Boot nick from group.
116 Pass moderation to nick.
118 Close client and server connection, wait for next client connection.
121 Additionally, the command RAWICB can be used to send custom ICB
123 The proxy automatically prefixes the correct command length and
124 replaces commas with ICB argument separators.
126 .Bl -tag -width RAWICBxhmxnickxmsg
127 .It RAWICB hm,nick,msg
133 .%T Internet Relay Chat Protocol
137 .%T Internet Relay Chat: Client Protocol
141 .%T Internet Relay Chat: Channel Management
146 .%O ftp://ftp.icb.net/pub/icb/src/icbd/Protocol.html
149 .%T The History of ICB
150 .%O http://www.icb.net/history.html
153 .%T General guide to Netiquette on ICB
154 .%O http://www.icb.net/_jrudd/icb/netiquette.html
162 .Aq daniel@benzedrine.cx
165 Depending on the ICB community on a particular server, netiquette rules
166 vary greatly from common IRC rules (or lack thereof).
168 Client scripts or other forms of automated client actions might generate
169 noise or violate ICB community policies, and lacking support for some
170 commands might confuse the script.
171 Clients should be properly configured and tested on a dedicated server
172 before connecting to a public server.
174 In particular, WHOIS and WHO filtering is done on the proxy. Each such
175 request causes the proxy to fetch the entire user list from the ICB
176 server (there are no ICB commands that take filters), hence automatic
177 WHOIS requests from the IRC client can cause unwanted load on the ICB
178 server (turn off 'WHOIS on JOIN' in the IRC client, if enabled).
180 On ICB, a moderator (channel operator) can leave the group (channel) and
181 rejoin later, preserving his status, as compared to IRC, where the channel
182 would be left operator-less in this case.
183 The proxy does not currently detect the operator status on rejoin in this
184 case, and the IRC client will (temporarily) show the channel op-less.
186 IPv6 is not supported yet.