annotate src/protocols/irc/PROTOCOL @ 13967:99b9b58b19dd

[gaim-migrate @ 16523] Fix a crazy MSN crash. Basically it's possible to have more than one slplink associated with a given switchboard, but our code did not allow for that. I think it happens when you're in a multi-user chat and you do stuff with multiple users that involves slplinks. Like maybe file transfer and buddy icon related stuff. Tracking this down took an ungodly amount of time, but thanks to Meebo for letting me do it :-) committer: Tailor Script <tailor@pidgin.im>
author Mark Doliner <mark@kingant.net>
date Thu, 20 Jul 2006 07:31:15 +0000
parents 047256035ec6
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
2618
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
3
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
4
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
5
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
6
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
7 Network Working Group J. Oikarinen
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
8 Request for Comments: 1459 D. Reed
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
9 May 1993
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
10
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
11
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
12 Internet Relay Chat Protocol
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
13
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
14 Status of This Memo
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
15
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
16 This memo defines an Experimental Protocol for the Internet
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
17 community. Discussion and suggestions for improvement are requested.
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
18 Please refer to the current edition of the "IAB Official Protocol
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
19 Standards" for the standardization state and status of this protocol.
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
20 Distribution of this memo is unlimited.
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
21
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
22 Abstract
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
23
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
24 The IRC protocol was developed over the last 4 years since it was
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
25 first implemented as a means for users on a BBS to chat amongst
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
26 themselves. Now it supports a world-wide network of servers and
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
27 clients, and is stringing to cope with growth. Over the past 2 years,
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
28 the average number of users connected to the main IRC network has
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
29 grown by a factor of 10.
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
30
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
31 The IRC protocol is a text-based protocol, with the simplest client
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
32 being any socket program capable of connecting to the server.
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
33
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
34 Table of Contents
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
35
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
36 1. INTRODUCTION ............................................... 4
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
37 1.1 Servers ................................................ 4
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
38 1.2 Clients ................................................ 5
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
39 1.2.1 Operators .......................................... 5
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
40 1.3 Channels ................................................ 5
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
41 1.3.1 Channel Operators .................................... 6
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
42 2. THE IRC SPECIFICATION ....................................... 7
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
43 2.1 Overview ................................................ 7
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
44 2.2 Character codes ......................................... 7
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
45 2.3 Messages ................................................ 7
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
46 2.3.1 Message format in 'pseudo' BNF .................... 8
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
47 2.4 Numeric replies ......................................... 10
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
48 3. IRC Concepts ................................................ 10
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
49 3.1 One-to-one communication ................................ 10
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
50 3.2 One-to-many ............................................. 11
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
51 3.2.1 To a list .......................................... 11
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
52 3.2.2 To a group (channel) ............................... 11
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
53 3.2.3 To a host/server mask .............................. 12
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
54 3.3 One to all .............................................. 12
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
55
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
56
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
57
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
58 Oikarinen & Reed [Page 1]
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
59
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
60 RFC 1459 Internet Relay Chat Protocol May 1993
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
61
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
62
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
63 3.3.1 Client to Client ................................... 12
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
64 3.3.2 Clients to Server .................................. 12
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
65 3.3.3 Server to Server ................................... 12
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
66 4. MESSAGE DETAILS ............................................. 13
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
67 4.1 Connection Registration ................................. 13
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
68 4.1.1 Password message ................................... 14
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
69 4.1.2 Nickname message ................................... 14
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
70 4.1.3 User message ....................................... 15
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
71 4.1.4 Server message ..................................... 16
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
72 4.1.5 Operator message ................................... 17
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
73 4.1.6 Quit message ....................................... 17
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
74 4.1.7 Server Quit message ................................ 18
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
75 4.2 Channel operations ...................................... 19
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
76 4.2.1 Join message ....................................... 19
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
77 4.2.2 Part message ....................................... 20
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
78 4.2.3 Mode message ....................................... 21
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
79 4.2.3.1 Channel modes ................................. 21
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
80 4.2.3.2 User modes .................................... 22
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
81 4.2.4 Topic message ...................................... 23
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
82 4.2.5 Names message ...................................... 24
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
83 4.2.6 List message ....................................... 24
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
84 4.2.7 Invite message ..................................... 25
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
85 4.2.8 Kick message ....................................... 25
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
86 4.3 Server queries and commands ............................. 26
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
87 4.3.1 Version message .................................... 26
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
88 4.3.2 Stats message ...................................... 27
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
89 4.3.3 Links message ...................................... 28
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
90 4.3.4 Time message ....................................... 29
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
91 4.3.5 Connect message .................................... 29
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
92 4.3.6 Trace message ...................................... 30
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
93 4.3.7 Admin message ...................................... 31
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
94 4.3.8 Info message ....................................... 31
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
95 4.4 Sending messages ........................................ 32
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
96 4.4.1 Private messages ................................... 32
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
97 4.4.2 Notice messages .................................... 33
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
98 4.5 User-based queries ...................................... 33
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
99 4.5.1 Who query .......................................... 33
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
100 4.5.2 Whois query ........................................ 34
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
101 4.5.3 Whowas message ..................................... 35
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
102 4.6 Miscellaneous messages .................................. 35
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
103 4.6.1 Kill message ....................................... 36
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
104 4.6.2 Ping message ....................................... 37
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
105 4.6.3 Pong message ....................................... 37
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
106 4.6.4 Error message ...................................... 38
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
107 5. OPTIONAL MESSAGES ........................................... 38
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
108 5.1 Away message ............................................ 38
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
109 5.2 Rehash command .......................................... 39
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
110 5.3 Restart command ......................................... 39
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
111
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
112
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
113
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
114 Oikarinen & Reed [Page 2]
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
115
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
116 RFC 1459 Internet Relay Chat Protocol May 1993
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
117
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
118
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
119 5.4 Summon message .......................................... 40
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
120 5.5 Users message ........................................... 40
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
121 5.6 Operwall command ........................................ 41
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
122 5.7 Userhost message ........................................ 42
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
123 5.8 Ison message ............................................ 42
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
124 6. REPLIES ..................................................... 43
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
125 6.1 Error Replies ........................................... 43
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
126 6.2 Command responses ....................................... 48
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
127 6.3 Reserved numerics ....................................... 56
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
128 7. Client and server authentication ............................ 56
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
129 8. Current Implementations Details ............................. 56
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
130 8.1 Network protocol: TCP ................................... 57
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
131 8.1.1 Support of Unix sockets ............................ 57
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
132 8.2 Command Parsing ......................................... 57
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
133 8.3 Message delivery ........................................ 57
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
134 8.4 Connection 'Liveness' ................................... 58
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
135 8.5 Establishing a server-client connection ................. 58
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
136 8.6 Establishing a server-server connection ................. 58
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
137 8.6.1 State information exchange when connecting ......... 59
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
138 8.7 Terminating server-client connections ................... 59
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
139 8.8 Terminating server-server connections ................... 59
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
140 8.9 Tracking nickname changes ............................... 60
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
141 8.10 Flood control of clients ............................... 60
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
142 8.11 Non-blocking lookups ................................... 61
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
143 8.11.1 Hostname (DNS) lookups ............................ 61
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
144 8.11.2 Username (Ident) lookups .......................... 61
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
145 8.12 Configuration file ..................................... 61
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
146 8.12.1 Allowing clients to connect ....................... 62
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
147 8.12.2 Operators ......................................... 62
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
148 8.12.3 Allowing servers to connect ....................... 62
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
149 8.12.4 Administrivia ..................................... 63
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
150 8.13 Channel membership ..................................... 63
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
151 9. Current problems ............................................ 63
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
152 9.1 Scalability ............................................. 63
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
153 9.2 Labels .................................................. 63
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
154 9.2.1 Nicknames .......................................... 63
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
155 9.2.2 Channels ........................................... 64
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
156 9.2.3 Servers ............................................ 64
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
157 9.3 Algorithms .............................................. 64
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
158 10. Support and availability ................................... 64
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
159 11. Security Considerations .................................... 65
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
160 12. Authors' Addresses ......................................... 65
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
161
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
162
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
163
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
164
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
165
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
166
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
167
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
168
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
169
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
170 Oikarinen & Reed [Page 3]
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
171
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
172 RFC 1459 Internet Relay Chat Protocol May 1993
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
173
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
174
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
175 1. INTRODUCTION
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
176
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
177 The IRC (Internet Relay Chat) protocol has been designed over a
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
178 number of years for use with text based conferencing. This document
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
179 describes the current IRC protocol.
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
180
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
181 The IRC protocol has been developed on systems using the TCP/IP
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
182 network protocol, although there is no requirement that this remain
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
183 the only sphere in which it operates.
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
184
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
185 IRC itself is a teleconferencing system, which (through the use of
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
186 the client-server model) is well-suited to running on many machines
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
187 in a distributed fashion. A typical setup involves a single process
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
188 (the server) forming a central point for clients (or other servers)
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
189 to connect to, performing the required message delivery/multiplexing
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
190 and other functions.
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
191
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
192 1.1 Servers
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
193
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
194 The server forms the backbone of IRC, providing a point to which
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
195 clients may connect to to talk to each other, and a point for other
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
196 servers to connect to, forming an IRC network. The only network
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
197 configuration allowed for IRC servers is that of a spanning tree [see
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
198 Fig. 1] where each server acts as a central node for the rest of the
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
199 net it sees.
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
200
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
201
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
202 [ Server 15 ] [ Server 13 ] [ Server 14]
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
203 / \ /
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
204 / \ /
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
205 [ Server 11 ] ------ [ Server 1 ] [ Server 12]
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
206 / \ /
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
207 / \ /
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
208 [ Server 2 ] [ Server 3 ]
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
209 / \ \
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
210 / \ \
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
211 [ Server 4 ] [ Server 5 ] [ Server 6 ]
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
212 / | \ /
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
213 / | \ /
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
214 / | \____ /
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
215 / | \ /
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
216 [ Server 7 ] [ Server 8 ] [ Server 9 ] [ Server 10 ]
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
217
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
218 :
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
219 [ etc. ]
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
220 :
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
221
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
222 [ Fig. 1. Format of IRC server network ]
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
223
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
224
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
225
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
226 Oikarinen & Reed [Page 4]
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
227
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
228 RFC 1459 Internet Relay Chat Protocol May 1993
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
229
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
230
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
231 1.2 Clients
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
232
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
233 A client is anything connecting to a server that is not another
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
234 server. Each client is distinguished from other clients by a unique
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
235 nickname having a maximum length of nine (9) characters. See the
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
236 protocol grammar rules for what may and may not be used in a
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
237 nickname. In addition to the nickname, all servers must have the
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
238 following information about all clients: the real name of the host
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
239 that the client is running on, the username of the client on that
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
240 host, and the server to which the client is connected.
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
241
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
242 1.2.1 Operators
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
243
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
244 To allow a reasonable amount of order to be kept within the IRC
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
245 network, a special class of clients (operators) is allowed to perform
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
246 general maintenance functions on the network. Although the powers
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
247 granted to an operator can be considered as 'dangerous', they are
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
248 nonetheless required. Operators should be able to perform basic
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
249 network tasks such as disconnecting and reconnecting servers as
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
250 needed to prevent long-term use of bad network routing. In
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
251 recognition of this need, the protocol discussed herein provides for
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
252 operators only to be able to perform such functions. See sections
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
253 4.1.7 (SQUIT) and 4.3.5 (CONNECT).
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
254
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
255 A more controversial power of operators is the ability to remove a
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
256 user from the connected network by 'force', i.e. operators are able
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
257 to close the connection between any client and server. The
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
258 justification for this is delicate since its abuse is both
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
259 destructive and annoying. For further details on this type of
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
260 action, see section 4.6.1 (KILL).
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
261
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
262 1.3 Channels
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
263
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
264 A channel is a named group of one or more clients which will all
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
265 receive messages addressed to that channel. The channel is created
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
266 implicitly when the first client joins it, and the channel ceases to
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
267 exist when the last client leaves it. While channel exists, any
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
268 client can reference the channel using the name of the channel.
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
269
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
270 Channels names are strings (beginning with a '&' or '#' character) of
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
271 length up to 200 characters. Apart from the the requirement that the
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
272 first character being either '&' or '#'; the only restriction on a
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
273 channel name is that it may not contain any spaces (' '), a control G
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
274 (^G or ASCII 7), or a comma (',' which is used as a list item
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
275 separator by the protocol).
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
276
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
277 There are two types of channels allowed by this protocol. One is a
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
278 distributed channel which is known to all the servers that are
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
279
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
280
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
281
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
282 Oikarinen & Reed [Page 5]
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
283
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
284 RFC 1459 Internet Relay Chat Protocol May 1993
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
285
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
286
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
287 connected to the network. These channels are marked by the first
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
288 character being a only clients on the server where it exists may join
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
289 it. These are distinguished by a leading '&' character. On top of
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
290 these two types, there are the various channel modes available to
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
291 alter the characteristics of individual channels. See section 4.2.3
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
292 (MODE command) for more details on this.
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
293
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
294 To create a new channel or become part of an existing channel, a user
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
295 is required to JOIN the channel. If the channel doesn't exist prior
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
296 to joining, the channel is created and the creating user becomes a
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
297 channel operator. If the channel already exists, whether or not your
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
298 request to JOIN that channel is honoured depends on the current modes
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
299 of the channel. For example, if the channel is invite-only, (+i),
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
300 then you may only join if invited. As part of the protocol, a user
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
301 may be a part of several channels at once, but a limit of ten (10)
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
302 channels is recommended as being ample for both experienced and
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
303 novice users. See section 8.13 for more information on this.
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
304
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
305 If the IRC network becomes disjoint because of a split between two
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
306 servers, the channel on each side is only composed of those clients
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
307 which are connected to servers on the respective sides of the split,
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
308 possibly ceasing to exist on one side of the split. When the split
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
309 is healed, the connecting servers announce to each other who they
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
310 think is in each channel and the mode of that channel. If the
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
311 channel exists on both sides, the JOINs and MODEs are interpreted in
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
312 an inclusive manner so that both sides of the new connection will
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
313 agree about which clients are in the channel and what modes the
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
314 channel has.
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
315
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
316 1.3.1 Channel Operators
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
317
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
318 The channel operator (also referred to as a "chop" or "chanop") on a
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
319 given channel is considered to 'own' that channel. In recognition of
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
320 this status, channel operators are endowed with certain powers which
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
321 enable them to keep control and some sort of sanity in their channel.
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
322 As an owner of a channel, a channel operator is not required to have
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
323 reasons for their actions, although if their actions are generally
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
324 antisocial or otherwise abusive, it might be reasonable to ask an IRC
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
325 operator to intervene, or for the usersjust leave and go elsewhere
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
326 and form their own channel.
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
327
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
328 The commands which may only be used by channel operators are:
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
329
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
330 KICK - Eject a client from the channel
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
331 MODE - Change the channel's mode
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
332 INVITE - Invite a client to an invite-only channel (mode +i)
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
333 TOPIC - Change the channel topic in a mode +t channel
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
334
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
335
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
336
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
337
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
338 Oikarinen & Reed [Page 6]
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
339
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
340 RFC 1459 Internet Relay Chat Protocol May 1993
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
341
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
342
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
343 A channel operator is identified by the '@' symbol next to their
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
344 nickname whenever it is associated with a channel (ie replies to the
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
345 NAMES, WHO and WHOIS commands).
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
346
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
347 2. The IRC Specification
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
348
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
349 2.1 Overview
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
350
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
351 The protocol as described herein is for use both with server to
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
352 server and client to server connections. There are, however, more
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
353 restrictions on client connections (which are considered to be
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
354 untrustworthy) than on server connections.
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
355
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
356 2.2 Character codes
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
357
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
358 No specific character set is specified. The protocol is based on a a
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
359 set of codes which are composed of eight (8) bits, making up an
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
360 octet. Each message may be composed of any number of these octets;
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
361 however, some octet values are used for control codes which act as
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
362 message delimiters.
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
363
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
364 Regardless of being an 8-bit protocol, the delimiters and keywords
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
365 are such that protocol is mostly usable from USASCII terminal and a
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
366 telnet connection.
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
367
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
368 Because of IRC's scandanavian origin, the characters {}| are
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
369 considered to be the lower case equivalents of the characters []\,
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
370 respectively. This is a critical issue when determining the
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
371 equivalence of two nicknames.
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
372
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
373 2.3 Messages
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
374
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
375 Servers and clients send eachother messages which may or may not
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
376 generate a reply. If the message contains a valid command, as
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
377 described in later sections, the client should expect a reply as
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
378 specified but it is not advised to wait forever for the reply; client
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
379 to server and server to server communication is essentially
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
380 asynchronous in nature.
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
381
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
382 Each IRC message may consist of up to three main parts: the prefix
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
383 (optional), the command, and the command parameters (of which there
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
384 may be up to 15). The prefix, command, and all parameters are
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
385 separated by one (or more) ASCII space character(s) (0x20).
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
386
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
387 The presence of a prefix is indicated with a single leading ASCII
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
388 colon character (':', 0x3b), which must be the first character of the
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
389 message itself. There must be no gap (whitespace) between the colon
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
390 and the prefix. The prefix is used by servers to indicate the true
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
391
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
392
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
393
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
394 Oikarinen & Reed [Page 7]
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
395
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
396 RFC 1459 Internet Relay Chat Protocol May 1993
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
397
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
398
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
399 origin of the message. If the prefix is missing from the message, it
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
400 is assumed to have originated from the connection from which it was
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
401 received. Clients should not use prefix when sending a message from
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
402 themselves; if they use a prefix, the only valid prefix is the
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
403 registered nickname associated with the client. If the source
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
404 identified by the prefix cannot be found from the server's internal
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
405 database, or if the source is registered from a different link than
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
406 from which the message arrived, the server must ignore the message
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
407 silently.
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
408
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
409 The command must either be a valid IRC command or a three (3) digit
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
410 number represented in ASCII text.
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
411
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
412 IRC messages are always lines of characters terminated with a CR-LF
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
413 (Carriage Return - Line Feed) pair, and these messages shall not
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
414 exceed 512 characters in length, counting all characters including
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
415 the trailing CR-LF. Thus, there are 510 characters maximum allowed
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
416 for the command and its parameters. There is no provision for
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
417 continuation message lines. See section 7 for more details about
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
418 current implementations.
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
419
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
420 2.3.1 Message format in 'pseudo' BNF
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
421
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
422 The protocol messages must be extracted from the contiguous stream of
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
423 octets. The current solution is to designate two characters, CR and
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
424 LF, as message separators. Empty messages are silently ignored,
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
425 which permits use of the sequence CR-LF between messages
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
426 without extra problems.
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
427
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
428 The extracted message is parsed into the components <prefix>,
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
429 <command> and list of parameters matched either by <middle> or
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
430 <trailing> components.
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
431
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
432 The BNF representation for this is:
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
433
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
434
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
435 <message> ::= [':' <prefix> <SPACE> ] <command> <params> <crlf>
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
436 <prefix> ::= <servername> | <nick> [ '!' <user> ] [ '@' <host> ]
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
437 <command> ::= <letter> { <letter> } | <number> <number> <number>
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
438 <SPACE> ::= ' ' { ' ' }
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
439 <params> ::= <SPACE> [ ':' <trailing> | <middle> <params> ]
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
440
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
441 <middle> ::= <Any *non-empty* sequence of octets not including SPACE
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
442 or NUL or CR or LF, the first of which may not be ':'>
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
443 <trailing> ::= <Any, possibly *empty*, sequence of octets not including
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
444 NUL or CR or LF>
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
445
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
446 <crlf> ::= CR LF
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
447
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
448
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
449
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
450 Oikarinen & Reed [Page 8]
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
451
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
452 RFC 1459 Internet Relay Chat Protocol May 1993
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
453
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
454
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
455 NOTES:
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
456
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
457 1) <SPACE> is consists only of SPACE character(s) (0x20).
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
458 Specially notice that TABULATION, and all other control
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
459 characters are considered NON-WHITE-SPACE.
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
460
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
461 2) After extracting the parameter list, all parameters are equal,
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
462 whether matched by <middle> or <trailing>. <Trailing> is just
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
463 a syntactic trick to allow SPACE within parameter.
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
464
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
465 3) The fact that CR and LF cannot appear in parameter strings is
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
466 just artifact of the message framing. This might change later.
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
467
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
468 4) The NUL character is not special in message framing, and
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
469 basically could end up inside a parameter, but as it would
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
470 cause extra complexities in normal C string handling. Therefore
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
471 NUL is not allowed within messages.
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
472
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
473 5) The last parameter may be an empty string.
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
474
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
475 6) Use of the extended prefix (['!' <user> ] ['@' <host> ]) must
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
476 not be used in server to server communications and is only
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
477 intended for server to client messages in order to provide
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
478 clients with more useful information about who a message is
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
479 from without the need for additional queries.
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
480
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
481 Most protocol messages specify additional semantics and syntax for
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
482 the extracted parameter strings dictated by their position in the
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
483 list. For example, many server commands will assume that the first
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
484 parameter after the command is the list of targets, which can be
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
485 described with:
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
486
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
487 <target> ::= <to> [ "," <target> ]
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
488 <to> ::= <channel> | <user> '@' <servername> | <nick> | <mask>
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
489 <channel> ::= ('#' | '&') <chstring>
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
490 <servername> ::= <host>
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
491 <host> ::= see RFC 952 [DNS:4] for details on allowed hostnames
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
492 <nick> ::= <letter> { <letter> | <number> | <special> }
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
493 <mask> ::= ('#' | '$') <chstring>
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
494 <chstring> ::= <any 8bit code except SPACE, BELL, NUL, CR, LF and
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
495 comma (',')>
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
496
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
497 Other parameter syntaxes are:
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
498
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
499 <user> ::= <nonwhite> { <nonwhite> }
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
500 <letter> ::= 'a' ... 'z' | 'A' ... 'Z'
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
501 <number> ::= '0' ... '9'
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
502 <special> ::= '-' | '[' | ']' | '\' | '`' | '^' | '{' | '}'
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
503
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
504
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
505
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
506 Oikarinen & Reed [Page 9]
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
507
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
508 RFC 1459 Internet Relay Chat Protocol May 1993
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
509
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
510
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
511 <nonwhite> ::= <any 8bit code except SPACE (0x20), NUL (0x0), CR
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
512 (0xd), and LF (0xa)>
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
513
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
514 2.4 Numeric replies
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
515
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
516 Most of the messages sent to the server generate a reply of some
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
517 sort. The most common reply is the numeric reply, used for both
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
518 errors and normal replies. The numeric reply must be sent as one
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
519 message consisting of the sender prefix, the three digit numeric, and
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
520 the target of the reply. A numeric reply is not allowed to originate
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
521 from a client; any such messages received by a server are silently
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
522 dropped. In all other respects, a numeric reply is just like a normal
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
523 message, except that the keyword is made up of 3 numeric digits
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
524 rather than a string of letters. A list of different replies is
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
525 supplied in section 6.
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
526
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
527 3. IRC Concepts.
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
528
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
529 This section is devoted to describing the actual concepts behind the
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
530 organization of the IRC protocol and how the current
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
531 implementations deliver different classes of messages.
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
532
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
533
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
534
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
535 1--\
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
536 A D---4
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
537 2--/ \ /
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
538 B----C
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
539 / \
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
540 3 E
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
541
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
542 Servers: A, B, C, D, E Clients: 1, 2, 3, 4
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
543
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
544 [ Fig. 2. Sample small IRC network ]
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
545
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
546 3.1 One-to-one communication
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
547
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
548 Communication on a one-to-one basis is usually only performed by
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
549 clients, since most server-server traffic is not a result of servers
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
550 talking only to each other. To provide a secure means for clients to
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
551 talk to each other, it is required that all servers be able to send a
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
552 message in exactly one direction along the spanning tree in order to
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
553 reach any client. The path of a message being delivered is the
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
554 shortest path between any two points on the spanning tree.
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
555
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
556 The following examples all refer to Figure 2 above.
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
557
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
558
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
559
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
560
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
561
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
562 Oikarinen & Reed [Page 10]
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
563
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
564 RFC 1459 Internet Relay Chat Protocol May 1993
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
565
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
566
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
567 Example 1:
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
568 A message between clients 1 and 2 is only seen by server A, which
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
569 sends it straight to client 2.
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
570
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
571 Example 2:
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
572 A message between clients 1 and 3 is seen by servers A & B, and
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
573 client 3. No other clients or servers are allowed see the message.
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
574
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
575 Example 3:
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
576 A message between clients 2 and 4 is seen by servers A, B, C & D
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
577 and client 4 only.
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
578
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
579 3.2 One-to-many
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
580
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
581 The main goal of IRC is to provide a forum which allows easy and
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
582 efficient conferencing (one to many conversations). IRC offers
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
583 several means to achieve this, each serving its own purpose.
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
584
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
585 3.2.1 To a list
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
586
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
587 The least efficient style of one-to-many conversation is through
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
588 clients talking to a 'list' of users. How this is done is almost
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
589 self explanatory: the client gives a list of destinations to which
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
590 the message is to be delivered and the server breaks it up and
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
591 dispatches a separate copy of the message to each given destination.
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
592 This isn't as efficient as using a group since the destination list
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
593 is broken up and the dispatch sent without checking to make sure
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
594 duplicates aren't sent down each path.
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
595
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
596 3.2.2 To a group (channel)
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
597
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
598 In IRC the channel has a role equivalent to that of the multicast
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
599 group; their existence is dynamic (coming and going as people join
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
600 and leave channels) and the actual conversation carried out on a
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
601 channel is only sent to servers which are supporting users on a given
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
602 channel. If there are multiple users on a server in the same
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
603 channel, the message text is sent only once to that server and then
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
604 sent to each client on the channel. This action is then repeated for
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
605 each client-server combination until the original message has fanned
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
606 out and reached each member of the channel.
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
607
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
608 The following examples all refer to Figure 2.
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
609
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
610 Example 4:
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
611 Any channel with 1 client in it. Messages to the channel go to the
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
612 server and then nowhere else.
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
613
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
614
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
615
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
616
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
617
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
618 Oikarinen & Reed [Page 11]
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
619
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
620 RFC 1459 Internet Relay Chat Protocol May 1993
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
621
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
622
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
623 Example 5:
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
624 2 clients in a channel. All messages traverse a path as if they
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
625 were private messages between the two clients outside a channel.
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
626
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
627 Example 6:
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
628 Clients 1, 2 and 3 in a channel. All messages to the channel are
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
629 sent to all clients and only those servers which must be traversed
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
630 by the message if it were a private message to a single client. If
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
631 client 1 sends a message, it goes back to client 2 and then via
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
632 server B to client 3.
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
633
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
634 3.2.3 To a host/server mask
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
635
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
636 To provide IRC operators with some mechanism to send messages to a
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
637 large body of related users, host and server mask messages are
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
638 provided. These messages are sent to users whose host or server
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
639 information match that of the mask. The messages are only sent to
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
640 locations where users are, in a fashion similar to that of channels.
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
641
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
642 3.3 One-to-all
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
643
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
644 The one-to-all type of message is better described as a broadcast
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
645 message, sent to all clients or servers or both. On a large network
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
646 of users and servers, a single message can result in a lot of traffic
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
647 being sent over the network in an effort to reach all of the desired
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
648 destinations.
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
649
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
650 For some messages, there is no option but to broadcast it to all
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
651 servers so that the state information held by each server is
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
652 reasonably consistent between servers.
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
653
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
654 3.3.1 Client-to-Client
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
655
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
656 There is no class of message which, from a single message, results in
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
657 a message being sent to every other client.
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
658
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
659 3.3.2 Client-to-Server
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
660
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
661 Most of the commands which result in a change of state information
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
662 (such as channel membership, channel mode, user status, etc) must be
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
663 sent to all servers by default, and this distribution may not be
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
664 changed by the client.
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
665
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
666 3.3.3 Server-to-Server.
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
667
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
668 While most messages between servers are distributed to all 'other'
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
669 servers, this is only required for any message that affects either a
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
670 user, channel or server. Since these are the basic items found in
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
671
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
672
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
673
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
674 Oikarinen & Reed [Page 12]
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
675
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
676 RFC 1459 Internet Relay Chat Protocol May 1993
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
677
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
678
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
679 IRC, nearly all messages originating from a server are broadcast to
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
680 all other connected servers.
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
681
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
682 4. Message details
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
683
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
684 On the following pages are descriptions of each message recognized by
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
685 the IRC server and client. All commands described in this section
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
686 must be implemented by any server for this protocol.
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
687
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
688 Where the reply ERR_NOSUCHSERVER is listed, it means that the
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
689 <server> parameter could not be found. The server must not send any
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
690 other replies after this for that command.
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
691
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
692 The server to which a client is connected is required to parse the
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
693 complete message, returning any appropriate errors. If the server
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
694 encounters a fatal error while parsing a message, an error must be
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
695 sent back to the client and the parsing terminated. A fatal error
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
696 may be considered to be incorrect command, a destination which is
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
697 otherwise unknown to the server (server, nick or channel names fit
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
698 this category), not enough parameters or incorrect privileges.
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
699
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
700 If a full set of parameters is presented, then each must be checked
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
701 for validity and appropriate responses sent back to the client. In
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
702 the case of messages which use parameter lists using the comma as an
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
703 item separator, a reply must be sent for each item.
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
704
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
705 In the examples below, some messages appear using the full format:
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
706
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
707 :Name COMMAND parameter list
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
708
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
709 Such examples represent a message from "Name" in transit between
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
710 servers, where it is essential to include the name of the original
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
711 sender of the message so remote servers may send back a reply along
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
712 the correct path.
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
713
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
714 4.1 Connection Registration
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
715
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
716 The commands described here are used to register a connection with an
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
717 IRC server as either a user or a server as well as correctly
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
718 disconnect.
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
719
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
720 A "PASS" command is not required for either client or server
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
721 connection to be registered, but it must precede the server message
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
722 or the latter of the NICK/USER combination. It is strongly
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
723 recommended that all server connections have a password in order to
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
724 give some level of security to the actual connections. The
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
725 recommended order for a client to register is as follows:
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
726
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
727
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
728
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
729
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
730 Oikarinen & Reed [Page 13]
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
731
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
732 RFC 1459 Internet Relay Chat Protocol May 1993
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
733
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
734
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
735 1. Pass message
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
736 2. Nick message
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
737 3. User message
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
738
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
739 4.1.1 Password message
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
740
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
741
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
742 Command: PASS
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
743 Parameters: <password>
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
744
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
745 The PASS command is used to set a 'connection password'. The
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
746 password can and must be set before any attempt to register the
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
747 connection is made. Currently this requires that clients send a PASS
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
748 command before sending the NICK/USER combination and servers *must*
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
749 send a PASS command before any SERVER command. The password supplied
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
750 must match the one contained in the C/N lines (for servers) or I
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
751 lines (for clients). It is possible to send multiple PASS commands
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
752 before registering but only the last one sent is used for
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
753 verification and it may not be changed once registered. Numeric
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
754 Replies:
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
755
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
756 ERR_NEEDMOREPARAMS ERR_ALREADYREGISTRED
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
757
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
758 Example:
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
759
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
760 PASS secretpasswordhere
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
761
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
762 4.1.2 Nick message
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
763
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
764 Command: NICK
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
765 Parameters: <nickname> [ <hopcount> ]
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
766
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
767 NICK message is used to give user a nickname or change the previous
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
768 one. The <hopcount> parameter is only used by servers to indicate
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
769 how far away a nick is from its home server. A local connection has
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
770 a hopcount of 0. If supplied by a client, it must be ignored.
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
771
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
772 If a NICK message arrives at a server which already knows about an
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
773 identical nickname for another client, a nickname collision occurs.
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
774 As a result of a nickname collision, all instances of the nickname
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
775 are removed from the server's database, and a KILL command is issued
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
776 to remove the nickname from all other server's database. If the NICK
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
777 message causing the collision was a nickname change, then the
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
778 original (old) nick must be removed as well.
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
779
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
780 If the server recieves an identical NICK from a client which is
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
781 directly connected, it may issue an ERR_NICKCOLLISION to the local
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
782 client, drop the NICK command, and not generate any kills.
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
783
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
784
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
785
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
786 Oikarinen & Reed [Page 14]
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
787
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
788 RFC 1459 Internet Relay Chat Protocol May 1993
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
789
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
790
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
791 Numeric Replies:
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
792
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
793 ERR_NONICKNAMEGIVEN ERR_ERRONEUSNICKNAME
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
794 ERR_NICKNAMEINUSE ERR_NICKCOLLISION
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
795
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
796 Example:
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
797
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
798 NICK Wiz ; Introducing new nick "Wiz".
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
799
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
800 :WiZ NICK Kilroy ; WiZ changed his nickname to Kilroy.
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
801
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
802 4.1.3 User message
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
803
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
804 Command: USER
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
805 Parameters: <username> <hostname> <servername> <realname>
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
806
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
807 The USER message is used at the beginning of connection to specify
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
808 the username, hostname, servername and realname of s new user. It is
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
809 also used in communication between servers to indicate new user
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
810 arriving on IRC, since only after both USER and NICK have been
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
811 received from a client does a user become registered.
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
812
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
813 Between servers USER must to be prefixed with client's NICKname.
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
814 Note that hostname and servername are normally ignored by the IRC
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
815 server when the USER command comes from a directly connected client
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
816 (for security reasons), but they are used in server to server
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
817 communication. This means that a NICK must always be sent to a
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
818 remote server when a new user is being introduced to the rest of the
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
819 network before the accompanying USER is sent.
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
820
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
821 It must be noted that realname parameter must be the last parameter,
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
822 because it may contain space characters and must be prefixed with a
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
823 colon (':') to make sure this is recognised as such.
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
824
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
825 Since it is easy for a client to lie about its username by relying
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
826 solely on the USER message, the use of an "Identity Server" is
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
827 recommended. If the host which a user connects from has such a
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
828 server enabled the username is set to that as in the reply from the
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
829 "Identity Server".
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
830
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
831 Numeric Replies:
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
832
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
833 ERR_NEEDMOREPARAMS ERR_ALREADYREGISTRED
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
834
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
835 Examples:
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
836
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
837
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
838 USER guest tolmoon tolsun :Ronnie Reagan
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
839
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
840
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
841
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
842 Oikarinen & Reed [Page 15]
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
843
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
844 RFC 1459 Internet Relay Chat Protocol May 1993
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
845
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
846
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
847 ; User registering themselves with a
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
848 username of "guest" and real name
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
849 "Ronnie Reagan".
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
850
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
851
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
852 :testnick USER guest tolmoon tolsun :Ronnie Reagan
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
853 ; message between servers with the
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
854 nickname for which the USER command
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
855 belongs to
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
856
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
857 4.1.4 Server message
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
858
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
859 Command: SERVER
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
860 Parameters: <servername> <hopcount> <info>
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
861
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
862 The server message is used to tell a server that the other end of a
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
863 new connection is a server. This message is also used to pass server
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
864 data over whole net. When a new server is connected to net,
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
865 information about it be broadcast to the whole network. <hopcount>
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
866 is used to give all servers some internal information on how far away
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
867 all servers are. With a full server list, it would be possible to
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
868 construct a map of the entire server tree, but hostmasks prevent this
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
869 from being done.
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
870
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
871 The SERVER message must only be accepted from either (a) a connection
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
872 which is yet to be registered and is attempting to register as a
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
873 server, or (b) an existing connection to another server, in which
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
874 case the SERVER message is introducing a new server behind that
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
875 server.
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
876
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
877 Most errors that occur with the receipt of a SERVER command result in
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
878 the connection being terminated by the destination host (target
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
879 SERVER). Error replies are usually sent using the "ERROR" command
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
880 rather than the numeric since the ERROR command has several useful
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
881 properties which make it useful here.
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
882
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
883 If a SERVER message is parsed and attempts to introduce a server
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
884 which is already known to the receiving server, the connection from
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
885 which that message must be closed (following the correct procedures),
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
886 since a duplicate route to a server has formed and the acyclic nature
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
887 of the IRC tree broken.
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
888
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
889 Numeric Replies:
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
890
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
891 ERR_ALREADYREGISTRED
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
892
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
893 Example:
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
894
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
895
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
896
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
897
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
898 Oikarinen & Reed [Page 16]
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
899
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
900 RFC 1459 Internet Relay Chat Protocol May 1993
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
901
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
902
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
903 SERVER test.oulu.fi 1 :[tolsun.oulu.fi] Experimental server
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
904 ; New server test.oulu.fi introducing
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
905 itself and attempting to register. The
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
906 name in []'s is the hostname for the
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
907 host running test.oulu.fi.
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
908
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
909
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
910 :tolsun.oulu.fi SERVER csd.bu.edu 5 :BU Central Server
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
911 ; Server tolsun.oulu.fi is our uplink
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
912 for csd.bu.edu which is 5 hops away.
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
913
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
914 4.1.5 Oper
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
915
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
916 Command: OPER
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
917 Parameters: <user> <password>
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
918
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
919 OPER message is used by a normal user to obtain operator privileges.
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
920 The combination of <user> and <password> are required to gain
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
921 Operator privileges.
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
922
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
923 If the client sending the OPER command supplies the correct password
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
924 for the given user, the server then informs the rest of the network
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
925 of the new operator by issuing a "MODE +o" for the clients nickname.
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
926
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
927 The OPER message is client-server only.
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
928
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
929 Numeric Replies:
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
930
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
931 ERR_NEEDMOREPARAMS RPL_YOUREOPER
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
932 ERR_NOOPERHOST ERR_PASSWDMISMATCH
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
933
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
934 Example:
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
935
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
936 OPER foo bar ; Attempt to register as an operator
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
937 using a username of "foo" and "bar" as
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
938 the password.
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
939
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
940 4.1.6 Quit
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
941
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
942 Command: QUIT
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
943 Parameters: [<Quit message>]
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
944
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
945 A client session is ended with a quit message. The server must close
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
946 the connection to a client which sends a QUIT message. If a "Quit
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
947 Message" is given, this will be sent instead of the default message,
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
948 the nickname.
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
949
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
950 When netsplits (disconnecting of two servers) occur, the quit message
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
951
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
952
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
953
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
954 Oikarinen & Reed [Page 17]
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
955
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
956 RFC 1459 Internet Relay Chat Protocol May 1993
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
957
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
958
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
959 is composed of the names of two servers involved, separated by a
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
960 space. The first name is that of the server which is still connected
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
961 and the second name is that of the server that has become
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
962 disconnected.
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
963
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
964 If, for some other reason, a client connection is closed without the
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
965 client issuing a QUIT command (e.g. client dies and EOF occurs
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
966 on socket), the server is required to fill in the quit message with
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
967 some sort of message reflecting the nature of the event which
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
968 caused it to happen.
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
969
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
970 Numeric Replies:
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
971
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
972 None.
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
973
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
974 Examples:
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
975
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
976 QUIT :Gone to have lunch ; Preferred message format.
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
977
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
978 4.1.7 Server quit message
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
979
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
980 Command: SQUIT
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
981 Parameters: <server> <comment>
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
982
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
983 The SQUIT message is needed to tell about quitting or dead servers.
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
984 If a server wishes to break the connection to another server it must
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
985 send a SQUIT message to the other server, using the the name of the
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
986 other server as the server parameter, which then closes its
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
987 connection to the quitting server.
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
988
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
989 This command is also available operators to help keep a network of
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
990 IRC servers connected in an orderly fashion. Operators may also
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
991 issue an SQUIT message for a remote server connection. In this case,
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
992 the SQUIT must be parsed by each server inbetween the operator and
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
993 the remote server, updating the view of the network held by each
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
994 server as explained below.
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
995
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
996 The <comment> should be supplied by all operators who execute a SQUIT
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
997 for a remote server (that is not connected to the server they are
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
998 currently on) so that other operators are aware for the reason of
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
999 this action. The <comment> is also filled in by servers which may
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1000 place an error or similar message here.
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1001
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1002 Both of the servers which are on either side of the connection being
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1003 closed are required to to send out a SQUIT message (to all its other
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1004 server connections) for all other servers which are considered to be
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1005 behind that link.
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1006
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1007
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1008
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1009
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1010 Oikarinen & Reed [Page 18]
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1011
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1012 RFC 1459 Internet Relay Chat Protocol May 1993
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1013
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1014
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1015 Similarly, a QUIT message must be sent to the other connected servers
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1016 rest of the network on behalf of all clients behind that link. In
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1017 addition to this, all channel members of a channel which lost a
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1018 member due to the split must be sent a QUIT message.
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1019
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1020 If a server connection is terminated prematurely (e.g. the server on
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1021 the other end of the link died), the server which detects
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1022 this disconnection is required to inform the rest of the network
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1023 that the connection has closed and fill in the comment field
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1024 with something appropriate.
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1025
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1026 Numeric replies:
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1027
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1028 ERR_NOPRIVILEGES ERR_NOSUCHSERVER
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1029
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1030 Example:
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1031
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1032 SQUIT tolsun.oulu.fi :Bad Link ? ; the server link tolson.oulu.fi has
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1033 been terminated because of "Bad Link".
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1034
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1035 :Trillian SQUIT cm22.eng.umd.edu :Server out of control
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1036 ; message from Trillian to disconnect
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1037 "cm22.eng.umd.edu" from the net
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1038 because "Server out of control".
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1039
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1040 4.2 Channel operations
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1041
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1042 This group of messages is concerned with manipulating channels, their
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1043 properties (channel modes), and their contents (typically clients).
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1044 In implementing these, a number of race conditions are inevitable
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1045 when clients at opposing ends of a network send commands which will
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1046 ultimately clash. It is also required that servers keep a nickname
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1047 history to ensure that wherever a <nick> parameter is given, the
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1048 server check its history in case it has recently been changed.
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1049
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1050 4.2.1 Join message
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1051
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1052 Command: JOIN
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1053 Parameters: <channel>{,<channel>} [<key>{,<key>}]
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1054
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1055 The JOIN command is used by client to start listening a specific
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1056 channel. Whether or not a client is allowed to join a channel is
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1057 checked only by the server the client is connected to; all other
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1058 servers automatically add the user to the channel when it is received
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1059 from other servers. The conditions which affect this are as follows:
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1060
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1061 1. the user must be invited if the channel is invite-only;
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1062
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1063
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1064
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1065
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1066 Oikarinen & Reed [Page 19]
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1067
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1068 RFC 1459 Internet Relay Chat Protocol May 1993
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1069
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1070
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1071 2. the user's nick/username/hostname must not match any
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1072 active bans;
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1073
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1074 3. the correct key (password) must be given if it is set.
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1075
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1076 These are discussed in more detail under the MODE command (see
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1077 section 4.2.3 for more details).
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1078
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1079 Once a user has joined a channel, they receive notice about all
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1080 commands their server receives which affect the channel. This
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1081 includes MODE, KICK, PART, QUIT and of course PRIVMSG/NOTICE. The
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1082 JOIN command needs to be broadcast to all servers so that each server
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1083 knows where to find the users who are on the channel. This allows
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1084 optimal delivery of PRIVMSG/NOTICE messages to the channel.
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1085
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1086 If a JOIN is successful, the user is then sent the channel's topic
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1087 (using RPL_TOPIC) and the list of users who are on the channel (using
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1088 RPL_NAMREPLY), which must include the user joining.
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1089
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1090 Numeric Replies:
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1091
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1092 ERR_NEEDMOREPARAMS ERR_BANNEDFROMCHAN
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1093 ERR_INVITEONLYCHAN ERR_BADCHANNELKEY
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1094 ERR_CHANNELISFULL ERR_BADCHANMASK
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1095 ERR_NOSUCHCHANNEL ERR_TOOMANYCHANNELS
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1096 RPL_TOPIC
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1097
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1098 Examples:
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1099
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1100 JOIN #foobar ; join channel #foobar.
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1101
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1102 JOIN &foo fubar ; join channel &foo using key "fubar".
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1103
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1104 JOIN #foo,&bar fubar ; join channel #foo using key "fubar"
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1105 and &bar using no key.
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1106
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1107 JOIN #foo,#bar fubar,foobar ; join channel #foo using key "fubar".
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1108 and channel #bar using key "foobar".
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1109
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1110 JOIN #foo,#bar ; join channels #foo and #bar.
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1111
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1112 :WiZ JOIN #Twilight_zone ; JOIN message from WiZ
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1113
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1114 4.2.2 Part message
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1115
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1116 Command: PART
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1117 Parameters: <channel>{,<channel>}
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1118
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1119
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1120
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1121
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1122 Oikarinen & Reed [Page 20]
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1123
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1124 RFC 1459 Internet Relay Chat Protocol May 1993
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1125
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1126
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1127 The PART message causes the client sending the message to be removed
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1128 from the list of active users for all given channels listed in the
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1129 parameter string.
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1130
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1131 Numeric Replies:
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1132
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1133 ERR_NEEDMOREPARAMS ERR_NOSUCHCHANNEL
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1134 ERR_NOTONCHANNEL
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1135
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1136 Examples:
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1137
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1138 PART #twilight_zone ; leave channel "#twilight_zone"
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1139
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1140 PART #oz-ops,&group5 ; leave both channels "&group5" and
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1141 "#oz-ops".
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1142
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1143 4.2.3 Mode message
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1144
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1145 Command: MODE
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1146
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1147 The MODE command is a dual-purpose command in IRC. It allows both
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1148 usernames and channels to have their mode changed. The rationale for
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1149 this choice is that one day nicknames will be obsolete and the
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1150 equivalent property will be the channel.
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1151
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1152 When parsing MODE messages, it is recommended that the entire message
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1153 be parsed first and then the changes which resulted then passed on.
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1154
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1155 4.2.3.1 Channel modes
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1156
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1157 Parameters: <channel> {[+|-]|o|p|s|i|t|n|b|v} [<limit>] [<user>]
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1158 [<ban mask>]
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1159
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1160 The MODE command is provided so that channel operators may change the
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1161 characteristics of `their' channel. It is also required that servers
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1162 be able to change channel modes so that channel operators may be
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1163 created.
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1164
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1165 The various modes available for channels are as follows:
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1166
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1167 o - give/take channel operator privileges;
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1168 p - private channel flag;
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1169 s - secret channel flag;
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1170 i - invite-only channel flag;
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1171 t - topic settable by channel operator only flag;
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1172 n - no messages to channel from clients on the outside;
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1173 m - moderated channel;
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1174 l - set the user limit to channel;
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1175
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1176
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1177
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1178 Oikarinen & Reed [Page 21]
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1179
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1180 RFC 1459 Internet Relay Chat Protocol May 1993
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1181
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1182
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1183 b - set a ban mask to keep users out;
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1184 v - give/take the ability to speak on a moderated channel;
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1185 k - set a channel key (password).
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1186
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1187 When using the 'o' and 'b' options, a restriction on a total of three
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1188 per mode command has been imposed. That is, any combination of 'o'
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1189 and
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1190
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1191 4.2.3.2 User modes
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1192
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1193 Parameters: <nickname> {[+|-]|i|w|s|o}
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1194
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1195 The user MODEs are typically changes which affect either how the
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1196 client is seen by others or what 'extra' messages the client is sent.
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1197 A user MODE command may only be accepted if both the sender of the
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1198 message and the nickname given as a parameter are both the same.
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1199
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1200 The available modes are as follows:
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1201
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1202 i - marks a users as invisible;
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1203 s - marks a user for receipt of server notices;
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1204 w - user receives wallops;
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1205 o - operator flag.
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1206
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1207 Additional modes may be available later on.
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1208
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1209 If a user attempts to make themselves an operator using the "+o"
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1210 flag, the attempt should be ignored. There is no restriction,
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1211 however, on anyone `deopping' themselves (using "-o"). Numeric
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1212 Replies:
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1213
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1214 ERR_NEEDMOREPARAMS RPL_CHANNELMODEIS
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1215 ERR_CHANOPRIVSNEEDED ERR_NOSUCHNICK
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1216 ERR_NOTONCHANNEL ERR_KEYSET
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1217 RPL_BANLIST RPL_ENDOFBANLIST
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1218 ERR_UNKNOWNMODE ERR_NOSUCHCHANNEL
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1219
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1220 ERR_USERSDONTMATCH RPL_UMODEIS
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1221 ERR_UMODEUNKNOWNFLAG
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1222
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1223 Examples:
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1224
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1225 Use of Channel Modes:
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1226
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1227 MODE #Finnish +im ; Makes #Finnish channel moderated and
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1228 'invite-only'.
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1229
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1230 MODE #Finnish +o Kilroy ; Gives 'chanop' privileges to Kilroy on
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1231
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1232
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1233
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1234 Oikarinen & Reed [Page 22]
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1235
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1236 RFC 1459 Internet Relay Chat Protocol May 1993
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1237
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1238
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1239 channel #Finnish.
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1240
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1241 MODE #Finnish +v Wiz ; Allow WiZ to speak on #Finnish.
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1242
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1243 MODE #Fins -s ; Removes 'secret' flag from channel
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1244 #Fins.
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1245
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1246 MODE #42 +k oulu ; Set the channel key to "oulu".
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1247
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1248 MODE #eu-opers +l 10 ; Set the limit for the number of users
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1249 on channel to 10.
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1250
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1251 MODE &oulu +b ; list ban masks set for channel.
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1252
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1253 MODE &oulu +b *!*@* ; prevent all users from joining.
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1254
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1255 MODE &oulu +b *!*@*.edu ; prevent any user from a hostname
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1256 matching *.edu from joining.
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1257
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1258 Use of user Modes:
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1259
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1260 :MODE WiZ -w ; turns reception of WALLOPS messages
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1261 off for WiZ.
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1262
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1263 :Angel MODE Angel +i ; Message from Angel to make themselves
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1264 invisible.
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1265
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1266 MODE WiZ -o ; WiZ 'deopping' (removing operator
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1267 status). The plain reverse of this
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1268 command ("MODE WiZ +o") must not be
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1269 allowed from users since would bypass
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1270 the OPER command.
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1271
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1272 4.2.4 Topic message
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1273
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1274 Command: TOPIC
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1275 Parameters: <channel> [<topic>]
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1276
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1277 The TOPIC message is used to change or view the topic of a channel.
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1278 The topic for channel <channel> is returned if there is no <topic>
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1279 given. If the <topic> parameter is present, the topic for that
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1280 channel will be changed, if the channel modes permit this action.
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1281
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1282 Numeric Replies:
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1283
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1284 ERR_NEEDMOREPARAMS ERR_NOTONCHANNEL
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1285 RPL_NOTOPIC RPL_TOPIC
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1286 ERR_CHANOPRIVSNEEDED
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1287
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1288
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1289
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1290 Oikarinen & Reed [Page 23]
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1291
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1292 RFC 1459 Internet Relay Chat Protocol May 1993
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1293
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1294
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1295 Examples:
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1296
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1297 :Wiz TOPIC #test :New topic ;User Wiz setting the topic.
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1298
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1299 TOPIC #test :another topic ;set the topic on #test to "another
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1300 topic".
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1301
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1302 TOPIC #test ; check the topic for #test.
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1303
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1304 4.2.5 Names message
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1305
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1306 Command: NAMES
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1307 Parameters: [<channel>{,<channel>}]
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1308
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1309 By using the NAMES command, a user can list all nicknames that are
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1310 visible to them on any channel that they can see. Channel names
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1311 which they can see are those which aren't private (+p) or secret (+s)
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1312 or those which they are actually on. The <channel> parameter
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1313 specifies which channel(s) to return information about if valid.
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1314 There is no error reply for bad channel names.
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1315
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1316 If no <channel> parameter is given, a list of all channels and their
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1317 occupants is returned. At the end of this list, a list of users who
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1318 are visible but either not on any channel or not on a visible channel
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1319 are listed as being on `channel' "*".
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1320
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1321 Numerics:
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1322
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1323 RPL_NAMREPLY RPL_ENDOFNAMES
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1324
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1325 Examples:
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1326
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1327 NAMES #twilight_zone,#42 ; list visible users on #twilight_zone
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1328 and #42 if the channels are visible to
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1329 you.
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1330
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1331 NAMES ; list all visible channels and users
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1332
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1333 4.2.6 List message
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1334
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1335 Command: LIST
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1336 Parameters: [<channel>{,<channel>} [<server>]]
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1337
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1338 The list message is used to list channels and their topics. If the
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1339 <channel> parameter is used, only the status of that channel
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1340 is displayed. Private channels are listed (without their
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1341 topics) as channel "Prv" unless the client generating the query is
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1342 actually on that channel. Likewise, secret channels are not listed
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1343
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1344
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1345
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1346 Oikarinen & Reed [Page 24]
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1347
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1348 RFC 1459 Internet Relay Chat Protocol May 1993
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1349
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1350
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1351 at all unless the client is a member of the channel in question.
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1352
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1353 Numeric Replies:
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1354
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1355 ERR_NOSUCHSERVER RPL_LISTSTART
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1356 RPL_LIST RPL_LISTEND
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1357
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1358 Examples:
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1359
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1360 LIST ; List all channels.
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1361
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1362 LIST #twilight_zone,#42 ; List channels #twilight_zone and #42
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1363
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1364 4.2.7 Invite message
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1365
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1366 Command: INVITE
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1367 Parameters: <nickname> <channel>
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1368
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1369 The INVITE message is used to invite users to a channel. The
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1370 parameter <nickname> is the nickname of the person to be invited to
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1371 the target channel <channel>. There is no requirement that the
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1372 channel the target user is being invited to must exist or be a valid
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1373 channel. To invite a user to a channel which is invite only (MODE
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1374 +i), the client sending the invite must be recognised as being a
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1375 channel operator on the given channel.
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1376
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1377 Numeric Replies:
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1378
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1379 ERR_NEEDMOREPARAMS ERR_NOSUCHNICK
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1380 ERR_NOTONCHANNEL ERR_USERONCHANNEL
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1381 ERR_CHANOPRIVSNEEDED
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1382 RPL_INVITING RPL_AWAY
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1383
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1384 Examples:
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1385
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1386 :Angel INVITE Wiz #Dust ; User Angel inviting WiZ to channel
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1387 #Dust
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1388
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1389 INVITE Wiz #Twilight_Zone ; Command to invite WiZ to
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1390 #Twilight_zone
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1391
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1392 4.2.8 Kick command
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1393
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1394 Command: KICK
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1395 Parameters: <channel> <user> [<comment>]
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1396
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1397 The KICK command can be used to forcibly remove a user from a
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1398 channel. It 'kicks them out' of the channel (forced PART).
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1399
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1400
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1401
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1402 Oikarinen & Reed [Page 25]
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1403
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1404 RFC 1459 Internet Relay Chat Protocol May 1993
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1405
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1406
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1407 Only a channel operator may kick another user out of a channel.
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1408 Each server that receives a KICK message checks that it is valid
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1409 (ie the sender is actually a channel operator) before removing
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1410 the victim from the channel.
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1411
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1412 Numeric Replies:
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1413
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1414 ERR_NEEDMOREPARAMS ERR_NOSUCHCHANNEL
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1415 ERR_BADCHANMASK ERR_CHANOPRIVSNEEDED
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1416 ERR_NOTONCHANNEL
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1417
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1418 Examples:
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1419
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1420 KICK &Melbourne Matthew ; Kick Matthew from &Melbourne
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1421
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1422 KICK #Finnish John :Speaking English
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1423 ; Kick John from #Finnish using
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1424 "Speaking English" as the reason
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1425 (comment).
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1426
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1427 :WiZ KICK #Finnish John ; KICK message from WiZ to remove John
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1428 from channel #Finnish
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1429
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1430 NOTE:
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1431 It is possible to extend the KICK command parameters to the
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1432 following:
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1433
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1434 <channel>{,<channel>} <user>{,<user>} [<comment>]
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1435
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1436 4.3 Server queries and commands
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1437
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1438 The server query group of commands has been designed to return
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1439 information about any server which is connected to the network. All
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1440 servers connected must respond to these queries and respond
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1441 correctly. Any invalid response (or lack thereof) must be considered
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1442 a sign of a broken server and it must be disconnected/disabled as
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1443 soon as possible until the situation is remedied.
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1444
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1445 In these queries, where a parameter appears as "<server>", it will
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1446 usually mean it can be a nickname or a server or a wildcard name of
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1447 some sort. For each parameter, however, only one query and set of
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1448 replies is to be generated.
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1449
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1450 4.3.1 Version message
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1451
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1452 Command: VERSION
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1453 Parameters: [<server>]
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1454
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1455
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1456
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1457
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1458 Oikarinen & Reed [Page 26]
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1459
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1460 RFC 1459 Internet Relay Chat Protocol May 1993
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1461
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1462
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1463 The VERSION message is used to query the version of the server
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1464 program. An optional parameter <server> is used to query the version
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1465 of the server program which a client is not directly connected to.
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1466
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1467 Numeric Replies:
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1468
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1469 ERR_NOSUCHSERVER RPL_VERSION
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1470
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1471 Examples:
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1472
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1473 :Wiz VERSION *.se ; message from Wiz to check the version
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1474 of a server matching "*.se"
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1475
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1476 VERSION tolsun.oulu.fi ; check the version of server
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1477 "tolsun.oulu.fi".
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1478
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1479 4.3.2 Stats message
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1480
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1481 Command: STATS
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1482 Parameters: [<query> [<server>]]
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1483
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1484 The stats message is used to query statistics of certain server. If
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1485 <server> parameter is omitted, only the end of stats reply is sent
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1486 back. The implementation of this command is highly dependent on the
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1487 server which replies, although the server must be able to supply
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1488 information as described by the queries below (or similar).
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1489
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1490 A query may be given by any single letter which is only checked by
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1491 the destination server (if given as the <server> parameter) and is
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1492 otherwise passed on by intermediate servers, ignored and unaltered.
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1493 The following queries are those found in the current IRC
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1494 implementation and provide a large portion of the setup information
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1495 for that server. Although these may not be supported in the same way
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1496 by other versions, all servers should be able to supply a valid reply
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1497 to a STATS query which is consistent with the reply formats currently
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1498 used and the purpose of the query.
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1499
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1500 The currently supported queries are:
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1501
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1502 c - returns a list of servers which the server may connect
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1503 to or allow connections from;
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1504 h - returns a list of servers which are either forced to be
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1505 treated as leaves or allowed to act as hubs;
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1506 i - returns a list of hosts which the server allows a client
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1507 to connect from;
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1508 k - returns a list of banned username/hostname combinations
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1509 for that server;
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1510 l - returns a list of the server's connections, showing how
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1511
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1512
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1513
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1514 Oikarinen & Reed [Page 27]
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1515
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1516 RFC 1459 Internet Relay Chat Protocol May 1993
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1517
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1518
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1519 long each connection has been established and the traffic
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1520 over that connection in bytes and messages for each
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1521 direction;
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1522 m - returns a list of commands supported by the server and
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1523 the usage count for each if the usage count is non zero;
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1524 o - returns a list of hosts from which normal clients may
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1525 become operators;
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1526 y - show Y (Class) lines from server's configuration file;
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1527 u - returns a string showing how long the server has been up.
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1528
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1529 Numeric Replies:
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1530
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1531 ERR_NOSUCHSERVER
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1532 RPL_STATSCLINE RPL_STATSNLINE
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1533 RPL_STATSILINE RPL_STATSKLINE
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1534 RPL_STATSQLINE RPL_STATSLLINE
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1535 RPL_STATSLINKINFO RPL_STATSUPTIME
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1536 RPL_STATSCOMMANDS RPL_STATSOLINE
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1537 RPL_STATSHLINE RPL_ENDOFSTATS
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1538
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1539 Examples:
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1540
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1541 STATS m ; check the command usage for the server
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1542 you are connected to
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1543
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1544 :Wiz STATS c eff.org ; request by WiZ for C/N line
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1545 information from server eff.org
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1546
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1547 4.3.3 Links message
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1548
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1549 Command: LINKS
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1550 Parameters: [[<remote server>] <server mask>]
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1551
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1552 With LINKS, a user can list all servers which are known by the server
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1553 answering the query. The returned list of servers must match the
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1554 mask, or if no mask is given, the full list is returned.
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1555
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1556 If <remote server> is given in addition to <server mask>, the LINKS
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1557 command is forwarded to the first server found that matches that name
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1558 (if any), and that server is then required to answer the query.
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1559
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1560 Numeric Replies:
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1561
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1562 ERR_NOSUCHSERVER
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1563 RPL_LINKS RPL_ENDOFLINKS
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1564
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1565 Examples:
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1566
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1567
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1568
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1569
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1570 Oikarinen & Reed [Page 28]
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1571
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1572 RFC 1459 Internet Relay Chat Protocol May 1993
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1573
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1574
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1575 LINKS *.au ; list all servers which have a name
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1576 that matches *.au;
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1577
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1578 :WiZ LINKS *.bu.edu *.edu ; LINKS message from WiZ to the first
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1579 server matching *.edu for a list of
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1580 servers matching *.bu.edu.
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1581
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1582 4.3.4 Time message
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1583
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1584 Command: TIME
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1585 Parameters: [<server>]
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1586
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1587 The time message is used to query local time from the specified
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1588 server. If the server parameter is not given, the server handling the
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1589 command must reply to the query.
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1590
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1591 Numeric Replies:
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1592
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1593 ERR_NOSUCHSERVER RPL_TIME
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1594
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1595 Examples:
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1596
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1597 TIME tolsun.oulu.fi ; check the time on the server
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1598 "tolson.oulu.fi"
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1599
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1600 Angel TIME *.au ; user angel checking the time on a
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1601 server matching "*.au"
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1602
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1603 4.3.5 Connect message
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1604
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1605 Command: CONNECT
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1606 Parameters: <target server> [<port> [<remote server>]]
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1607
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1608 The CONNECT command can be used to force a server to try to establish
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1609 a new connection to another server immediately. CONNECT is a
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1610 privileged command and is to be available only to IRC Operators. If
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1611 a remote server is given then the CONNECT attempt is made by that
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1612 server to <target server> and <port>.
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1613
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1614 Numeric Replies:
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1615
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1616 ERR_NOSUCHSERVER ERR_NOPRIVILEGES
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1617 ERR_NEEDMOREPARAMS
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1618
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1619 Examples:
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1620
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1621 CONNECT tolsun.oulu.fi ; Attempt to connect a server to
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1622 tolsun.oulu.fi
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1623
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1624
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1625
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1626 Oikarinen & Reed [Page 29]
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1627
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1628 RFC 1459 Internet Relay Chat Protocol May 1993
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1629
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1630
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1631 :WiZ CONNECT eff.org 6667 csd.bu.edu
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1632 ; CONNECT attempt by WiZ to get servers
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1633 eff.org and csd.bu.edu connected on port
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1634 6667.
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1635
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1636 4.3.6 Trace message
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1637
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1638 Command: TRACE
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1639 Parameters: [<server>]
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1640
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1641 TRACE command is used to find the route to specific server. Each
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1642 server that processes this message must tell the sender about it by
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1643 sending a reply indicating it is a pass-through link, forming a chain
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1644 of replies similar to that gained from using "traceroute". After
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1645 sending this reply back, it must then send the TRACE message to the
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1646 next server until given server is reached. If the <server> parameter
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1647 is omitted, it is recommended that TRACE command send a message to
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1648 the sender telling which servers the current server has direct
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1649 connection to.
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1650
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1651 If the destination given by "<server>" is an actual server, then the
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1652 destination server is required to report all servers and users which
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1653 are connected to it, although only operators are permitted to see
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1654 users present. If the destination given by <server> is a nickname,
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1655 they only a reply for that nickname is given.
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1656
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1657 Numeric Replies:
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1658
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1659 ERR_NOSUCHSERVER
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1660
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1661 If the TRACE message is destined for another server, all intermediate
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1662 servers must return a RPL_TRACELINK reply to indicate that the TRACE
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1663 passed through it and where its going next.
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1664
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1665 RPL_TRACELINK
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1666 A TRACE reply may be composed of any number of the following numeric
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1667 replies.
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1668
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1669 RPL_TRACECONNECTING RPL_TRACEHANDSHAKE
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1670 RPL_TRACEUNKNOWN RPL_TRACEOPERATOR
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1671 RPL_TRACEUSER RPL_TRACESERVER
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1672 RPL_TRACESERVICE RPL_TRACENEWTYPE
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1673 RPL_TRACECLASS
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1674
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1675 Examples:
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1676
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1677 TRACE *.oulu.fi ; TRACE to a server matching *.oulu.fi
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1678
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1679
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1680
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1681
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1682 Oikarinen & Reed [Page 30]
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1683
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1684 RFC 1459 Internet Relay Chat Protocol May 1993
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1685
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1686
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1687 :WiZ TRACE AngelDust ; TRACE issued by WiZ to nick AngelDust
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1688
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1689 4.3.7 Admin command
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1690
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1691 Command: ADMIN
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1692 Parameters: [<server>]
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1693
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1694 The admin message is used to find the name of the administrator of
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1695 the given server, or current server if <server> parameter is omitted.
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1696 Each server must have the ability to forward ADMIN messages to other
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1697 servers.
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1698
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1699 Numeric Replies:
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1700
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1701 ERR_NOSUCHSERVER
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1702 RPL_ADMINME RPL_ADMINLOC1
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1703 RPL_ADMINLOC2 RPL_ADMINEMAIL
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1704
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1705 Examples:
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1706
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1707 ADMIN tolsun.oulu.fi ; request an ADMIN reply from
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1708 tolsun.oulu.fi
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1709
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1710 :WiZ ADMIN *.edu ; ADMIN request from WiZ for first
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1711 server found to match *.edu.
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1712
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1713 4.3.8 Info command
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1714
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1715 Command: INFO
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1716 Parameters: [<server>]
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1717
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1718 The INFO command is required to return information which describes
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1719 the server: its version, when it was compiled, the patchlevel, when
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1720 it was started, and any other miscellaneous information which may be
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1721 considered to be relevant.
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1722
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1723 Numeric Replies:
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1724
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1725 ERR_NOSUCHSERVER
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1726 RPL_INFO RPL_ENDOFINFO
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1727
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1728 Examples:
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1729
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1730 INFO csd.bu.edu ; request an INFO reply from
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1731 csd.bu.edu
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1732
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1733 :Avalon INFO *.fi ; INFO request from Avalon for first
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1734 server found to match *.fi.
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1735
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1736
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1737
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1738 Oikarinen & Reed [Page 31]
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1739
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1740 RFC 1459 Internet Relay Chat Protocol May 1993
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1741
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1742
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1743 INFO Angel ; request info from the server that
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1744 Angel is connected to.
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1745
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1746 4.4 Sending messages
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1747
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1748 The main purpose of the IRC protocol is to provide a base for clients
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1749 to communicate with each other. PRIVMSG and NOTICE are the only
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1750 messages available which actually perform delivery of a text message
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1751 from one client to another - the rest just make it possible and try
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1752 to ensure it happens in a reliable and structured manner.
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1753
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1754 4.4.1 Private messages
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1755
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1756 Command: PRIVMSG
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1757 Parameters: <receiver>{,<receiver>} <text to be sent>
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1758
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1759 PRIVMSG is used to send private messages between users. <receiver>
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1760 is the nickname of the receiver of the message. <receiver> can also
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1761 be a list of names or channels separated with commas.
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1762
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1763 The <receiver> parameter may also me a host mask (#mask) or server
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1764 mask ($mask). In both cases the server will only send the PRIVMSG
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1765 to those who have a server or host matching the mask. The mask must
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1766 have at least 1 (one) "." in it and no wildcards following the
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1767 last ".". This requirement exists to prevent people sending messages
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1768 to "#*" or "$*", which would broadcast to all users; from
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1769 experience, this is abused more than used responsibly and properly.
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1770 Wildcards are the '*' and '?' characters. This extension to
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1771 the PRIVMSG command is only available to Operators.
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1772
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1773 Numeric Replies:
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1774
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1775 ERR_NORECIPIENT ERR_NOTEXTTOSEND
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1776 ERR_CANNOTSENDTOCHAN ERR_NOTOPLEVEL
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1777 ERR_WILDTOPLEVEL ERR_TOOMANYTARGETS
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1778 ERR_NOSUCHNICK
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1779 RPL_AWAY
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1780
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1781 Examples:
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1782
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1783 :Angel PRIVMSG Wiz :Hello are you receiving this message ?
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1784 ; Message from Angel to Wiz.
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1785
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1786 PRIVMSG Angel :yes I'm receiving it !receiving it !'u>(768u+1n) .br ;
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1787 Message to Angel.
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1788
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1789 PRIVMSG jto@tolsun.oulu.fi :Hello !
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1790 ; Message to a client on server
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1791
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1792
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1793
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1794 Oikarinen & Reed [Page 32]
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1795
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1796 RFC 1459 Internet Relay Chat Protocol May 1993
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1797
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1798
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1799 tolsun.oulu.fi with username of "jto".
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1800
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1801 PRIVMSG $*.fi :Server tolsun.oulu.fi rebooting.
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1802 ; Message to everyone on a server which
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1803 has a name matching *.fi.
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1804
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1805 PRIVMSG #*.edu :NSFNet is undergoing work, expect interruptions
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1806 ; Message to all users who come from a
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1807 host which has a name matching *.edu.
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1808
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1809 4.4.2 Notice
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1810
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1811 Command: NOTICE
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1812 Parameters: <nickname> <text>
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1813
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1814 The NOTICE message is used similarly to PRIVMSG. The difference
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1815 between NOTICE and PRIVMSG is that automatic replies must never be
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1816 sent in response to a NOTICE message. This rule applies to servers
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1817 too - they must not send any error reply back to the client on
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1818 receipt of a notice. The object of this rule is to avoid loops
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1819 between a client automatically sending something in response to
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1820 something it received. This is typically used by automatons (clients
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1821 with either an AI or other interactive program controlling their
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1822 actions) which are always seen to be replying lest they end up in a
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1823 loop with another automaton.
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1824
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1825 See PRIVMSG for more details on replies and examples.
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1826
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1827 4.5 User based queries
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1828
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1829 User queries are a group of commands which are primarily concerned
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1830 with finding details on a particular user or group users. When using
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1831 wildcards with any of these commands, if they match, they will only
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1832 return information on users who are 'visible' to you. The visibility
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1833 of a user is determined as a combination of the user's mode and the
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1834 common set of channels you are both on.
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1835
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1836 4.5.1 Who query
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1837
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1838 Command: WHO
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1839 Parameters: [<name> [<o>]]
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1840
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1841 The WHO message is used by a client to generate a query which returns
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1842 a list of information which 'matches' the <name> parameter given by
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1843 the client. In the absence of the <name> parameter, all visible
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1844 (users who aren't invisible (user mode +i) and who don't have a
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1845 common channel with the requesting client) are listed. The same
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1846 result can be achieved by using a <name> of "0" or any wildcard which
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1847
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1848
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1849
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1850 Oikarinen & Reed [Page 33]
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1851
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1852 RFC 1459 Internet Relay Chat Protocol May 1993
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1853
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1854
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1855 will end up matching every entry possible.
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1856
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1857 The <name> passed to WHO is matched against users' host, server, real
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1858 name and nickname if the channel <name> cannot be found.
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1859
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1860 If the "o" parameter is passed only operators are returned according
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1861 to the name mask supplied.
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1862
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1863 Numeric Replies:
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1864
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1865 ERR_NOSUCHSERVER
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1866 RPL_WHOREPLY RPL_ENDOFWHO
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1867
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1868 Examples:
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1869
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1870 WHO *.fi ; List all users who match against
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1871 "*.fi".
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1872
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1873 WHO jto* o ; List all users with a match against
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1874 "jto*" if they are an operator.
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1875
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1876 4.5.2 Whois query
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1877
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1878 Command: WHOIS
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1879 Parameters: [<server>] <nickmask>[,<nickmask>[,...]]
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1880
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1881 This message is used to query information about particular user. The
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1882 server will answer this message with several numeric messages
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1883 indicating different statuses of each user which matches the nickmask
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1884 (if you are entitled to see them). If no wildcard is present in the
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1885 <nickmask>, any information about that nick which you are allowed to
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1886 see is presented. A comma (',') separated list of nicknames may be
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1887 given.
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1888
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1889 The latter version sends the query to a specific server. It is
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1890 useful if you want to know how long the user in question has been
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1891 idle as only local server (ie. the server the user is directly
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1892 connected to) knows that information, while everything else is
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1893 globally known.
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1894
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1895 Numeric Replies:
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1896
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1897 ERR_NOSUCHSERVER ERR_NONICKNAMEGIVEN
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1898 RPL_WHOISUSER RPL_WHOISCHANNELS
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1899 RPL_WHOISCHANNELS RPL_WHOISSERVER
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1900 RPL_AWAY RPL_WHOISOPERATOR
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1901 RPL_WHOISIDLE ERR_NOSUCHNICK
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1902 RPL_ENDOFWHOIS
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1903
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1904
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1905
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1906 Oikarinen & Reed [Page 34]
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1907
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1908 RFC 1459 Internet Relay Chat Protocol May 1993
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1909
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1910
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1911 Examples:
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1912
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1913 WHOIS wiz ; return available user information
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1914 about nick WiZ
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1915
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1916 WHOIS eff.org trillian ; ask server eff.org for user
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1917 information about trillian
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1918
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1919 4.5.3 Whowas
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1920
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1921 Command: WHOWAS
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1922 Parameters: <nickname> [<count> [<server>]]
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1923
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1924 Whowas asks for information about a nickname which no longer exists.
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1925 This may either be due to a nickname change or the user leaving IRC.
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1926 In response to this query, the server searches through its nickname
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1927 history, looking for any nicks which are lexically the same (no wild
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1928 card matching here). The history is searched backward, returning the
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1929 most recent entry first. If there are multiple entries, up to
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1930 <count> replies will be returned (or all of them if no <count>
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1931 parameter is given). If a non-positive number is passed as being
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1932 <count>, then a full search is done.
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1933
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1934 Numeric Replies:
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1935
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1936 ERR_NONICKNAMEGIVEN ERR_WASNOSUCHNICK
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1937 RPL_WHOWASUSER RPL_WHOISSERVER
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1938 RPL_ENDOFWHOWAS
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1939
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1940 Examples:
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1941
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1942 WHOWAS Wiz ; return all information in the nick
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1943 history about nick "WiZ";
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1944
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1945 WHOWAS Mermaid 9 ; return at most, the 9 most recent
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1946 entries in the nick history for
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1947 "Mermaid";
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1948
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1949 WHOWAS Trillian 1 *.edu ; return the most recent history for
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1950 "Trillian" from the first server found
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1951 to match "*.edu".
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1952
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1953 4.6 Miscellaneous messages
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1954
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1955 Messages in this category do not fit into any of the above categories
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1956 but are nonetheless still a part of and required by the protocol.
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1957
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1958
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1959
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1960
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1961
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1962 Oikarinen & Reed [Page 35]
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1963
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1964 RFC 1459 Internet Relay Chat Protocol May 1993
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1965
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1966
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1967 4.6.1 Kill message
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1968
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1969 Command: KILL
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1970 Parameters: <nickname> <comment>
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1971
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1972 The KILL message is used to cause a client-server connection to be
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1973 closed by the server which has the actual connection. KILL is used
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1974 by servers when they encounter a duplicate entry in the list of valid
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1975 nicknames and is used to remove both entries. It is also available
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1976 to operators.
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1977
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1978 Clients which have automatic reconnect algorithms effectively make
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1979 this command useless since the disconnection is only brief. It does
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1980 however break the flow of data and can be used to stop large amounts
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1981 of being abused, any user may elect to receive KILL messages
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1982 generated for others to keep an 'eye' on would be trouble spots.
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1983
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1984 In an arena where nicknames are required to be globally unique at all
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1985 times, KILL messages are sent whenever 'duplicates' are detected
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1986 (that is an attempt to register two users with the same nickname) in
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1987 the hope that both of them will disappear and only 1 reappear.
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1988
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1989 The comment given must reflect the actual reason for the KILL. For
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1990 server-generated KILLs it usually is made up of details concerning
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1991 the origins of the two conflicting nicknames. For users it is left
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1992 up to them to provide an adequate reason to satisfy others who see
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1993 it. To prevent/discourage fake KILLs from being generated to hide
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1994 the identify of the KILLer, the comment also shows a 'kill-path'
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1995 which is updated by each server it passes through, each prepending
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1996 its name to the path.
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1997
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1998 Numeric Replies:
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1999
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2000 ERR_NOPRIVILEGES ERR_NEEDMOREPARAMS
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2001 ERR_NOSUCHNICK ERR_CANTKILLSERVER
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2002
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2003
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2004 KILL David (csd.bu.edu <- tolsun.oulu.fi)
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2005 ; Nickname collision between csd.bu.edu
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2006 and tolson.oulu.fi
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2007
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2008
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2009 NOTE:
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2010 It is recommended that only Operators be allowed to kill other users
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2011 with KILL message. In an ideal world not even operators would need
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2012 to do this and it would be left to servers to deal with.
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2013
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2014
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2015
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2016
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2017
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2018 Oikarinen & Reed [Page 36]
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2019
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2020 RFC 1459 Internet Relay Chat Protocol May 1993
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2021
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2022
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2023 4.6.2 Ping message
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2024
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2025 Command: PING
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2026 Parameters: <server1> [<server2>]
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2027
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2028 The PING message is used to test the presence of an active client at
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2029 the other end of the connection. A PING message is sent at regular
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2030 intervals if no other activity detected coming from a connection. If
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2031 a connection fails to respond to a PING command within a set amount
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2032 of time, that connection is closed.
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2033
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2034 Any client which receives a PING message must respond to <server1>
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2035 (server which sent the PING message out) as quickly as possible with
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2036 an appropriate PONG message to indicate it is still there and alive.
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2037 Servers should not respond to PING commands but rely on PINGs from
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2038 the other end of the connection to indicate the connection is alive.
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2039 If the <server2> parameter is specified, the PING message gets
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2040 forwarded there.
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2041
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2042 Numeric Replies:
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2043
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2044 ERR_NOORIGIN ERR_NOSUCHSERVER
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2045
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2046 Examples:
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2047
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2048 PING tolsun.oulu.fi ; server sending a PING message to
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2049 another server to indicate it is still
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2050 alive.
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2051
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2052 PING WiZ ; PING message being sent to nick WiZ
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2053
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2054 4.6.3 Pong message
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2055
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2056 Command: PONG
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2057 Parameters: <daemon> [<daemon2>]
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2058
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2059 PONG message is a reply to ping message. If parameter <daemon2> is
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2060 given this message must be forwarded to given daemon. The <daemon>
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2061 parameter is the name of the daemon who has responded to PING message
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2062 and generated this message.
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2063
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2064 Numeric Replies:
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2065
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2066 ERR_NOORIGIN ERR_NOSUCHSERVER
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2067
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2068 Examples:
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2069
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2070 PONG csd.bu.edu tolsun.oulu.fi ; PONG message from csd.bu.edu to
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2071
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2072
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2073
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2074 Oikarinen & Reed [Page 37]
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2075
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2076 RFC 1459 Internet Relay Chat Protocol May 1993
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2077
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2078
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2079 tolsun.oulu.fi
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2080
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2081 4.6.4 Error
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2082
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2083 Command: ERROR
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2084 Parameters: <error message>
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2085
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2086 The ERROR command is for use by servers when reporting a serious or
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2087 fatal error to its operators. It may also be sent from one server to
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2088 another but must not be accepted from any normal unknown clients.
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2089
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2090 An ERROR message is for use for reporting errors which occur with a
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2091 server-to-server link only. An ERROR message is sent to the server
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2092 at the other end (which sends it to all of its connected operators)
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2093 and to all operators currently connected. It is not to be passed
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2094 onto any other servers by a server if it is received from a server.
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2095
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2096 When a server sends a received ERROR message to its operators, the
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2097 message should be encapsulated inside a NOTICE message, indicating
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2098 that the client was not responsible for the error.
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2099
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2100 Numerics:
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2101
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2102 None.
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2103
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2104 Examples:
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2105
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2106 ERROR :Server *.fi already exists; ERROR message to the other server
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2107 which caused this error.
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2108
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2109 NOTICE WiZ :ERROR from csd.bu.edu -- Server *.fi already exists
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2110 ; Same ERROR message as above but sent
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2111 to user WiZ on the other server.
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2112
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2113 5. OPTIONALS
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2114
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2115 This section describes OPTIONAL messages. They are not required in a
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2116 working server implementation of the protocol described herein. In
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2117 the absence of the option, an error reply message must be generated
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2118 or an unknown command error. If the message is destined for another
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2119 server to answer then it must be passed on (elementary parsing
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2120 required) The allocated numerics for this are listed with the
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2121 messages below.
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2122
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2123 5.1 Away
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2124
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2125 Command: AWAY
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2126 Parameters: [message]
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2127
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2128
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2129
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2130 Oikarinen & Reed [Page 38]
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2131
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2132 RFC 1459 Internet Relay Chat Protocol May 1993
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2133
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2134
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2135 With the AWAY message, clients can set an automatic reply string for
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2136 any PRIVMSG commands directed at them (not to a channel they are on).
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2137 The automatic reply is sent by the server to client sending the
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2138 PRIVMSG command. The only replying server is the one to which the
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2139 sending client is connected to.
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2140
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2141 The AWAY message is used either with one parameter (to set an AWAY
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2142 message) or with no parameters (to remove the AWAY message).
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2143
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2144 Numeric Replies:
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2145
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2146 RPL_UNAWAY RPL_NOWAWAY
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2147
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2148 Examples:
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2149
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2150 AWAY :Gone to lunch. Back in 5 ; set away message to "Gone to lunch.
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2151 Back in 5".
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2152
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2153 :WiZ AWAY ; unmark WiZ as being away.
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2154
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2155
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2156 5.2 Rehash message
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2157
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2158 Command: REHASH
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2159 Parameters: None
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2160
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2161 The rehash message can be used by the operator to force the server to
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2162 re-read and process its configuration file.
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2163
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2164 Numeric Replies:
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2165
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2166 RPL_REHASHING ERR_NOPRIVILEGES
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2167
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2168 Examples:
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2169
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2170 REHASH ; message from client with operator
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2171 status to server asking it to reread its
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2172 configuration file.
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2173
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2174 5.3 Restart message
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2175
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2176 Command: RESTART
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2177 Parameters: None
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2178
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2179 The restart message can only be used by an operator to force a server
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2180 restart itself. This message is optional since it may be viewed as a
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2181 risk to allow arbitrary people to connect to a server as an operator
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2182 and execute this command, causing (at least) a disruption to service.
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2183
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2184
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2185
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2186 Oikarinen & Reed [Page 39]
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2187
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2188 RFC 1459 Internet Relay Chat Protocol May 1993
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2189
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2190
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2191 The RESTART command must always be fully processed by the server to
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2192 which the sending client is connected and not be passed onto other
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2193 connected servers.
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2194
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2195 Numeric Replies:
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2196
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2197 ERR_NOPRIVILEGES
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2198
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2199 Examples:
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2200
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2201 RESTART ; no parameters required.
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2202
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2203 5.4 Summon message
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2204
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2205 Command: SUMMON
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2206 Parameters: <user> [<server>]
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2207
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2208 The SUMMON command can be used to give users who are on a host
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2209 running an IRC server a message asking them to please join IRC. This
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2210 message is only sent if the target server (a) has SUMMON enabled, (b)
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2211 the user is logged in and (c) the server process can write to the
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2212 user's tty (or similar).
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2213
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2214 If no <server> parameter is given it tries to summon <user> from the
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2215 server the client is connected to is assumed as the target.
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2216
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2217 If summon is not enabled in a server, it must return the
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2218 ERR_SUMMONDISABLED numeric and pass the summon message onwards.
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2219
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2220 Numeric Replies:
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2221
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2222 ERR_NORECIPIENT ERR_FILEERROR
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2223 ERR_NOLOGIN ERR_NOSUCHSERVER
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2224 RPL_SUMMONING
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2225
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2226 Examples:
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2227
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2228 SUMMON jto ; summon user jto on the server's host
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2229
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2230 SUMMON jto tolsun.oulu.fi ; summon user jto on the host which a
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2231 server named "tolsun.oulu.fi" is
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2232 running.
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2233
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2234
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2235 5.5 Users
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2236
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2237 Command: USERS
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2238 Parameters: [<server>]
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2239
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2240
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2241
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2242 Oikarinen & Reed [Page 40]
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2243
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2244 RFC 1459 Internet Relay Chat Protocol May 1993
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2245
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2246
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2247 The USERS command returns a list of users logged into the server in a
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2248 similar format to who(1), rusers(1) and finger(1). Some people
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2249 may disable this command on their server for security related
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2250 reasons. If disabled, the correct numeric must be returned to
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2251 indicate this.
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2252
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2253 Numeric Replies:
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2254
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2255 ERR_NOSUCHSERVER ERR_FILEERROR
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2256 RPL_USERSSTART RPL_USERS
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2257 RPL_NOUSERS RPL_ENDOFUSERS
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2258 ERR_USERSDISABLED
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2259
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2260 Disabled Reply:
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2261
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2262 ERR_USERSDISABLED
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2263
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2264 Examples:
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2265
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2266 USERS eff.org ; request a list of users logged in on
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2267 server eff.org
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2268
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2269 :John USERS tolsun.oulu.fi ; request from John for a list of users
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2270 logged in on server tolsun.oulu.fi
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2271
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2272 5.6 Operwall message
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2273
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2274 Command: WALLOPS
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2275 Parameters: Text to be sent to all operators currently online
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2276
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2277 Sends a message to all operators currently online. After
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2278 implementing WALLOPS as a user command it was found that it was
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2279 often and commonly abused as a means of sending a message to a lot
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2280 of people (much similar to WALL). Due to this it is recommended
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2281 that the current implementation of WALLOPS be used as an
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2282 example by allowing and recognising only servers as the senders of
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2283 WALLOPS.
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2284
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2285 Numeric Replies:
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2286
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2287 ERR_NEEDMOREPARAMS
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2288
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2289 Examples:
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2290
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2291 :csd.bu.edu WALLOPS :Connect '*.uiuc.edu 6667' from Joshua; WALLOPS
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2292 message from csd.bu.edu announcing a
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2293 CONNECT message it received and acted
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2294 upon from Joshua.
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2295
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2296
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2297
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2298 Oikarinen & Reed [Page 41]
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2299
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2300 RFC 1459 Internet Relay Chat Protocol May 1993
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2301
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2302
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2303 5.7 Userhost message
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2304
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2305 Command: USERHOST
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2306 Parameters: <nickname>{<space><nickname>}
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2307
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2308 The USERHOST command takes a list of up to 5 nicknames, each
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2309 separated by a space character and returns a list of information
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2310 about each nickname that it found. The returned list has each reply
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2311 separated by a space.
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2312
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2313 Numeric Replies:
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2314
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2315 RPL_USERHOST ERR_NEEDMOREPARAMS
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2316
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2317 Examples:
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2318
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2319 USERHOST Wiz Michael Marty p ;USERHOST request for information on
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2320 nicks "Wiz", "Michael", "Marty" and "p"
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2321
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2322 5.8 Ison message
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2323
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2324 Command: ISON
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2325 Parameters: <nickname>{<space><nickname>}
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2326
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2327 The ISON command was implemented to provide a quick and efficient
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2328 means to get a response about whether a given nickname was currently
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2329 on IRC. ISON only takes one (1) parameter: a space-separated list of
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2330 nicks. For each nickname in the list that is present, the server
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2331 adds that to its reply string. Thus the reply string may return
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2332 empty (none of the given nicks are present), an exact copy of the
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2333 parameter string (all of them present) or as any other subset of the
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2334 set of nicks given in the parameter. The only limit on the number
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2335 of nicks that may be checked is that the combined length must not be
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2336 too large as to cause the server to chop it off so it fits in 512
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2337 characters.
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2338
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2339 ISON is only be processed by the server local to the client sending
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2340 the command and thus not passed onto other servers for further
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2341 processing.
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2342
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2343 Numeric Replies:
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2344
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2345 RPL_ISON ERR_NEEDMOREPARAMS
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2346
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2347 Examples:
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2348
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2349 ISON phone trillian WiZ jarlek Avalon Angel Monstah
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2350 ; Sample ISON request for 7 nicks.
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2351
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2352
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2353
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2354 Oikarinen & Reed [Page 42]
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2355
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2356 RFC 1459 Internet Relay Chat Protocol May 1993
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2357
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2358
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2359 6. REPLIES
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2360
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2361 The following is a list of numeric replies which are generated in
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2362 response to the commands given above. Each numeric is given with its
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2363 number, name and reply string.
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2364
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2365 6.1 Error Replies.
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2366
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2367 401 ERR_NOSUCHNICK
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2368 "<nickname> :No such nick/channel"
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2369
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2370 - Used to indicate the nickname parameter supplied to a
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2371 command is currently unused.
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2372
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2373 402 ERR_NOSUCHSERVER
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2374 "<server name> :No such server"
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2375
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2376 - Used to indicate the server name given currently
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2377 doesn't exist.
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2378
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2379 403 ERR_NOSUCHCHANNEL
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2380 "<channel name> :No such channel"
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2381
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2382 - Used to indicate the given channel name is invalid.
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2383
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2384 404 ERR_CANNOTSENDTOCHAN
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2385 "<channel name> :Cannot send to channel"
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2386
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2387 - Sent to a user who is either (a) not on a channel
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2388 which is mode +n or (b) not a chanop (or mode +v) on
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2389 a channel which has mode +m set and is trying to send
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2390 a PRIVMSG message to that channel.
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2391
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2392 405 ERR_TOOMANYCHANNELS
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2393 "<channel name> :You have joined too many \
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2394 channels"
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2395 - Sent to a user when they have joined the maximum
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2396 number of allowed channels and they try to join
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2397 another channel.
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2398
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2399 406 ERR_WASNOSUCHNICK
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2400 "<nickname> :There was no such nickname"
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2401
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2402 - Returned by WHOWAS to indicate there is no history
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2403 information for that nickname.
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2404
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2405 407 ERR_TOOMANYTARGETS
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2406 "<target> :Duplicate recipients. No message \
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2407
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2408
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2409
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2410 Oikarinen & Reed [Page 43]
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2411
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2412 RFC 1459 Internet Relay Chat Protocol May 1993
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2413
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2414
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2415 delivered"
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2416
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2417 - Returned to a client which is attempting to send a
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2418 PRIVMSG/NOTICE using the user@host destination format
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2419 and for a user@host which has several occurrences.
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2420
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2421 409 ERR_NOORIGIN
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2422 ":No origin specified"
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2423
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2424 - PING or PONG message missing the originator parameter
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2425 which is required since these commands must work
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2426 without valid prefixes.
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2427
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2428 411 ERR_NORECIPIENT
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2429 ":No recipient given (<command>)"
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2430 412 ERR_NOTEXTTOSEND
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2431 ":No text to send"
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2432 413 ERR_NOTOPLEVEL
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2433 "<mask> :No toplevel domain specified"
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2434 414 ERR_WILDTOPLEVEL
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2435 "<mask> :Wildcard in toplevel domain"
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2436
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2437 - 412 - 414 are returned by PRIVMSG to indicate that
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2438 the message wasn't delivered for some reason.
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2439 ERR_NOTOPLEVEL and ERR_WILDTOPLEVEL are errors that
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2440 are returned when an invalid use of
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2441 "PRIVMSG $<server>" or "PRIVMSG #<host>" is attempted.
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2442
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2443 421 ERR_UNKNOWNCOMMAND
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2444 "<command> :Unknown command"
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2445
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2446 - Returned to a registered client to indicate that the
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2447 command sent is unknown by the server.
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2448
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2449 422 ERR_NOMOTD
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2450 ":MOTD File is missing"
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2451
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2452 - Server's MOTD file could not be opened by the server.
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2453
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2454 423 ERR_NOADMININFO
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2455 "<server> :No administrative info available"
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2456
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2457 - Returned by a server in response to an ADMIN message
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2458 when there is an error in finding the appropriate
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2459 information.
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2460
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2461 424 ERR_FILEERROR
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2462 ":File error doing <file op> on <file>"
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2463
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2464
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2465
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2466 Oikarinen & Reed [Page 44]
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2467
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2468 RFC 1459 Internet Relay Chat Protocol May 1993
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2469
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2470
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2471 - Generic error message used to report a failed file
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2472 operation during the processing of a message.
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2473
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2474 431 ERR_NONICKNAMEGIVEN
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2475 ":No nickname given"
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2476
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2477 - Returned when a nickname parameter expected for a
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2478 command and isn't found.
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2479
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2480 432 ERR_ERRONEUSNICKNAME
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2481 "<nick> :Erroneus nickname"
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2482
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2483 - Returned after receiving a NICK message which contains
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2484 characters which do not fall in the defined set. See
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2485 section x.x.x for details on valid nicknames.
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2486
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2487 433 ERR_NICKNAMEINUSE
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2488 "<nick> :Nickname is already in use"
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2489
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2490 - Returned when a NICK message is processed that results
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2491 in an attempt to change to a currently existing
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2492 nickname.
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2493
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2494 436 ERR_NICKCOLLISION
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2495 "<nick> :Nickname collision KILL"
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2496
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2497 - Returned by a server to a client when it detects a
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2498 nickname collision (registered of a NICK that
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2499 already exists by another server).
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2500
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2501 441 ERR_USERNOTINCHANNEL
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2502 "<nick> <channel> :They aren't on that channel"
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2503
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2504 - Returned by the server to indicate that the target
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2505 user of the command is not on the given channel.
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2506
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2507 442 ERR_NOTONCHANNEL
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2508 "<channel> :You're not on that channel"
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2509
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2510 - Returned by the server whenever a client tries to
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2511 perform a channel effecting command for which the
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2512 client isn't a member.
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2513
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2514 443 ERR_USERONCHANNEL
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2515 "<user> <channel> :is already on channel"
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2516
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2517 - Returned when a client tries to invite a user to a
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2518 channel they are already on.
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2519
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2520
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2521
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2522 Oikarinen & Reed [Page 45]
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2523
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2524 RFC 1459 Internet Relay Chat Protocol May 1993
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2525
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2526
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2527 444 ERR_NOLOGIN
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2528 "<user> :User not logged in"
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2529
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2530 - Returned by the summon after a SUMMON command for a
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2531 user was unable to be performed since they were not
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2532 logged in.
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2533
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2534 445 ERR_SUMMONDISABLED
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2535 ":SUMMON has been disabled"
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2536
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2537 - Returned as a response to the SUMMON command. Must be
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2538 returned by any server which does not implement it.
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2539
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2540 446 ERR_USERSDISABLED
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2541 ":USERS has been disabled"
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2542
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2543 - Returned as a response to the USERS command. Must be
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2544 returned by any server which does not implement it.
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2545
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2546 451 ERR_NOTREGISTERED
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2547 ":You have not registered"
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2548
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2549 - Returned by the server to indicate that the client
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2550 must be registered before the server will allow it
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2551 to be parsed in detail.
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2552
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2553 461 ERR_NEEDMOREPARAMS
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2554 "<command> :Not enough parameters"
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2555
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2556 - Returned by the server by numerous commands to
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2557 indicate to the client that it didn't supply enough
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2558 parameters.
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2559
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2560 462 ERR_ALREADYREGISTRED
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2561 ":You may not reregister"
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2562
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2563 - Returned by the server to any link which tries to
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2564 change part of the registered details (such as
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2565 password or user details from second USER message).
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2566
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2567
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2568 463 ERR_NOPERMFORHOST
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2569 ":Your host isn't among the privileged"
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2570
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2571 - Returned to a client which attempts to register with
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2572 a server which does not been setup to allow
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2573 connections from the host the attempted connection
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2574 is tried.
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2575
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2576
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2577
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2578 Oikarinen & Reed [Page 46]
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2579
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2580 RFC 1459 Internet Relay Chat Protocol May 1993
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2581
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2582
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2583 464 ERR_PASSWDMISMATCH
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2584 ":Password incorrect"
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2585
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2586 - Returned to indicate a failed attempt at registering
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2587 a connection for which a password was required and
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2588 was either not given or incorrect.
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2589
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2590 465 ERR_YOUREBANNEDCREEP
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2591 ":You are banned from this server"
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2592
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2593 - Returned after an attempt to connect and register
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2594 yourself with a server which has been setup to
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2595 explicitly deny connections to you.
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2596
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2597 467 ERR_KEYSET
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2598 "<channel> :Channel key already set"
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2599 471 ERR_CHANNELISFULL
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2600 "<channel> :Cannot join channel (+l)"
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2601 472 ERR_UNKNOWNMODE
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2602 "<char> :is unknown mode char to me"
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2603 473 ERR_INVITEONLYCHAN
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2604 "<channel> :Cannot join channel (+i)"
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2605 474 ERR_BANNEDFROMCHAN
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2606 "<channel> :Cannot join channel (+b)"
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2607 475 ERR_BADCHANNELKEY
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2608 "<channel> :Cannot join channel (+k)"
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2609 481 ERR_NOPRIVILEGES
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2610 ":Permission Denied- You're not an IRC operator"
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2611
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2612 - Any command requiring operator privileges to operate
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2613 must return this error to indicate the attempt was
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2614 unsuccessful.
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2615
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2616 482 ERR_CHANOPRIVSNEEDED
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2617 "<channel> :You're not channel operator"
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2618
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2619 - Any command requiring 'chanop' privileges (such as
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2620 MODE messages) must return this error if the client
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2621 making the attempt is not a chanop on the specified
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2622 channel.
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2623
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2624 483 ERR_CANTKILLSERVER
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2625 ":You cant kill a server!"
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2626
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2627 - Any attempts to use the KILL command on a server
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2628 are to be refused and this error returned directly
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2629 to the client.
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2630
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2631
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2632
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2633
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2634 Oikarinen & Reed [Page 47]
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2635
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2636 RFC 1459 Internet Relay Chat Protocol May 1993
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2637
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2638
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2639 491 ERR_NOOPERHOST
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2640 ":No O-lines for your host"
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2641
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2642 - If a client sends an OPER message and the server has
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2643 not been configured to allow connections from the
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2644 client's host as an operator, this error must be
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2645 returned.
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2646
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2647 501 ERR_UMODEUNKNOWNFLAG
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2648 ":Unknown MODE flag"
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2649
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2650 - Returned by the server to indicate that a MODE
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2651 message was sent with a nickname parameter and that
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2652 the a mode flag sent was not recognized.
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2653
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2654 502 ERR_USERSDONTMATCH
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2655 ":Cant change mode for other users"
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2656
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2657 - Error sent to any user trying to view or change the
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2658 user mode for a user other than themselves.
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2659
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2660 6.2 Command responses.
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2661
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2662 300 RPL_NONE
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2663 Dummy reply number. Not used.
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2664
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2665 302 RPL_USERHOST
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2666 ":[<reply>{<space><reply>}]"
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2667
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2668 - Reply format used by USERHOST to list replies to
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2669 the query list. The reply string is composed as
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2670 follows:
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2671
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2672 <reply> ::= <nick>['*'] '=' <'+'|'-'><hostname>
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2673
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2674 The '*' indicates whether the client has registered
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2675 as an Operator. The '-' or '+' characters represent
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2676 whether the client has set an AWAY message or not
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2677 respectively.
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2678
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2679 303 RPL_ISON
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2680 ":[<nick> {<space><nick>}]"
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2681
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2682 - Reply format used by ISON to list replies to the
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2683 query list.
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2684
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2685 301 RPL_AWAY
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2686 "<nick> :<away message>"
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2687
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2688
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2689
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2690 Oikarinen & Reed [Page 48]
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2691
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2692 RFC 1459 Internet Relay Chat Protocol May 1993
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2693
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2694
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2695 305 RPL_UNAWAY
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2696 ":You are no longer marked as being away"
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2697 306 RPL_NOWAWAY
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2698 ":You have been marked as being away"
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2699
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2700 - These replies are used with the AWAY command (if
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2701 allowed). RPL_AWAY is sent to any client sending a
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2702 PRIVMSG to a client which is away. RPL_AWAY is only
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2703 sent by the server to which the client is connected.
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2704 Replies RPL_UNAWAY and RPL_NOWAWAY are sent when the
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2705 client removes and sets an AWAY message.
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2706
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2707 311 RPL_WHOISUSER
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2708 "<nick> <user> <host> * :<real name>"
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2709 312 RPL_WHOISSERVER
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2710 "<nick> <server> :<server info>"
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2711 313 RPL_WHOISOPERATOR
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2712 "<nick> :is an IRC operator"
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2713 317 RPL_WHOISIDLE
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2714 "<nick> <integer> :seconds idle"
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2715 318 RPL_ENDOFWHOIS
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2716 "<nick> :End of /WHOIS list"
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2717 319 RPL_WHOISCHANNELS
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2718 "<nick> :{[@|+]<channel><space>}"
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2719
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2720 - Replies 311 - 313, 317 - 319 are all replies
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2721 generated in response to a WHOIS message. Given that
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2722 there are enough parameters present, the answering
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2723 server must either formulate a reply out of the above
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2724 numerics (if the query nick is found) or return an
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2725 error reply. The '*' in RPL_WHOISUSER is there as
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2726 the literal character and not as a wild card. For
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2727 each reply set, only RPL_WHOISCHANNELS may appear
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2728 more than once (for long lists of channel names).
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2729 The '@' and '+' characters next to the channel name
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2730 indicate whether a client is a channel operator or
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2731 has been granted permission to speak on a moderated
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2732 channel. The RPL_ENDOFWHOIS reply is used to mark
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2733 the end of processing a WHOIS message.
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2734
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2735 314 RPL_WHOWASUSER
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2736 "<nick> <user> <host> * :<real name>"
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2737 369 RPL_ENDOFWHOWAS
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2738 "<nick> :End of WHOWAS"
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2739
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2740 - When replying to a WHOWAS message, a server must use
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2741 the replies RPL_WHOWASUSER, RPL_WHOISSERVER or
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2742 ERR_WASNOSUCHNICK for each nickname in the presented
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2743
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2744
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2745
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2746 Oikarinen & Reed [Page 49]
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2747
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2748 RFC 1459 Internet Relay Chat Protocol May 1993
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2749
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2750
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2751 list. At the end of all reply batches, there must
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2752 be RPL_ENDOFWHOWAS (even if there was only one reply
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2753 and it was an error).
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2754
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2755 321 RPL_LISTSTART
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2756 "Channel :Users Name"
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2757 322 RPL_LIST
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2758 "<channel> <# visible> :<topic>"
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2759 323 RPL_LISTEND
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2760 ":End of /LIST"
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2761
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2762 - Replies RPL_LISTSTART, RPL_LIST, RPL_LISTEND mark
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2763 the start, actual replies with data and end of the
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2764 server's response to a LIST command. If there are
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2765 no channels available to return, only the start
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2766 and end reply must be sent.
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2767
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2768 324 RPL_CHANNELMODEIS
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2769 "<channel> <mode> <mode params>"
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2770
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2771 331 RPL_NOTOPIC
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2772 "<channel> :No topic is set"
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2773 332 RPL_TOPIC
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2774 "<channel> :<topic>"
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2775
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2776 - When sending a TOPIC message to determine the
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2777 channel topic, one of two replies is sent. If
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2778 the topic is set, RPL_TOPIC is sent back else
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2779 RPL_NOTOPIC.
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2780
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2781 341 RPL_INVITING
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2782 "<channel> <nick>"
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2783
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2784 - Returned by the server to indicate that the
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2785 attempted INVITE message was successful and is
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2786 being passed onto the end client.
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2787
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2788 342 RPL_SUMMONING
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2789 "<user> :Summoning user to IRC"
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2790
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2791 - Returned by a server answering a SUMMON message to
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2792 indicate that it is summoning that user.
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2793
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2794 351 RPL_VERSION
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2795 "<version>.<debuglevel> <server> :<comments>"
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2796
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2797 - Reply by the server showing its version details.
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2798 The <version> is the version of the software being
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2799
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2800
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2801
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2802 Oikarinen & Reed [Page 50]
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2803
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2804 RFC 1459 Internet Relay Chat Protocol May 1993
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2805
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2806
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2807 used (including any patchlevel revisions) and the
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2808 <debuglevel> is used to indicate if the server is
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2809 running in "debug mode".
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2810
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2811 The "comments" field may contain any comments about
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2812 the version or further version details.
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2813
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2814 352 RPL_WHOREPLY
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2815 "<channel> <user> <host> <server> <nick> \
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2816 <H|G>[*][@|+] :<hopcount> <real name>"
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2817 315 RPL_ENDOFWHO
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2818 "<name> :End of /WHO list"
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2819
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2820 - The RPL_WHOREPLY and RPL_ENDOFWHO pair are used
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2821 to answer a WHO message. The RPL_WHOREPLY is only
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2822 sent if there is an appropriate match to the WHO
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2823 query. If there is a list of parameters supplied
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2824 with a WHO message, a RPL_ENDOFWHO must be sent
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2825 after processing each list item with <name> being
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2826 the item.
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2827
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2828 353 RPL_NAMREPLY
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2829 "<channel> :[[@|+]<nick> [[@|+]<nick> [...]]]"
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2830 366 RPL_ENDOFNAMES
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2831 "<channel> :End of /NAMES list"
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2832
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2833 - To reply to a NAMES message, a reply pair consisting
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2834 of RPL_NAMREPLY and RPL_ENDOFNAMES is sent by the
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2835 server back to the client. If there is no channel
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2836 found as in the query, then only RPL_ENDOFNAMES is
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2837 returned. The exception to this is when a NAMES
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2838 message is sent with no parameters and all visible
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2839 channels and contents are sent back in a series of
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2840 RPL_NAMEREPLY messages with a RPL_ENDOFNAMES to mark
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2841 the end.
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2842
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2843 364 RPL_LINKS
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2844 "<mask> <server> :<hopcount> <server info>"
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2845 365 RPL_ENDOFLINKS
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2846 "<mask> :End of /LINKS list"
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2847
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2848 - In replying to the LINKS message, a server must send
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2849 replies back using the RPL_LINKS numeric and mark the
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2850 end of the list using an RPL_ENDOFLINKS reply.
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2851
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2852 367 RPL_BANLIST
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2853 "<channel> <banid>"
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2854 368 RPL_ENDOFBANLIST
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2855
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2856
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2857
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2858 Oikarinen & Reed [Page 51]
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2859
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2860 RFC 1459 Internet Relay Chat Protocol May 1993
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2861
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2862
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2863 "<channel> :End of channel ban list"
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2864
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2865 - When listing the active 'bans' for a given channel,
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2866 a server is required to send the list back using the
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2867 RPL_BANLIST and RPL_ENDOFBANLIST messages. A separate
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2868 RPL_BANLIST is sent for each active banid. After the
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2869 banids have been listed (or if none present) a
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2870 RPL_ENDOFBANLIST must be sent.
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2871
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2872 371 RPL_INFO
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2873 ":<string>"
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2874 374 RPL_ENDOFINFO
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2875 ":End of /INFO list"
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2876
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2877 - A server responding to an INFO message is required to
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2878 send all its 'info' in a series of RPL_INFO messages
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2879 with a RPL_ENDOFINFO reply to indicate the end of the
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2880 replies.
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2881
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2882 375 RPL_MOTDSTART
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2883 ":- <server> Message of the day - "
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2884 372 RPL_MOTD
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2885 ":- <text>"
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2886 376 RPL_ENDOFMOTD
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2887 ":End of /MOTD command"
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2888
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2889 - When responding to the MOTD message and the MOTD file
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2890 is found, the file is displayed line by line, with
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2891 each line no longer than 80 characters, using
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2892 RPL_MOTD format replies. These should be surrounded
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2893 by a RPL_MOTDSTART (before the RPL_MOTDs) and an
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2894 RPL_ENDOFMOTD (after).
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2895
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2896 381 RPL_YOUREOPER
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2897 ":You are now an IRC operator"
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2898
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2899 - RPL_YOUREOPER is sent back to a client which has
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2900 just successfully issued an OPER message and gained
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2901 operator status.
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2902
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2903 382 RPL_REHASHING
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2904 "<config file> :Rehashing"
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2905
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2906 - If the REHASH option is used and an operator sends
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2907 a REHASH message, an RPL_REHASHING is sent back to
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2908 the operator.
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2909
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2910 391 RPL_TIME
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2911
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2912
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2913
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2914 Oikarinen & Reed [Page 52]
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2915
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2916 RFC 1459 Internet Relay Chat Protocol May 1993
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2917
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2918
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2919 "<server> :<string showing server's local time>"
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2920
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2921 - When replying to the TIME message, a server must send
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2922 the reply using the RPL_TIME format above. The string
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2923 showing the time need only contain the correct day and
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2924 time there. There is no further requirement for the
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2925 time string.
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2926
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2927 392 RPL_USERSSTART
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2928 ":UserID Terminal Host"
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2929 393 RPL_USERS
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2930 ":%-8s %-9s %-8s"
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2931 394 RPL_ENDOFUSERS
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2932 ":End of users"
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2933 395 RPL_NOUSERS
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2934 ":Nobody logged in"
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2935
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2936 - If the USERS message is handled by a server, the
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2937 replies RPL_USERSTART, RPL_USERS, RPL_ENDOFUSERS and
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2938 RPL_NOUSERS are used. RPL_USERSSTART must be sent
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2939 first, following by either a sequence of RPL_USERS
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2940 or a single RPL_NOUSER. Following this is
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2941 RPL_ENDOFUSERS.
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2942
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2943 200 RPL_TRACELINK
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2944 "Link <version & debug level> <destination> \
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2945 <next server>"
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2946 201 RPL_TRACECONNECTING
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2947 "Try. <class> <server>"
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2948 202 RPL_TRACEHANDSHAKE
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2949 "H.S. <class> <server>"
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2950 203 RPL_TRACEUNKNOWN
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2951 "???? <class> [<client IP address in dot form>]"
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2952 204 RPL_TRACEOPERATOR
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2953 "Oper <class> <nick>"
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2954 205 RPL_TRACEUSER
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2955 "User <class> <nick>"
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2956 206 RPL_TRACESERVER
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2957 "Serv <class> <int>S <int>C <server> \
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2958 <nick!user|*!*>@<host|server>"
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2959 208 RPL_TRACENEWTYPE
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2960 "<newtype> 0 <client name>"
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2961 261 RPL_TRACELOG
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2962 "File <logfile> <debug level>"
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2963
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2964 - The RPL_TRACE* are all returned by the server in
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2965 response to the TRACE message. How many are
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2966 returned is dependent on the the TRACE message and
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2967
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2968
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2969
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2970 Oikarinen & Reed [Page 53]
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2971
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2972 RFC 1459 Internet Relay Chat Protocol May 1993
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2973
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2974
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2975 whether it was sent by an operator or not. There
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2976 is no predefined order for which occurs first.
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2977 Replies RPL_TRACEUNKNOWN, RPL_TRACECONNECTING and
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2978 RPL_TRACEHANDSHAKE are all used for connections
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2979 which have not been fully established and are either
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2980 unknown, still attempting to connect or in the
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2981 process of completing the 'server handshake'.
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2982 RPL_TRACELINK is sent by any server which handles
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2983 a TRACE message and has to pass it on to another
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2984 server. The list of RPL_TRACELINKs sent in
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2985 response to a TRACE command traversing the IRC
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2986 network should reflect the actual connectivity of
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2987 the servers themselves along that path.
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2988 RPL_TRACENEWTYPE is to be used for any connection
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2989 which does not fit in the other categories but is
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2990 being displayed anyway.
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2991
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2992 211 RPL_STATSLINKINFO
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2993 "<linkname> <sendq> <sent messages> \
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2994 <sent bytes> <received messages> \
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2995 <received bytes> <time open>"
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2996 212 RPL_STATSCOMMANDS
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2997 "<command> <count>"
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2998 213 RPL_STATSCLINE
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2999 "C <host> * <name> <port> <class>"
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
3000 214 RPL_STATSNLINE
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
3001 "N <host> * <name> <port> <class>"
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
3002 215 RPL_STATSILINE
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
3003 "I <host> * <host> <port> <class>"
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
3004 216 RPL_STATSKLINE
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
3005 "K <host> * <username> <port> <class>"
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
3006 218 RPL_STATSYLINE
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
3007 "Y <class> <ping frequency> <connect \
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
3008 frequency> <max sendq>"
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
3009 219 RPL_ENDOFSTATS
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
3010 "<stats letter> :End of /STATS report"
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
3011 241 RPL_STATSLLINE
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
3012 "L <hostmask> * <servername> <maxdepth>"
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
3013 242 RPL_STATSUPTIME
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
3014 ":Server Up %d days %d:%02d:%02d"
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
3015 243 RPL_STATSOLINE
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
3016 "O <hostmask> * <name>"
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
3017 244 RPL_STATSHLINE
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
3018 "H <hostmask> * <servername>"
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
3019
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
3020 221 RPL_UMODEIS
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
3021 "<user mode string>"
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
3022
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
3023
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
3024
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
3025
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
3026 Oikarinen & Reed [Page 54]
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
3027
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
3028 RFC 1459 Internet Relay Chat Protocol May 1993
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
3029
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
3030
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
3031 - To answer a query about a client's own mode,
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
3032 RPL_UMODEIS is sent back.
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
3033
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
3034 251 RPL_LUSERCLIENT
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
3035 ":There are <integer> users and <integer> \
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
3036 invisible on <integer> servers"
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
3037 252 RPL_LUSEROP
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
3038 "<integer> :operator(s) online"
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
3039 253 RPL_LUSERUNKNOWN
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
3040 "<integer> :unknown connection(s)"
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
3041 254 RPL_LUSERCHANNELS
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
3042 "<integer> :channels formed"
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
3043 255 RPL_LUSERME
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
3044 ":I have <integer> clients and <integer> \
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
3045 servers"
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
3046
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
3047 - In processing an LUSERS message, the server
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
3048 sends a set of replies from RPL_LUSERCLIENT,
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
3049 RPL_LUSEROP, RPL_USERUNKNOWN,
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
3050 RPL_LUSERCHANNELS and RPL_LUSERME. When
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
3051 replying, a server must send back
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
3052 RPL_LUSERCLIENT and RPL_LUSERME. The other
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
3053 replies are only sent back if a non-zero count
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
3054 is found for them.
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
3055
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
3056 256 RPL_ADMINME
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
3057 "<server> :Administrative info"
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
3058 257 RPL_ADMINLOC1
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
3059 ":<admin info>"
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
3060 258 RPL_ADMINLOC2
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
3061 ":<admin info>"
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
3062 259 RPL_ADMINEMAIL
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
3063 ":<admin info>"
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
3064
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
3065 - When replying to an ADMIN message, a server
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
3066 is expected to use replies RLP_ADMINME
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
3067 through to RPL_ADMINEMAIL and provide a text
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
3068 message with each. For RPL_ADMINLOC1 a
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
3069 description of what city, state and country
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
3070 the server is in is expected, followed by
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
3071 details of the university and department
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
3072 (RPL_ADMINLOC2) and finally the administrative
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
3073 contact for the server (an email address here
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
3074 is required) in RPL_ADMINEMAIL.
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
3075
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
3076
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
3077
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
3078
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
3079
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
3080
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
3081
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
3082 Oikarinen & Reed [Page 55]
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
3083
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
3084 RFC 1459 Internet Relay Chat Protocol May 1993
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
3085
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
3086
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
3087 6.3 Reserved numerics.
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
3088
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
3089 These numerics are not described above since they fall into one of
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
3090 the following categories:
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
3091
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
3092 1. no longer in use;
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
3093
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
3094 2. reserved for future planned use;
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
3095
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
3096 3. in current use but are part of a non-generic 'feature' of
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
3097 the current IRC server.
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
3098
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
3099 209 RPL_TRACECLASS 217 RPL_STATSQLINE
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
3100 231 RPL_SERVICEINFO 232 RPL_ENDOFSERVICES
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
3101 233 RPL_SERVICE 234 RPL_SERVLIST
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
3102 235 RPL_SERVLISTEND
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
3103 316 RPL_WHOISCHANOP 361 RPL_KILLDONE
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
3104 362 RPL_CLOSING 363 RPL_CLOSEEND
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
3105 373 RPL_INFOSTART 384 RPL_MYPORTIS
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
3106 466 ERR_YOUWILLBEBANNED 476 ERR_BADCHANMASK
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
3107 492 ERR_NOSERVICEHOST
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
3108
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
3109 7. Client and server authentication
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
3110
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
3111 Clients and servers are both subject to the same level of
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
3112 authentication. For both, an IP number to hostname lookup (and
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
3113 reverse check on this) is performed for all connections made to the
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
3114 server. Both connections are then subject to a password check (if
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
3115 there is a password set for that connection). These checks are
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
3116 possible on all connections although the password check is only
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
3117 commonly used with servers.
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
3118
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
3119 An additional check that is becoming of more and more common is that
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
3120 of the username responsible for making the connection. Finding the
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
3121 username of the other end of the connection typically involves
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
3122 connecting to an authentication server such as IDENT as described in
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
3123 RFC 1413.
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
3124
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
3125 Given that without passwords it is not easy to reliably determine who
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
3126 is on the other end of a network connection, use of passwords is
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
3127 strongly recommended on inter-server connections in addition to any
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
3128 other measures such as using an ident server.
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
3129
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
3130 8. Current implementations
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
3131
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
3132 The only current implementation of this protocol is the IRC server,
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
3133 version 2.8. Earlier versions may implement some or all of the
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
3134 commands described by this document with NOTICE messages replacing
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
3135
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
3136
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
3137
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
3138 Oikarinen & Reed [Page 56]
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
3139
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
3140 RFC 1459 Internet Relay Chat Protocol May 1993
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
3141
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
3142
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
3143 many of the numeric replies. Unfortunately, due to backward
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
3144 compatibility requirements, the implementation of some parts of this
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
3145 document varies with what is laid out. On notable difference is:
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
3146
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
3147 * recognition that any LF or CR anywhere in a message marks the
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
3148 end of that message (instead of requiring CR-LF);
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
3149
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
3150 The rest of this section deals with issues that are mostly of
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
3151 importance to those who wish to implement a server but some parts
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
3152 also apply directly to clients as well.
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
3153
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
3154 8.1 Network protocol: TCP - why it is best used here.
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
3155
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
3156 IRC has been implemented on top of TCP since TCP supplies a reliable
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
3157 network protocol which is well suited to this scale of conferencing.
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
3158 The use of multicast IP is an alternative, but it is not widely
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
3159 available or supported at the present time.
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
3160
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
3161 8.1.1 Support of Unix sockets
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
3162
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
3163 Given that Unix domain sockets allow listen/connect operations, the
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
3164 current implementation can be configured to listen and accept both
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
3165 client and server connections on a Unix domain socket. These are
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
3166 recognized as sockets where the hostname starts with a '/'.
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
3167
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
3168 When providing any information about the connections on a Unix domain
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
3169 socket, the server is required to supplant the actual hostname in
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
3170 place of the pathname unless the actual socket name is being asked
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
3171 for.
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
3172
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
3173 8.2 Command Parsing
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
3174
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
3175 To provide useful 'non-buffered' network IO for clients and servers,
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
3176 each connection is given its own private 'input buffer' in which the
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
3177 results of the most recent read and parsing are kept. A buffer size
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
3178 of 512 bytes is used so as to hold 1 full message, although, this
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
3179 will usually hold several commands. The private buffer is parsed
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
3180 after every read operation for valid messages. When dealing with
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
3181 multiple messages from one client in the buffer, care should be taken
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
3182 in case one happens to cause the client to be 'removed'.
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
3183
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
3184 8.3 Message delivery
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
3185
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
3186 It is common to find network links saturated or hosts to which you
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
3187 are sending data unable to send data. Although Unix typically
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
3188 handles this through the TCP window and internal buffers, the server
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
3189 often has large amounts of data to send (especially when a new
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
3190 server-server link forms) and the small buffers provided in the
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
3191
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
3192
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
3193
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
3194 Oikarinen & Reed [Page 57]
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
3195
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
3196 RFC 1459 Internet Relay Chat Protocol May 1993
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
3197
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
3198
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
3199 kernel are not enough for the outgoing queue. To alleviate this
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
3200 problem, a "send queue" is used as a FIFO queue for data to be sent.
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
3201 A typical "send queue" may grow to 200 Kbytes on a large IRC network
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
3202 with a slow network connection when a new server connects.
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
3203
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
3204 When polling its connections, a server will first read and parse all
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
3205 incoming data, queuing any data to be sent out. When all available
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
3206 input is processed, the queued data is sent. This reduces the number
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
3207 of write() system calls and helps TCP make bigger packets.
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
3208
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
3209 8.4 Connection 'Liveness'
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
3210
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
3211 To detect when a connection has died or become unresponsive, the
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
3212 server must ping each of its connections that it doesn't get a
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
3213 response from in a given amount of time.
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
3214
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
3215 If a connection doesn't respond in time, its connection is closed
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
3216 using the appropriate procedures. A connection is also dropped if
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
3217 its sendq grows beyond the maximum allowed, because it is better to
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
3218 close a slow connection than have a server process block.
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
3219
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
3220 8.5 Establishing a server to client connection
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
3221
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
3222 Upon connecting to an IRC server, a client is sent the MOTD (if
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
3223 present) as well as the current user/server count (as per the LUSER
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
3224 command). The server is also required to give an unambiguous message
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
3225 to the client which states its name and version as well as any other
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
3226 introductory messages which may be deemed appropriate.
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
3227
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
3228 After dealing with this, the server must then send out the new user's
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
3229 nickname and other information as supplied by itself (USER command)
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
3230 and as the server could discover (from DNS/authentication servers).
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
3231 The server must send this information out with NICK first followed by
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
3232 USER.
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
3233
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
3234 8.6 Establishing a server-server connection.
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
3235
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
3236 The process of establishing of a server-to-server connection is
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
3237 fraught with danger since there are many possible areas where
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
3238 problems can occur - the least of which are race conditions.
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
3239
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
3240 After a server has received a connection following by a PASS/SERVER
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
3241 pair which were recognised as being valid, the server should then
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
3242 reply with its own PASS/SERVER information for that connection as
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
3243 well as all of the other state information it knows about as
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
3244 described below.
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
3245
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
3246 When the initiating server receives a PASS/SERVER pair, it too then
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
3247
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
3248
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
3249
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
3250 Oikarinen & Reed [Page 58]
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
3251
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
3252 RFC 1459 Internet Relay Chat Protocol May 1993
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
3253
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
3254
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
3255 checks that the server responding is authenticated properly before
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
3256 accepting the connection to be that server.
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
3257
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
3258 8.6.1 Server exchange of state information when connecting
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
3259
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
3260 The order of state information being exchanged between servers is
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
3261 essential. The required order is as follows:
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
3262
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
3263 * all known other servers;
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
3264
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
3265 * all known user information;
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
3266
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
3267 * all known channel information.
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
3268
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
3269 Information regarding servers is sent via extra SERVER messages, user
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
3270 information with NICK/USER/MODE/JOIN messages and channels with MODE
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
3271 messages.
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
3272
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
3273 NOTE: channel topics are *NOT* exchanged here because the TOPIC
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
3274 command overwrites any old topic information, so at best, the two
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
3275 sides of the connection would exchange topics.
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
3276
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
3277 By passing the state information about servers first, any collisions
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
3278 with servers that already exist occur before nickname collisions due
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
3279 to a second server introducing a particular nickname. Due to the IRC
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
3280 network only being able to exist as an acyclic graph, it may be
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
3281 possible that the network has already reconnected in another
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
3282 location, the place where the collision occurs indicating where the
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
3283 net needs to split.
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
3284
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
3285 8.7 Terminating server-client connections
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
3286
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
3287 When a client connection closes, a QUIT message is generated on
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
3288 behalf of the client by the server to which the client connected. No
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
3289 other message is to be generated or used.
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
3290
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
3291 8.8 Terminating server-server connections
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
3292
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
3293 If a server-server connection is closed, either via a remotely
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
3294 generated SQUIT or 'natural' causes, the rest of the connected IRC
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
3295 network must have its information updated with by the server which
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
3296 detected the closure. The server then sends a list of SQUITs (one
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
3297 for each server behind that connection) and a list of QUITs (again,
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
3298 one for each client behind that connection).
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
3299
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
3300
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
3301
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
3302
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
3303
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
3304
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
3305
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
3306 Oikarinen & Reed [Page 59]
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
3307
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
3308 RFC 1459 Internet Relay Chat Protocol May 1993
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
3309
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
3310
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
3311 8.9 Tracking nickname changes
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
3312
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
3313 All IRC servers are required to keep a history of recent nickname
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
3314 changes. This is required to allow the server to have a chance of
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
3315 keeping in touch of things when nick-change race conditions occur
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
3316 with commands which manipulate them. Commands which must trace nick
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
3317 changes are:
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
3318
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
3319 * KILL (the nick being killed)
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
3320
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
3321 * MODE (+/- o,v)
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
3322
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
3323 * KICK (the nick being kicked)
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
3324
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
3325 No other commands are to have nick changes checked for.
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
3326
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
3327 In the above cases, the server is required to first check for the
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
3328 existence of the nickname, then check its history to see who that
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
3329 nick currently belongs to (if anyone!). This reduces the chances of
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
3330 race conditions but they can still occur with the server ending up
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
3331 affecting the wrong client. When performing a change trace for an
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
3332 above command it is recommended that a time range be given and
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
3333 entries which are too old ignored.
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
3334
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
3335 For a reasonable history, a server should be able to keep previous
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
3336 nickname for every client it knows about if they all decided to
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
3337 change. This size is limited by other factors (such as memory, etc).
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
3338
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
3339 8.10 Flood control of clients
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
3340
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
3341 With a large network of interconnected IRC servers, it is quite easy
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
3342 for any single client attached to the network to supply a continuous
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
3343 stream of messages that result in not only flooding the network, but
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
3344 also degrading the level of service provided to others. Rather than
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
3345 require every 'victim' to be provide their own protection, flood
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
3346 protection was written into the server and is applied to all clients
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
3347 except services. The current algorithm is as follows:
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
3348
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
3349 * check to see if client's `message timer' is less than
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
3350 current time (set to be equal if it is);
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
3351
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
3352 * read any data present from the client;
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
3353
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
3354 * while the timer is less than ten seconds ahead of the current
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
3355 time, parse any present messages and penalize the client by
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
3356 2 seconds for each message;
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
3357
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
3358 which in essence means that the client may send 1 message every 2
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
3359
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
3360
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
3361
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
3362 Oikarinen & Reed [Page 60]
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
3363
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
3364 RFC 1459 Internet Relay Chat Protocol May 1993
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
3365
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
3366
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
3367 seconds without being adversely affected.
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
3368
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
3369 8.11 Non-blocking lookups
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
3370
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
3371 In a real-time environment, it is essential that a server process do
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
3372 as little waiting as possible so that all the clients are serviced
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
3373 fairly. Obviously this requires non-blocking IO on all network
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
3374 read/write operations. For normal server connections, this was not
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
3375 difficult, but there are other support operations that may cause the
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
3376 server to block (such as disk reads). Where possible, such activity
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
3377 should be performed with a short timeout.
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
3378
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
3379 8.11.1 Hostname (DNS) lookups
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
3380
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
3381 Using the standard resolver libraries from Berkeley and others has
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
3382 meant large delays in some cases where replies have timed out. To
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
3383 avoid this, a separate set of DNS routines were written which were
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
3384 setup for non-blocking IO operations and then polled from within the
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
3385 main server IO loop.
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
3386
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
3387 8.11.2 Username (Ident) lookups
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
3388
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
3389 Although there are numerous ident libraries for use and inclusion
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
3390 into other programs, these caused problems since they operated in a
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
3391 synchronous manner and resulted in frequent delays. Again the
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
3392 solution was to write a set of routines which would cooperate with
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
3393 the rest of the server and work using non-blocking IO.
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
3394
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
3395 8.12 Configuration File
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
3396
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
3397 To provide a flexible way of setting up and running the server, it is
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
3398 recommended that a configuration file be used which contains
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
3399 instructions to the server on the following:
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
3400
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
3401 * which hosts to accept client connections from;
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
3402
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
3403 * which hosts to allow to connect as servers;
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
3404
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
3405 * which hosts to connect to (both actively and
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
3406 passively);
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
3407
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
3408 * information about where the server is (university,
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
3409 city/state, company are examples of this);
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
3410
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
3411 * who is responsible for the server and an email address
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
3412 at which they can be contacted;
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
3413
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
3414 * hostnames and passwords for clients which wish to be given
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
3415
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
3416
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
3417
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
3418 Oikarinen & Reed [Page 61]
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
3419
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
3420 RFC 1459 Internet Relay Chat Protocol May 1993
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
3421
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
3422
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
3423 access to restricted operator commands.
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
3424
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
3425 In specifying hostnames, both domain names and use of the 'dot'
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
3426 notation (127.0.0.1) should both be accepted. It must be possible to
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
3427 specify the password to be used/accepted for all outgoing and
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
3428 incoming connections (although the only outgoing connections are
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
3429 those to other servers).
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
3430
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
3431 The above list is the minimum requirement for any server which wishes
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
3432 to make a connection with another server. Other items which may be
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
3433 of use are:
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
3434
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
3435 * specifying which servers other server may introduce;
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
3436
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
3437 * how deep a server branch is allowed to become;
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
3438
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
3439 * hours during which clients may connect.
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
3440
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
3441 8.12.1 Allowing clients to connect
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
3442
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
3443 A server should use some sort of 'access control list' (either in the
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
3444 configuration file or elsewhere) that is read at startup and used to
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
3445 decide what hosts clients may use to connect to it.
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
3446
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
3447 Both 'deny' and 'allow' should be implemented to provide the required
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
3448 flexibility for host access control.
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
3449
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
3450 8.12.2 Operators
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
3451
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
3452 The granting of operator privileges to a disruptive person can have
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
3453 dire consequences for the well-being of the IRC net in general due to
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
3454 the powers given to them. Thus, the acquisition of such powers
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
3455 should not be very easy. The current setup requires two 'passwords'
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
3456 to be used although one of them is usually easy guessed. Storage of
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
3457 oper passwords in configuration files is preferable to hard coding
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
3458 them in and should be stored in a crypted format (ie using crypt(3)
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
3459 from Unix) to prevent easy theft.
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
3460
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
3461 8.12.3 Allowing servers to connect
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
3462
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
3463 The interconnection of server is not a trivial matter: a bad
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
3464 connection can have a large impact on the usefulness of IRC. Thus,
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
3465 each server should have a list of servers to which it may connect and
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
3466 which servers may connect to it. Under no circumstances should a
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
3467 server allow an arbitrary host to connect as a server. In addition
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
3468 to which servers may and may not connect, the configuration file
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
3469 should also store the password and other characteristics of that
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
3470 link.
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
3471
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
3472
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
3473
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
3474 Oikarinen & Reed [Page 62]
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
3475
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
3476 RFC 1459 Internet Relay Chat Protocol May 1993
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
3477
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
3478
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
3479 8.12.4 Administrivia
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
3480
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
3481 To provide accurate and valid replies to the ADMIN command (see
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
3482 section 4.3.7), the server should find the relevant details in the
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
3483 configuration.
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
3484
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
3485 8.13 Channel membership
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
3486
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
3487 The current server allows any registered local user to join upto 10
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
3488 different channels. There is no limit imposed on non-local users so
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
3489 that the server remains (reasonably) consistant with all others on a
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
3490 channel membership basis
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
3491
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
3492 9. Current problems
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
3493
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
3494 There are a number of recognized problems with this protocol, all of
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
3495 which hope to be solved sometime in the near future during its
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
3496 rewrite. Currently, work is underway to find working solutions to
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
3497 these problems.
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
3498
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
3499 9.1 Scalability
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
3500
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
3501 It is widely recognized that this protocol does not scale
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
3502 sufficiently well when used in a large arena. The main problem comes
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
3503 from the requirement that all servers know about all other servers
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
3504 and users and that information regarding them be updated as soon as
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
3505 it changes. It is also desirable to keep the number of servers low
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
3506 so that the path length between any two points is kept minimal and
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
3507 the spanning tree as strongly branched as possible.
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
3508
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
3509 9.2 Labels
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
3510
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
3511 The current IRC protocol has 3 types of labels: the nickname, the
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
3512 channel name and the server name. Each of the three types has its
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
3513 own domain and no duplicates are allowed inside that domain.
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
3514 Currently, it is possible for users to pick the label for any of the
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
3515 three, resulting in collisions. It is widely recognized that this
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
3516 needs reworking, with a plan for unique names for channels and nicks
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
3517 that don't collide being desirable as well as a solution allowing a
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
3518 cyclic tree.
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
3519
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
3520 9.2.1 Nicknames
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
3521
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
3522 The idea of the nickname on IRC is very convenient for users to use
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
3523 when talking to each other outside of a channel, but there is only a
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
3524 finite nickname space and being what they are, its not uncommon for
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
3525 several people to want to use the same nick. If a nickname is chosen
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
3526 by two people using this protocol, either one will not succeed or
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
3527
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
3528
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
3529
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
3530 Oikarinen & Reed [Page 63]
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
3531
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
3532 RFC 1459 Internet Relay Chat Protocol May 1993
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
3533
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
3534
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
3535 both will removed by use of KILL (4.6.1).
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
3536
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
3537 9.2.2 Channels
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
3538
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
3539 The current channel layout requires that all servers know about all
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
3540 channels, their inhabitants and properties. Besides not scaling
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
3541 well, the issue of privacy is also a concern. A collision of
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
3542 channels is treated as an inclusive event (both people who create the
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
3543 new channel are considered to be members of it) rather than an
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
3544 exclusive one such as used to solve nickname collisions.
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
3545
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
3546 9.2.3 Servers
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
3547
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
3548 Although the number of servers is usually small relative to the
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
3549 number of users and channels, they two currently required to be known
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
3550 globally, either each one separately or hidden behind a mask.
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
3551
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
3552 9.3 Algorithms
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
3553
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
3554 In some places within the server code, it has not been possible to
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
3555 avoid N^2 algorithms such as checking the channel list of a set
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
3556 of clients.
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
3557
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
3558 In current server versions, there are no database consistency checks,
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
3559 each server assumes that a neighbouring server is correct. This
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
3560 opens the door to large problems if a connecting server is buggy or
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
3561 otherwise tries to introduce contradictions to the existing net.
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
3562
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
3563 Currently, because of the lack of unique internal and global labels,
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
3564 there are a multitude of race conditions that exist. These race
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
3565 conditions generally arise from the problem of it taking time for
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
3566 messages to traverse and effect the IRC network. Even by changing to
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
3567 unique labels, there are problems with channel-related commands being
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
3568 disrupted.
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
3569
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
3570 10. Current support and availability
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
3571
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
3572 Mailing lists for IRC related discussion:
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
3573 Future protocol: ircd-three-request@eff.org
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
3574 General discussion: operlist-request@eff.org
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
3575
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
3576 Software implemenations
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
3577 cs.bu.edu:/irc
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
3578 nic.funet.fi:/pub/irc
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
3579 coombs.anu.edu.au:/pub/irc
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
3580
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
3581 Newsgroup: alt.irc
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
3582
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
3583
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
3584
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
3585
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
3586 Oikarinen & Reed [Page 64]
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
3587
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
3588 RFC 1459 Internet Relay Chat Protocol May 1993
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
3589
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
3590
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
3591 Security Considerations
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
3592
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
3593 Security issues are discussed in sections 4.1, 4.1.1, 4.1.3, 5.5, and
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
3594 7.
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
3595
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
3596 12. Authors' Addresses
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
3597
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
3598 Jarkko Oikarinen
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
3599 Tuirantie 17 as 9
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
3600 90500 OULU
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
3601 FINLAND
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
3602
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
3603 Email: jto@tolsun.oulu.fi
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
3604
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
3605
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
3606 Darren Reed
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
3607 4 Pateman Street
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
3608 Watsonia, Victoria 3087
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
3609 Australia
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
3610
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
3611 Email: avalon@coombs.anu.edu.au
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
3612
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
3613
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
3614
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
3615
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
3616
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
3617
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
3618
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
3619
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
3620
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
3621
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
3622
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
3623
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
3624
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
3625
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
3626
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
3627
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
3628
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
3629
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
3630
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
3631
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
3632
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
3633
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
3634
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
3635
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
3636
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
3637
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
3638
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
3639
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
3640
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
3641
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
3642 Oikarinen & Reed [Page 65]
047256035ec6 [gaim-migrate @ 2631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
3643