Blob


1 .\" Copyright (c) 2023-2004 Omar Polo <op@openbsd.org>
2 .\" Copyright (c) 2003-2004 Daniel Hartmeier. All rights reserved.
3 .\"
4 .\" Redistribution and use in source and binary forms, with or without
5 .\" modification, are permitted provided that the following conditions
6 .\" are met:
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.
12 .\"
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.
23 .\"
24 .Dd August 20, 2023
25 .Dt ICBIRC 8
26 .Os
27 .Sh NAME
28 .Nm icbirc
29 .Nd proxy IRC client and ICB server
30 .Sh SYNOPSIS
31 .Nm icbirc
32 .Ar host Ns Oo : Ns Ar port Oc Ns Oo / Ns Ar room Oc
33 .Sh DESCRIPTION
34 .Nm
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
38 .Xr inetd 8 ,
39 and connects to the ICB server specified in the command line, optionally
40 joining automatically a room.
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 Example:
48 .Bd -literal -offset indent
49 $ icbirc default.icb.net/slackers
50 .Ed
51 .Pp
52 IRC (Internet Relay Chat) and ICB (Internet Citizen's Band) are two separate
53 chat protocols.
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:
56 .Pp
57 An ICB client can only join a single channel (called group).
58 Joining a second channel automatically parts the first channel.
59 .Pp
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.
63 .Pp
64 .Sh SUPPORTED COMMANDS
65 .Nm
66 supports the following IRC commands:
67 .Pp
68 .Bl -tag -width MODExoxnickx
69 .It PASS
70 Set the default group, used during login.
71 .It NICK
72 Set or change nickname.
73 .It USER
74 Supply additional user information (like ident), used during login.
75 .It LIST
76 List all groups.
77 .It WHOIS
78 Shows information about a user.
79 .It WHO
80 Lists matching users.
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'.
84 .It JOIN
85 Join a group.
86 .It PRIVMSG
87 Send an open or personal message.
88 .It NOTICE
89 Same as PRIVMSG.
90 .It TOPIC
91 Set group topic.
92 .It KICK nick
93 Boot nick from group.
94 .It MODE +o nick
95 Pass moderation to nick.
96 .It QUIT
97 Close client and server connection, wait for next client connection.
98 .El
99 .Pp
100 Additionally, the command RAWICB can be used to send custom ICB
101 commands.
102 The proxy automatically prefixes the correct command length and
103 replaces commas with ICB argument separators.
104 For example:
105 .Bl -tag -width RAWICBxhmxnickxmsg
106 .It RAWICB hm,nick,msg
107 Send msg to nick.
108 .El
109 .Pp
110 .Sh SEE ALSO
111 .Rs
112 .%T Internet Relay Chat Protocol
113 .%O RFC 1459
114 .Re
115 .Rs
116 .%T Internet Relay Chat: Client Protocol
117 .%O RFC 2812
118 .Re
119 .Rs
120 .%T Internet Relay Chat: Channel Management
121 .%O RFC 2811
122 .Re
123 .Rs
124 .%T ICB Protocol
125 .%O ftp://ftp.icb.net/pub/icb/src/icbd/Protocol.html
126 .Re
127 .Rs
128 .%T The History of ICB
129 .%O http://www.icb.net/history.html
130 .Re
131 .Rs
132 .%T General guide to Netiquette on ICB
133 .%O http://www.icb.net/_jrudd/icb/netiquette.html
134 .Re
135 .Sh HISTORY
136 The first version of
137 .Nm
138 was written in 2003.
139 .Sh AUTHORS
140 Daniel Hartmeier
141 .Aq daniel@benzedrine.cx
142 .Sh CAVEATS
143 ICB is not IRC.
144 Depending on the ICB community on a particular server, netiquette rules
145 vary greatly from common IRC rules (or lack thereof).
146 .Pp
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.
152 .Pp
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).
158 .Sh BUGS
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.
164 .Pp
165 IPv6 is not supported yet.