2 * IRC - Internet Relay Chat, include/numeric.h
3 * Copyright (C) 1990 Jarkko Oikarinen
5 * This program is free software; you can redistribute it and/or modify
6 * it under the terms of the GNU General Public License as published by
7 * the Free Software Foundation; either version 1, or (at your option)
10 * This program is distributed in the hope that it will be useful,
11 * but WITHOUT ANY WARRANTY; without even the implied warranty of
12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 * GNU General Public License for more details.
15 * You should have received a copy of the GNU General Public License
16 * along with this program; if not, write to the Free Software
17 * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
21 #ifndef INCLUDED_numeric_h
22 #define INCLUDED_numeric_h
24 typedef struct Numeric {
33 extern char* err_str(int numeric);
34 extern char* rpl_str(int numeric);
35 extern const struct Numeric* get_error_numeric(int err);
39 * aircd - aircd source. Doesn't appear to be available on the web.
40 * anywhere. Ask me (Isomer) if you'd like a copy. (it's gpl)
41 * Numeric List - http://www.contactor.se/~dast/irc/numerics.txt
46 * Reserve numerics 000-099 for server-client connections where the client
47 * is local to the server. If any server is passed a numeric in this range
48 * from another server then it is remapped to 100-199. -avalon
51 #define RPL_YOURHOST 2
54 #define RPL_ISUPPORT 5 /* Undernet/Dalnet extension */
55 /* RPL_BOUNCE IRCnet extension */
56 /* RPL_MAP 6 unreal */
57 /* RPL_MAPEND 7 unreal */
58 #define RPL_SNOMASK 8 /* Undernet extension */
59 #define RPL_STATMEMTOT 9 /* Undernet extension */
60 #define RPL_STATMEM 10 /* Undernet extension */
61 /* Hybrid: server redirect */
62 /* RPL_YOURCOOKIE 14 IRCnet extension */
63 #define RPL_MAP 15 /* Undernet extension */
64 #define RPL_MAPMORE 16 /* Undernet extension */
65 #define RPL_MAPEND 17 /* Undernet extension */
66 #define RPL_APASSWARN 30 /* Undernet extension */
67 /* RPL_YOURID 42 IRCnet extension */
68 /* RPL_ATTEMPTINGJUNC 50 aircd extension */
69 /* RPL_ATTEMPTINGREROUTE 51 aircd extension */
72 * Numberic replies from server commands.
73 * These are currently in the range 200-399.
76 #define RPL_TRACELINK 200
77 #define RPL_TRACECONNECTING 201
78 #define RPL_TRACEHANDSHAKE 202
79 #define RPL_TRACEUNKNOWN 203
80 #define RPL_TRACEOPERATOR 204
81 #define RPL_TRACEUSER 205
82 #define RPL_TRACESERVER 206
83 #define RPL_TRACENEWTYPE 208
84 #define RPL_TRACECLASS 209
85 /* RPL_STATS 210 aircd extension, used instead of having
86 multiple stats numerics */
87 /* RPL_TRACERECONNECT 210 IRCnet extension */
88 #define RPL_STATSLINKINFO 211
89 #define RPL_STATSCOMMANDS 212
90 #define RPL_STATSCLINE 213
91 /* RPL_STATSOLDNLINE 214 unreal */
92 #define RPL_STATSNLINE 214 /* unused */
93 #define RPL_STATSILINE 215
94 #define RPL_STATSKLINE 216
95 #define RPL_STATSPLINE 217 /* Undernet extenstion */
96 /* RPL_STATSQLINE 217 Various */
97 #define RPL_STATSYLINE 218
98 #define RPL_ENDOFSTATS 219 /* See also RPL_STATSDLINE */
99 /* RPL_STATSPLINE 220 Hybrid - Because 217 was for
101 /* RPL_STATSBLINE 220 Numerics List: Dalnet,unreal */
102 #define RPL_UMODEIS 221
103 /* RPL_SQLINE_NICK 222 Numerics List: Dalnet */
104 /* RPL_STATSELINE 223 dalnet */
105 /* RPL_STATSGLINE 223 unreal */
106 /* RPL_STATSFLINE 224 Hybrid extension,Dalnet */
107 /* RPL_STATSTLINE 224 unreal */
108 /* RPL_STATSDLINE 225 Hybrid extension */
109 /* RPL_STATSZLINE 225 Dalnet
110 RPL_STATSELINE 225 unreal
111 RPL_STATSCOUNT 226 Dalnet
112 RPL_STATSNLINE 226 unreal
113 RPL_STATSGLINE 227 Dalnet
114 RPL_STATSVLINE 227 unreal */
116 #define RPL_SERVICEINFO 231 /* unused */
117 #define RPL_ENDOFSERVICES 232 /* unused */
118 /* RPL_RULES 232 unreal */
119 #define RPL_SERVICE 233 /* unused */
120 #define RPL_SERVLIST 234 /* unused */
121 #define RPL_SERVLISTEND 235 /* unused */
123 #define RPL_STATSENGINE 237 /* Undernet engine name */
124 #define RPL_STATSFLINE 238 /* Undernet feature lines */
125 /* RPL_STATSIAUTH 239 IRCnet extension */
126 /* RPL_STATSVLINE 240 IRCnet extension */
127 /* RPL_STATSXLINE 240 austnet */
128 #define RPL_STATSLLINE 241
129 #define RPL_STATSUPTIME 242
130 #define RPL_STATSOLINE 243
131 #define RPL_STATSHLINE 244
132 /* RPL_STATSSLINE 245 Reserved / Dalnet / IRCnet / EFnet */
133 /* RPL_STATSSPING 246 Numerics List: IRCnet */
134 #define RPL_STATSTLINE 246 /* Undernet extension */
135 /* RPL_STATSULINE 246 Dalnet */
136 #define RPL_STATSGLINE 247 /* Undernet extension */
137 /* RPL_STATSXLINE 247 hybrid extension,PTlink,unreal */
138 /* RPL_STATSBLINE 247 Numerics List: IRCnet */
139 #define RPL_STATSULINE 248 /* Undernet extension */
140 /* RPL_STATSDEFINE 248 Numerics List: IRCnet */
141 #define RPL_STATSDEBUG 249 /* Extension to RFC1459 */
142 #define RPL_STATSCONN 250 /* Undernet extension */
143 /* RPL_STATSDLINE 250 Numerics List: IRCnet */
145 #define RPL_LUSERCLIENT 251
146 #define RPL_LUSEROP 252
147 #define RPL_LUSERUNKNOWN 253
148 #define RPL_LUSERCHANNELS 254
149 #define RPL_LUSERME 255
150 #define RPL_ADMINME 256
151 #define RPL_ADMINLOC1 257
152 #define RPL_ADMINLOC2 258
153 #define RPL_ADMINEMAIL 259
155 #define RPL_TRACELOG 261 /* unused */
156 #define RPL_TRACEPING 262 /* Extension to RFC1459, unused */
157 /* RPL_TRACEEND 262 efnet(?) Numerics List: IRCnet */
158 /* RPL_LOAD_THROTTLED 263 efnet/hybrid */
159 /* RPL_TRYAGAIN 263 Numerics List: IRCnet */
160 /* RPL_LOAD2HI 263 Dalnet */
161 /* RPL_CURRENT_LOCAL 265 aircd/efnet/hybrid/dalnet*/
162 /* RPL_CURRENT_GLOBAL 266 aircd/efnet/hybrid/dalnet */
163 /* RPL_START_NETSTAT 267 aircd */
164 /* RPL_NETSTAT 268 aircd */
165 /* RPL_END_NETSTAT 269 aircd */
166 #define RPL_PRIVS 270 /* Undernet extension - privs */
167 #define RPL_SILELIST 271 /* Undernet extension */
168 #define RPL_ENDOFSILELIST 272 /* Undernet extension */
169 /* RPL_NOTIFY 273 aircd */
170 /* RPL_END_NOTIFY 274 aircd */
171 /* RPL_STATSDELTA 274 IRCnet extension */
172 #define RPL_STATSDLINE 275 /* Undernet extension */
174 #define RPL_GLIST 280 /* Undernet extension */
175 #define RPL_ENDOFGLIST 281 /* Undernet extension */
176 #define RPL_JUPELIST 282 /* Undernet extension - jupe -Kev */
177 #define RPL_ENDOFJUPELIST 283 /* Undernet extension - jupe -Kev */
178 #define RPL_FEATURE 284 /* Undernet extension - features */
179 /* RPL_CHANINFO_HANDLE 285 aircd */
180 /* RPL_CHANINFO_USERS 286 aircd */
181 /* RPL_CHANINFO_CHOPS 287 aircd */
182 /* RPL_CHANINFO_VOICES 288 aircd */
183 /* RPL_CHANINFO_AWAY 289 aircd */
184 /* RPL_CHANINFO_OPERS 290 aircd */
185 /* RPL_HELPHDR 290 Numeric List: Dalnet */
186 /* RPL_CHANINFO_BANNED 291 aircd */
187 /* RPL_HELPOP 291 Numeric List: Dalnet */
188 /* RPL_CHANINFO_BANS 292 aircd */
189 /* RPL_HELPTLR 292 Numeric List: Dalnet */
190 /* RPL_CHANINFO_INVITE 293 aircd */
191 /* RPL_HELPHLP 293 Numeric List: Dalnet */
192 /* RPL_CHANINFO_INVITES 294 aircd */
193 /* RPL_HELPFWD 294 Numeric List: Dalnet */
194 /* RPL_CHANINFO_KICK 295 aircd */
195 /* RPL_HELPIGN 295 Numeric List: Dalnet */
196 /* RPL_CHANINFO_KICKS 296 aircd */
198 /* RPL_END_CHANINFO 299 aircd */
200 #define RPL_NONE 300 /* unused */
202 #define RPL_USERHOST 302
204 #define RPL_TEXT 304 /* unused */
205 #define RPL_UNAWAY 305
206 #define RPL_NOWAWAY 306
208 /* RPL_WHOISREGNICK 307 Numeric List: Dalnet */
209 /* RPL_SUSERHOST 307 austnet */
210 /* RPL_NOTIFYACTION 308 aircd */
211 /* RPL_WHOISADMIN 308 Numeric List: Dalnet */
212 /* RPL_RULESSTART 308 unreal */
213 /* RPL_NICKTRACE 309 aircd */
214 /* RPL_WHOISSADMIN 309 Numeric List: Dalnet */
215 /* RPL_ENDOFRULES 309 unreal */
216 /* RPL_WHOISHELPER 309 austnet */
217 /* RPL_WHOISSVCMSG 310 Dalnet */
218 /* RPL_WHOISHELPOP 310 unreal */
219 /* RPL_WHOISSERVICE 310 austnet */
220 #define RPL_WHOISUSER 311 /* See also RPL_ENDOFWHOIS */
221 #define RPL_WHOISSERVER 312
222 #define RPL_WHOISOPERATOR 313
223 #define RPL_WHOWASUSER 314 /* See also RPL_ENDOFWHOWAS */
224 #define RPL_ENDOFWHO 315 /* See RPL_WHOREPLY/RPL_WHOSPCRPL */
225 /* RPL_WHOISCHANOP 316 removed from RFC1459 */
226 #define RPL_WHOISIDLE 317
227 #define RPL_ENDOFWHOIS 318 /* See RPL_WHOISUSER/RPL_WHOISSERVER/
228 RPL_WHOISOPERATOR/RPL_WHOISIDLE */
229 #define RPL_WHOISCHANNELS 319
230 /* RPL_WHOIS_HIDDEN 320 Anothernet +h, ick! */
231 /* RPL_WHOISSPECIAL 320 unreal */
232 #define RPL_LISTSTART 321
234 #define RPL_LISTEND 323
235 #define RPL_CHANNELMODEIS 324
236 /* RPL_CHANNELPASSIS 325 IRCnet extension */
237 /* RPL_UNIQOPIS 325 IRCnet extension */
238 /* RPL_NOCHANPASS 326 IRCnet extension */
239 /* RPL_CHPASSUNKNOWN 327 IRCnet extension */
240 /* RPL_CHANNEL_URL 328 dalnet, anothernet */
241 #define RPL_CREATIONTIME 329
242 /* RPL_WHOWAS_TIME 330 ? */
243 #define RPL_WHOISACCOUNT 330
244 #define RPL_NOTOPIC 331
245 #define RPL_TOPIC 332
246 #define RPL_TOPICWHOTIME 333 /* Undernet extension */
247 #define RPL_LISTUSAGE 334 /* Undernet extension */
248 /* RPL_COMMANDSYNTAX 334 Dalnet */
249 /* RPL_LISTSYNTAX 334 unreal */
250 /* RPL_CHANPASSOK 338 IRCnet extension (?)*/
251 #define RPL_WHOISACTUALLY 338 /* Undernet extension, dalnet */
252 /* RPL_BADCHANPASS 339 mIRC/DALnet extension */
253 #define RPL_USERIP 340 /* Undernet extension */
254 #define RPL_INVITING 341
255 /* RPL_SUMMONING 342 removed from RFC1459 */
257 #define RPL_INVITELIST 346 /* IRCnet, Undernet extension */
258 #define RPL_ENDOFINVITELIST 347 /* IRCnet, Undernet extension */
259 /* RPL_EXCEPTLIST 348 IRCnet extension */
260 /* RPL_ENDOFEXCEPTLIST 349 IRCnet extension */
262 #define RPL_VERSION 351
263 #define RPL_WHOREPLY 352 /* See also RPL_ENDOFWHO */
264 #define RPL_NAMREPLY 353 /* See also RPL_ENDOFNAMES */
265 #define RPL_WHOSPCRPL 354 /* Undernet extension,
266 See also RPL_ENDOFWHO */
268 #define RPL_KILLDONE 361 /* not used */
269 #define RPL_CLOSING 362
270 #define RPL_CLOSEEND 363
271 #define RPL_LINKS 364
272 #define RPL_ENDOFLINKS 365
273 #define RPL_ENDOFNAMES 366 /* See RPL_NAMREPLY */
274 #define RPL_BANLIST 367
275 #define RPL_ENDOFBANLIST 368
276 #define RPL_ENDOFWHOWAS 369
280 #define RPL_INFOSTART 373 /* not used */
281 #define RPL_ENDOFINFO 374
282 #define RPL_MOTDSTART 375
283 #define RPL_ENDOFMOTD 376
285 /* RPL_KICKEXPIRED 377 aircd */
286 /* RPL_SPAM 377 austnet */
287 /* RPL_BANEXPIRED 378 aircd */
288 /* RPL_KICKLINKED 379 aircd */
289 /* RPL_BANLINKED 380 aircd */
291 #define RPL_YOUREOPER 381
292 #define RPL_REHASHING 382
293 /* RPL_YOURSERVICE 383 Numeric List: various */
294 #define RPL_MYPORTIS 384 /* not used */
295 #define RPL_NOTOPERANYMORE 385 /* Extension to RFC1459, not used */
296 /* RPL_QLIST 386 unreal */
297 /* RPL_ENDOFQLIST 387 unreal */
298 /* RPL_ALIST 388 unreal */
299 /* RPL_ENDOFALIST 389 unreal */
302 /* RPL_START_USERS 392 Dalnet/EFnet/IRCnet */
303 /* RPL_USERS 393 Dalnet/EFnet/IRCnet */
304 /* RPL_END_USERS 394 Dalnet/EFnet/IRCnet */
305 /* RPL_NOUSERS 395 Dalnet/EFnet/IRCnet */
308 * Errors are in the range from 400-599 currently and are grouped by what
309 * commands they come from.
311 #define ERR_FIRSTERROR 400 /* unused */
312 #define ERR_NOSUCHNICK 401
313 #define ERR_NOSUCHSERVER 402
314 #define ERR_NOSUCHCHANNEL 403
315 #define ERR_CANNOTSENDTOCHAN 404
316 #define ERR_TOOMANYCHANNELS 405
317 #define ERR_WASNOSUCHNICK 406
318 #define ERR_TOOMANYTARGETS 407
319 /* ERR_NOSUCHSERVICE 408 IRCnet */
320 /* ERR_NOCOLORSONCHAN 408 Dalnet */
321 #define ERR_NOORIGIN 409
323 #define ERR_NORECIPIENT 411
324 #define ERR_NOTEXTTOSEND 412
325 #define ERR_NOTOPLEVEL 413
326 #define ERR_WILDTOPLEVEL 414
327 /* ERR_BADMASK 415 IRCnet extension */
328 #define ERR_QUERYTOOLONG 416 /* Undernet extension */
329 /* ERR_TOOMANYMATCHES 416 IRCnet extension */
330 /* ERR_LENGTHTRUNCATED 419 aircd */
332 #define ERR_UNKNOWNCOMMAND 421
333 #define ERR_NOMOTD 422
334 #define ERR_NOADMININFO 423
335 /* ERR_FILEERROR 424 removed from RFC1459 */
337 /* ERR_TOOMANYAWAY 429 Dalnet */
338 #define ERR_NONICKNAMEGIVEN 431
339 #define ERR_ERRONEUSNICKNAME 432
340 #define ERR_NICKNAMEINUSE 433
341 /* ERR_SERVICENAMEINUSE 434 ? */
342 /* ERR_NORULES 434 unreal */
343 /* ERR_SERVICECONFUSED 435 ? */
344 /* ERR_BANONCHAN 435 dalnet */
345 #define ERR_NICKCOLLISION 436
346 #define ERR_BANNICKCHANGE 437 /* Undernet extension */
347 /* ERR_UNAVAILRESOURCE 437 IRCnet extension */
348 #define ERR_NICKTOOFAST 438 /* Undernet extension */
349 /* ERR_DEAD 438 IRCnet reserved for later use */
350 #define ERR_TARGETTOOFAST 439 /* Undernet extension */
351 /* ERR_SERVICESDOWN 440 Dalnet,unreal */
352 #define ERR_USERNOTINCHANNEL 441
353 #define ERR_NOTONCHANNEL 442
354 #define ERR_USERONCHANNEL 443
355 /* ERR_NOLOGIN 444 removed from RFC1459 */
356 /* ERR_SUMMONDISABLED 445 removed from RFC1459 */
357 /* ERR_USERSDISABLED 446 removed from RFC1459 */
358 /* ERR_NONICKCHANGE 447 unreal */
360 #define ERR_NOTREGISTERED 451
361 /* ERR_IDCOLLISION 452 IRCnet extension ? */
362 /* ERR_NICKLOST 453 IRCnet extension ? */
364 /* ERR_HOSTILENAME 455 unreal */
366 /* ERR_NOHIDING 459 unreal */
367 /* ERR_NOTFORHALFOPS 460 unreal */
369 #define ERR_NEEDMOREPARAMS 461
370 #define ERR_ALREADYREGISTRED 462
371 #define ERR_NOPERMFORHOST 463
372 #define ERR_PASSWDMISMATCH 464
373 #define ERR_YOUREBANNEDCREEP 465
374 #define ERR_YOUWILLBEBANNED 466
375 #define ERR_KEYSET 467 /* Undernet extension */
376 #define ERR_INVALIDUSERNAME 468 /* Undernet extension */
377 /* ERR_ONLYSERVERSCANCHANGE 468 Dalnet,unreal */
378 /* ERR_LINKSET 469 unreal */
379 /* ERR_LINKCHANNEL 470 unreal */
380 /* ERR_KICKEDFROMCHAN 470 aircd */
381 #define ERR_CHANNELISFULL 471
382 #define ERR_UNKNOWNMODE 472
383 #define ERR_INVITEONLYCHAN 473
384 #define ERR_BANNEDFROMCHAN 474
385 #define ERR_BADCHANNELKEY 475
386 #define ERR_BADCHANMASK 476 /* Undernet extension */
387 #define ERR_NEEDREGGEDNICK 477 /* DalNet&Undernet Extention */
388 #define ERR_BANLISTFULL 478 /* Undernet extension */
389 /* ERR_LINKFAIL 479 unreal */
391 #define ERR_BADCHANNAME 479 /* EFNet extension */
392 /* 479 Undernet extension badchan */
393 /* ERR_CANNOTKNOCK 480 unreal */
394 /* ERR_NOULINE 480 austnet */
395 #define ERR_NOPRIVILEGES 481
396 #define ERR_CHANOPRIVSNEEDED 482
397 #define ERR_CANTKILLSERVER 483
398 #define ERR_ISCHANSERVICE 484 /* Undernet extension */
399 /* ERR_DESYNC 484 Dalnet,PTlink */
400 /* ERR_ATTACKDENY 484 unreal */
401 /* ERR_RESTRICTED 484 IRCnet extension */
402 /* ERR_UNIQOPRIVSNEEDED 485 IRCnet extension */
403 /* ERR_KILLDENY 485 unreal */
404 /* ERR_CANTKICKADMIN 485 PTlink */
405 /* ERR_HTMDISABLED 486 unreal */
406 /* ERR_CHANTOORECENT 487 IRCnet extension (?) */
407 /* ERR_TSLESSCHAN 488 IRCnet extension (?) */
408 #define ERR_VOICENEEDED 489 /* Undernet extension */
410 #define ERR_NOOPERHOST 491
411 /* ERR_NOSERVICEHOST 492 IRCnet extension */
413 #define ERR_NOFEATURE 493 /* Undernet extension - features */
414 #define ERR_BADFEATVALUE 494 /* Undernet extension - features */
415 #define ERR_BADLOGTYPE 495 /* Undernet extension - features */
416 #define ERR_BADLOGSYS 496 /* Undernet extension - features */
417 #define ERR_BADLOGVALUE 497 /* Undernet extension - features */
419 #define ERR_ISOPERLCHAN 498 /* Undernet extension */
421 #define ERR_UMODEUNKNOWNFLAG 501
422 #define ERR_USERSDONTMATCH 502
423 /* ERR_GHOSTEDCLIENT 503 efnet */
424 /* ERR_VWORLDWARN 503 austnet */
426 #define ERR_SILELISTFULL 511 /* Undernet extension */
427 /* ERR_NOTIFYFULL 512 aircd */
428 /* ERR_TOOMANYWATCH 512 Numeric List: Dalnet */
429 #define ERR_NOSUCHGLINE 512 /* Undernet extension */
430 #define ERR_BADPING 513 /* Undernet extension */
431 /* ERR_NEEDPONG 512 Numeric List: Dalnet */
432 #define ERR_NOSUCHJUPE 514 /* Undernet extension - jupe -Kev */
433 /* ERR_TOOMANYDCC 514 dalnet */
434 #define ERR_BADEXPIRE 515 /* Undernet extension - jupe -Kev */
435 #define ERR_DONTCHEAT 516 /* Undernet extension */
436 #define ERR_DISABLED 517 /* Undernet extension -Kev */
437 /* ERR_NOINVITE 518 unreal */
438 #define ERR_LONGMASK 518 /* Undernet extension -Kev */
439 /* ERR_ADMONLY 519 unreal */
440 #define ERR_TOOMANYUSERS 519 /* Undernet extension -Kev */
441 /* ERR_OPERONLY 520 unreal */
442 #define ERR_MASKTOOWIDE 520 /* Undernet extension -Kev */
443 /* ERR_WHOTRUNC 520 austnet
444 ERR_LISTSYNTAX 521 dalnet
445 ERR_WHOSYNTAX 522 dalnet
446 ERR_WHOLIMEXCEED 523 dalnet */
448 #define ERR_NOTLOWEROPLEVEL 550 /* Undernet extension */
449 #define ERR_NOTMANAGER 551 /* Undernet extension */
450 #define ERR_CHANSECURED 552 /* Undernet extension */
451 #define ERR_UPASSSET 553 /* Undernet extension */
452 #define ERR_UPASSNOTSET 554 /* Undernet extension */
453 #define ERR_LASTERROR 555
455 /* RPL_LOGON 600 dalnet,unreal
456 RPL_LOGOFF 601 dalnet,unreal
457 RPL_WATCHOFF 602 dalnet,unreal
458 RPL_WATCHSTAT 603 dalnet,unreal
459 RPL_NOWON 604 dalnet,unreal
460 RPL_NOWOFF 605 dalnet,unreal
461 RPL_WATCHLIST 606 dalnet,unreal
462 RPL_ENDOFWATCHLIST 607 dalnet,unreal
464 RPL_MAPMORE 610 unreal
466 RPL_MAPMORE 615 PTlink
468 RPL_DCCSTATUS 617 dalnet
469 RPL_DCCLIST 618 dalnet
470 RPL_ENDOFDCCLIST 619 dalnet
471 RPL_DCCINFO 620 dalnet
473 RPL_DUMPING 640 unreal
474 RPL_DUMPRPL 641 unreal
475 RPL_EODUMP 642 unreal
477 #endif /* INCLUDED_numeric_h */