Blob


1 .\" Copyright (c) 2003-2004 Daniel Hartmeier. All rights reserved.
2 .\"
3 .\" Redistribution and use in source and binary forms, with or without
4 .\" modification, are permitted provided that the following conditions
5 .\" are met:
6 .\" 1. Redistributions of source code must retain the above copyright
7 .\" notice, this list of conditions and the following disclaimer.
8 .\" 2. Redistributions in binary form must reproduce the above copyright
9 .\" notice, this list of conditions and the following disclaimer in the
10 .\" documentation and/or other materials provided with the distribution.
11 .\"
12 .\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
13 .\" IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
14 .\" OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
15 .\" IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
16 .\" INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
17 .\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
18 .\" DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
19 .\" THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
20 .\" (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
21 .\" THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
22 .\"
23 .Dd Aug 6, 2003
24 .Dt ICBIRC 8
25 .Os
26 .Sh NAME
27 .Nm icbirc
28 .Nd proxy IRC client and ICB server
29 .Sh SYNOPSIS
30 .Nm icbirc
31 .Op Fl d
32 .Op Fl l Ar listen-address
33 .Op Fl p Ar listen-port
34 .Op Fl s Ar server-name
35 .Op Fl P Ar server-port
36 .Sh DESCRIPTION
37 .Nm
38 is a proxy that allows to connect an IRC client to an ICB server.
39 The proxy accepts client connections, connects to the server, and forwards
40 data between those two connections.
41 .Pp
42 Commands from the IRC client are translated to ICB commands and forwarded
43 to the ICB server.
44 Messages from the ICB server are translated to IRC messages and forwarded
45 to the IRC client.
46 .Pp
47 The options are as follows:
48 .Pp
49 .Bl -tag -width xlxlistenxaddress
50 .It Fl d
51 Do not daemonize (detach from controlling terminal) and produce debugging
52 output on stdout/stderr.
53 .It Fl l Ar listen-address
54 Bind to the specified address when listening for client connections.
55 If not specified, connections to any address are accepted.
56 .It Fl p Ar listen-port
57 Bind to the specified port when listening for client connections.
58 Defaults to 6667 when not specified.
59 .It Fl s Ar server-name
60 Hostname or numerical address of the ICB server to connect to.
61 .It Fl P Ar server-port
62 Port of the ICB server to connect to.
63 Defaults to 7326 when not specified.
64 .El
65 .Pp
66 Example:
67 .Bd -literal -offset indent
68 $ icbirc -s default.icb.net
69 .Ed
70 .Pp
71 IRC (Internet Relay Chat) and ICB (Internet Citizen's Band) are two separate
72 chat protocols.
73 ICB is an older and simpler protocol, basically a subset of IRC.
74 The two most significant differences (from the client's perspective) are:
75 .Pp
76 An ICB client can only join a single channel (called group).
77 Joining a second channel automatically parts the first channel.
78 .Pp
79 An ICB channel can only have a single operator (called moderator).
80 Giving operator status to a second client automatically removes
81 operator status from the first client.
82 .Pp
83 .Sh SUPPORTED COMMANDS
84 .Nm
85 supports the following IRC commands:
86 .Pp
87 .Bl -tag -width MODExoxnickx
88 .It PASS
89 Set the default group, used during login.
90 .It NICK
91 Set or change nickname.
92 .It USER
93 Supply additional user information (like ident), used during login.
94 .It LIST
95 List all groups.
96 .It WHOIS
97 Shows information about a user.
98 .It WHO
99 Lists matching users.
100 Arguments starting with '#' are interpreted as channel names
101 (listing all users in the specified channel), anything else
102 is used for a simple string search within users' 'nick!ident@host'.
103 .It JOIN
104 Join a group.
105 .It PRIVMSG
106 Send an open or personal message.
107 .It NOTICE
108 Same as PRIVMSG.
109 .It TOPIC
110 Set group topic.
111 .It KICK nick
112 Boot nick from group.
113 .It MODE +o nick
114 Pass moderation to nick.
115 .It QUIT
116 Close client and server connection, wait for next client connection.
117 .El
118 .Pp
119 Additionally, the command RAWICB can be used to send custom ICB
120 commands.
121 The proxy automatically prefixes the correct command length and
122 replaces commas with ICB argument separators.
123 For example:
124 .Bl -tag -width RAWICBxhmxnickxmsg
125 .It RAWICB hm,nick,msg
126 Send msg to nick.
127 .El
128 .Pp
129 .Sh SEE ALSO
130 .Rs
131 .%T Internet Relay Chat Protocol
132 .%O RFC 1459
133 .Re
134 .Rs
135 .%T Internet Relay Chat: Client Protocol
136 .%O RFC 2812
137 .Re
138 .Rs
139 .%T Internet Relay Chat: Channel Management
140 .%O RFC 2811
141 .Re
142 .Rs
143 .%T ICB Protocol
144 .%O ftp://ftp.icb.net/pub/icb/src/icbd/Protocol.html
145 .Re
146 .Rs
147 .%T The History of ICB
148 .%O http://www.icb.net/history.html
149 .Re
150 .Rs
151 .%T General guide to Netiquette on ICB
152 .%O http://www.icb.net/_jrudd/icb/netiquette.html
153 .Re
154 .Sh HISTORY
155 The first version of
156 .Nm
157 was written in 2003.
158 .Sh AUTHORS
159 Daniel Hartmeier
160 .Aq daniel@benzedrine.cx
161 .Sh CAVEATS
162 ICB is not IRC.
163 Depending on the ICB community on a particular server, netiquette rules
164 vary greatly from common IRC rules (or lack thereof).
165 .Pp
166 Client scripts or other forms of automated client actions might generate
167 noise or violate ICB community policies, and lacking support for some
168 commands might confuse the script.
169 Clients should be properly configured and tested on a dedicated server
170 before connecting to a public server.
171 .Pp
172 In particular, WHOIS and WHO filtering is done on the proxy. Each such
173 request causes the proxy to fetch the entire user list from the ICB
174 server (there are no ICB commands that take filters), hence automatic
175 WHOIS requests from the IRC client can cause unwanted load on the ICB
176 server (turn off 'WHOIS on JOIN' in the IRC client, if enabled).
177 .Sh BUGS
178 On ICB, a moderator (channel operator) can leave the group (channel) and
179 rejoin later, preserving his status, as compared to IRC, where the channel
180 would be left operator-less in this case.
181 The proxy does not currently detect the operator status on rejoin in this
182 case, and the IRC client will (temporarily) show the channel op-less.
183 .Pp
184 IPv6 is not supported yet.