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 Example:
48 d23d2886 2023-07-30 op .Bd -literal -offset indent
49 ec35ef67 2023-08-20 op $ icbirc default.icb.net/slackers
50 d23d2886 2023-07-30 op .Ed
51 d23d2886 2023-07-30 op .Pp
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:
56 d23d2886 2023-07-30 op .Pp
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.
59 d23d2886 2023-07-30 op .Pp
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.
63 d23d2886 2023-07-30 op .Pp
64 d23d2886 2023-07-30 op .Sh SUPPORTED COMMANDS
65 d23d2886 2023-07-30 op .Nm
66 d23d2886 2023-07-30 op supports the following IRC commands:
67 d23d2886 2023-07-30 op .Pp
68 d23d2886 2023-07-30 op .Bl -tag -width MODExoxnickx
69 d23d2886 2023-07-30 op .It PASS
70 d23d2886 2023-07-30 op Set the default group, used during login.
71 d23d2886 2023-07-30 op .It NICK
72 d23d2886 2023-07-30 op Set or change nickname.
73 d23d2886 2023-07-30 op .It USER
74 d23d2886 2023-07-30 op Supply additional user information (like ident), used during login.
75 d23d2886 2023-07-30 op .It LIST
76 d23d2886 2023-07-30 op List all groups.
77 d23d2886 2023-07-30 op .It WHOIS
78 d23d2886 2023-07-30 op Shows information about a user.
79 d23d2886 2023-07-30 op .It WHO
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'.
84 d23d2886 2023-07-30 op .It JOIN
85 d23d2886 2023-07-30 op Join a group.
86 d23d2886 2023-07-30 op .It PRIVMSG
87 d23d2886 2023-07-30 op Send an open or personal message.
88 d23d2886 2023-07-30 op .It NOTICE
89 d23d2886 2023-07-30 op Same as PRIVMSG.
90 d23d2886 2023-07-30 op .It TOPIC
91 d23d2886 2023-07-30 op Set group topic.
92 d23d2886 2023-07-30 op .It KICK nick
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.
96 d23d2886 2023-07-30 op .It QUIT
97 d23d2886 2023-07-30 op Close client and server connection, wait for next client connection.
98 d23d2886 2023-07-30 op .El
99 d23d2886 2023-07-30 op .Pp
100 d23d2886 2023-07-30 op Additionally, the command RAWICB can be used to send custom ICB
101 d23d2886 2023-07-30 op commands.
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.
104 d23d2886 2023-07-30 op For example:
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.
108 d23d2886 2023-07-30 op .El
109 d23d2886 2023-07-30 op .Pp
110 d23d2886 2023-07-30 op .Sh SEE ALSO
111 d23d2886 2023-07-30 op .Rs
112 d23d2886 2023-07-30 op .%T Internet Relay Chat Protocol
113 d23d2886 2023-07-30 op .%O RFC 1459
114 d23d2886 2023-07-30 op .Re
115 d23d2886 2023-07-30 op .Rs
116 d23d2886 2023-07-30 op .%T Internet Relay Chat: Client Protocol
117 d23d2886 2023-07-30 op .%O RFC 2812
118 d23d2886 2023-07-30 op .Re
119 d23d2886 2023-07-30 op .Rs
120 d23d2886 2023-07-30 op .%T Internet Relay Chat: Channel Management
121 d23d2886 2023-07-30 op .%O RFC 2811
122 d23d2886 2023-07-30 op .Re
123 d23d2886 2023-07-30 op .Rs
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
126 d23d2886 2023-07-30 op .Re
127 d23d2886 2023-07-30 op .Rs
128 d23d2886 2023-07-30 op .%T The History of ICB
129 d23d2886 2023-07-30 op .%O http://www.icb.net/history.html
130 d23d2886 2023-07-30 op .Re
131 d23d2886 2023-07-30 op .Rs
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
134 d23d2886 2023-07-30 op .Re
135 d23d2886 2023-07-30 op .Sh HISTORY
136 d23d2886 2023-07-30 op The first version of
137 d23d2886 2023-07-30 op .Nm
138 d23d2886 2023-07-30 op was written in 2003.
139 d23d2886 2023-07-30 op .Sh AUTHORS
140 d23d2886 2023-07-30 op Daniel Hartmeier
141 d23d2886 2023-07-30 op .Aq daniel@benzedrine.cx
142 d23d2886 2023-07-30 op .Sh CAVEATS
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).
146 d23d2886 2023-07-30 op .Pp
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.
152 d23d2886 2023-07-30 op .Pp
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).
158 d23d2886 2023-07-30 op .Sh BUGS
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.
164 d23d2886 2023-07-30 op .Pp
165 d23d2886 2023-07-30 op IPv6 is not supported yet.