Blame


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.
3 d23d2886 2023-07-30 op .\"
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
6 d23d2886 2023-07-30 op .\" are met:
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.
12 d23d2886 2023-07-30 op .\"
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.
23 d23d2886 2023-07-30 op .\"
24 ec35ef67 2023-08-20 op .Dd August 20, 2023
25 d23d2886 2023-07-30 op .Dt ICBIRC 8
26 d23d2886 2023-07-30 op .Os
27 d23d2886 2023-07-30 op .Sh NAME
28 d23d2886 2023-07-30 op .Nm icbirc
29 d23d2886 2023-07-30 op .Nd proxy IRC client and ICB server
30 d23d2886 2023-07-30 op .Sh SYNOPSIS
31 d23d2886 2023-07-30 op .Nm icbirc
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
34 d23d2886 2023-07-30 op .Nm
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
38 ec35ef67 2023-08-20 op .Xr inetd 8 ,
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.
41 d23d2886 2023-07-30 op .Pp
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.
46 d23d2886 2023-07-30 op .Pp
47 d23d2886 2023-07-30 op IRC (Internet Relay Chat) and ICB (Internet Citizen's Band) are two separate
48 d23d2886 2023-07-30 op chat protocols.
49 d23d2886 2023-07-30 op ICB is an older and simpler protocol, basically a subset of IRC.
50 d23d2886 2023-07-30 op The two most significant differences (from the client's perspective) are:
51 01cfae3f 2023-08-20 op .Bl -bullet
52 01cfae3f 2023-08-20 op .It
53 01cfae3f 2023-08-20 op an ICB client can only join a single channel (called group).
54 d23d2886 2023-07-30 op Joining a second channel automatically parts the first channel.
55 01cfae3f 2023-08-20 op .It
56 01cfae3f 2023-08-20 op an ICB channel can only have a single operator (called moderator).
57 d23d2886 2023-07-30 op Giving operator status to a second client automatically removes
58 d23d2886 2023-07-30 op operator status from the first client.
59 01cfae3f 2023-08-20 op .El
60 d23d2886 2023-07-30 op .Sh SUPPORTED COMMANDS
61 d23d2886 2023-07-30 op .Nm
62 d23d2886 2023-07-30 op supports the following IRC commands:
63 d23d2886 2023-07-30 op .Bl -tag -width MODExoxnickx
64 01cfae3f 2023-08-20 op .It CAP LS, CAP REQ, CAP END
65 01cfae3f 2023-08-20 op Basic IRCv3 capability handling is present for compliance with a wider
66 01cfae3f 2023-08-20 op range of IRC clients.
67 d23d2886 2023-07-30 op .It PASS
68 d23d2886 2023-07-30 op Set the default group, used during login.
69 d23d2886 2023-07-30 op .It NICK
70 d23d2886 2023-07-30 op Set or change nickname.
71 d23d2886 2023-07-30 op .It USER
72 d23d2886 2023-07-30 op Supply additional user information (like ident), used during login.
73 d23d2886 2023-07-30 op .It LIST
74 d23d2886 2023-07-30 op List all groups.
75 d23d2886 2023-07-30 op .It WHOIS
76 d23d2886 2023-07-30 op Shows information about a user.
77 d23d2886 2023-07-30 op .It WHO
78 d23d2886 2023-07-30 op Lists matching users.
79 d23d2886 2023-07-30 op Arguments starting with '#' are interpreted as channel names
80 d23d2886 2023-07-30 op (listing all users in the specified channel), anything else
81 d23d2886 2023-07-30 op is used for a simple string search within users' 'nick!ident@host'.
82 d23d2886 2023-07-30 op .It JOIN
83 d23d2886 2023-07-30 op Join a group.
84 d23d2886 2023-07-30 op .It PRIVMSG
85 d23d2886 2023-07-30 op Send an open or personal message.
86 d23d2886 2023-07-30 op .It NOTICE
87 d23d2886 2023-07-30 op Same as PRIVMSG.
88 d23d2886 2023-07-30 op .It TOPIC
89 d23d2886 2023-07-30 op Set group topic.
90 d23d2886 2023-07-30 op .It KICK nick
91 d23d2886 2023-07-30 op Boot nick from group.
92 d23d2886 2023-07-30 op .It MODE +o nick
93 d23d2886 2023-07-30 op Pass moderation to nick.
94 d23d2886 2023-07-30 op .It QUIT
95 d23d2886 2023-07-30 op Close client and server connection, wait for next client connection.
96 d23d2886 2023-07-30 op .El
97 d23d2886 2023-07-30 op .Pp
98 d23d2886 2023-07-30 op Additionally, the command RAWICB can be used to send custom ICB
99 d23d2886 2023-07-30 op commands.
100 d23d2886 2023-07-30 op The proxy automatically prefixes the correct command length and
101 d23d2886 2023-07-30 op replaces commas with ICB argument separators.
102 d23d2886 2023-07-30 op For example:
103 d23d2886 2023-07-30 op .Bl -tag -width RAWICBxhmxnickxmsg
104 d23d2886 2023-07-30 op .It RAWICB hm,nick,msg
105 d23d2886 2023-07-30 op Send msg to nick.
106 d23d2886 2023-07-30 op .El
107 01cfae3f 2023-08-20 op .Sh EXAMPLES
108 01cfae3f 2023-08-20 op Connect to the ICB server
109 01cfae3f 2023-08-20 op .Sq default.icb.net
110 01cfae3f 2023-08-20 op on the default port 7326, accepting IRC commands on standard input and
111 01cfae3f 2023-08-20 op faking IRC server messages on standard output:
112 d23d2886 2023-07-30 op .Pp
113 01cfae3f 2023-08-20 op .Dl $ icbirc default.icb.net
114 01cfae3f 2023-08-20 op .Pp
115 01cfae3f 2023-08-20 op Like the previous, but join automatically the group (channel)
116 01cfae3f 2023-08-20 op .Sq slackers :
117 01cfae3f 2023-08-20 op .Pp
118 01cfae3f 2023-08-20 op .Dl $ icbirc default.icb.net/slackers
119 01cfae3f 2023-08-20 op .Pp
120 01cfae3f 2023-08-20 op Run
121 01cfae3f 2023-08-20 op .Nm
122 01cfae3f 2023-08-20 op with
123 01cfae3f 2023-08-20 op .Xr inetd 8 ,
124 01cfae3f 2023-08-20 op suitable for connecting with IRC clients that don't support talking
125 01cfae3f 2023-08-20 op IRC on a pipe:
126 01cfae3f 2023-08-20 op .Pp
127 01cfae3f 2023-08-20 op .Dl 6667 stream tcp nowait user /usr/local/bin/icbirc icbirc example.com
128 01cfae3f 2023-08-20 op .Pp
129 01cfae3f 2023-08-20 op .Sq user
130 01cfae3f 2023-08-20 op needs to be changed with a valid, local user name.
131 d23d2886 2023-07-30 op .Sh SEE ALSO
132 d23d2886 2023-07-30 op .Rs
133 d23d2886 2023-07-30 op .%T Internet Relay Chat Protocol
134 d23d2886 2023-07-30 op .%O RFC 1459
135 d23d2886 2023-07-30 op .Re
136 d23d2886 2023-07-30 op .Rs
137 d23d2886 2023-07-30 op .%T Internet Relay Chat: Client Protocol
138 d23d2886 2023-07-30 op .%O RFC 2812
139 d23d2886 2023-07-30 op .Re
140 d23d2886 2023-07-30 op .Rs
141 d23d2886 2023-07-30 op .%T Internet Relay Chat: Channel Management
142 d23d2886 2023-07-30 op .%O RFC 2811
143 d23d2886 2023-07-30 op .Re
144 d23d2886 2023-07-30 op .Rs
145 d23d2886 2023-07-30 op .%T ICB Protocol
146 d23d2886 2023-07-30 op .%O ftp://ftp.icb.net/pub/icb/src/icbd/Protocol.html
147 d23d2886 2023-07-30 op .Re
148 d23d2886 2023-07-30 op .Rs
149 d23d2886 2023-07-30 op .%T The History of ICB
150 d23d2886 2023-07-30 op .%O http://www.icb.net/history.html
151 d23d2886 2023-07-30 op .Re
152 d23d2886 2023-07-30 op .Rs
153 d23d2886 2023-07-30 op .%T General guide to Netiquette on ICB
154 d23d2886 2023-07-30 op .%O http://www.icb.net/_jrudd/icb/netiquette.html
155 d23d2886 2023-07-30 op .Re
156 d23d2886 2023-07-30 op .Sh HISTORY
157 d23d2886 2023-07-30 op The first version of
158 d23d2886 2023-07-30 op .Nm
159 d23d2886 2023-07-30 op was written in 2003.
160 d23d2886 2023-07-30 op .Sh AUTHORS
161 01cfae3f 2023-08-20 op .An -nosplit
162 01cfae3f 2023-08-20 op .Nm
163 01cfae3f 2023-08-20 op was written by
164 01cfae3f 2023-08-20 op .An Daniel Hartmeier Aq daniel@benzedrine.cx
165 01cfae3f 2023-08-20 op and is maintained by
166 01cfae3f 2023-08-20 op .An Omar Polo Aq op@openbsd.org .
167 d23d2886 2023-07-30 op .Sh CAVEATS
168 d23d2886 2023-07-30 op ICB is not IRC.
169 d23d2886 2023-07-30 op Depending on the ICB community on a particular server, netiquette rules
170 d23d2886 2023-07-30 op vary greatly from common IRC rules (or lack thereof).
171 d23d2886 2023-07-30 op .Pp
172 d23d2886 2023-07-30 op Client scripts or other forms of automated client actions might generate
173 d23d2886 2023-07-30 op noise or violate ICB community policies, and lacking support for some
174 d23d2886 2023-07-30 op commands might confuse the script.
175 d23d2886 2023-07-30 op Clients should be properly configured and tested on a dedicated server
176 d23d2886 2023-07-30 op before connecting to a public server.
177 d23d2886 2023-07-30 op .Pp
178 01cfae3f 2023-08-20 op In particular, WHOIS and WHO filtering is done on the proxy.
179 01cfae3f 2023-08-20 op Each such request causes the proxy to fetch the entire user list from the
180 01cfae3f 2023-08-20 op ICB server (there are no ICB commands that take filters), hence
181 01cfae3f 2023-08-20 op automatic WHOIS requests from the IRC client can cause unwanted load on
182 01cfae3f 2023-08-20 op the ICB server
183 01cfae3f 2023-08-20 op .Pq turn off 'WHOIS on JOIN' in the IRC client, if enabled .
184 d23d2886 2023-07-30 op .Sh BUGS
185 d23d2886 2023-07-30 op On ICB, a moderator (channel operator) can leave the group (channel) and
186 d23d2886 2023-07-30 op rejoin later, preserving his status, as compared to IRC, where the channel
187 d23d2886 2023-07-30 op would be left operator-less in this case.
188 d23d2886 2023-07-30 op The proxy does not currently detect the operator status on rejoin in this
189 d23d2886 2023-07-30 op case, and the IRC client will (temporarily) show the channel op-less.