InspIRCd  3.0
numerics.h
1 /*
2  * InspIRCd -- Internet Relay Chat Daemon
3  *
4  * Copyright (C) 2017 B00mX0r <[email protected]>
5  * Copyright (C) 2016 Attila Molnar <[email protected]>
6  * Copyright (C) 2013, 2015-2018 Sadie Powell <[email protected]>
7  * Copyright (C) 2013 Adam <[email protected]>
8  * Copyright (C) 2012, 2019 Robby <[email protected]>
9  * Copyright (C) 2009 Uli Schlachter <[email protected]>
10  * Copyright (C) 2009 Dennis Friis <[email protected]>
11  * Copyright (C) 2008-2010 Craig Edwards <[email protected]>
12  * Copyright (C) 2008 Robin Burchell <[email protected]>
13  *
14  * This file is part of InspIRCd. InspIRCd is free software: you can
15  * redistribute it and/or modify it under the terms of the GNU General Public
16  * License as published by the Free Software Foundation, version 2.
17  *
18  * This program is distributed in the hope that it will be useful, but WITHOUT
19  * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
20  * FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
21  * details.
22  *
23  * You should have received a copy of the GNU General Public License
24  * along with this program. If not, see <http://www.gnu.org/licenses/>.
25  */
26 
27 
28 #pragma once
29 
30 /*
31  * Module authors, please note!
32  * While you are free to use any numerics on this list, like the rest of the core, you
33  * *should not* be editing it!
34  *
35  * If you *do* have a suggestion for a numeric you genuinely believe would be useful,
36  * please speak to us. :)
37  *
38  * Thanks to Darom, jackmcbarn and Brain for suggesting and discussing this.
39  *
40  * Please note that the list may not be exhaustive, it'll be done when I have
41  * nothing better to do with my time. -- w00t (jul 13, 2008)
42  */
43 enum
44 {
45  RPL_ISUPPORT = 5, // not RFC, extremely common though (defined as RPL_BOUNCE in 2812, widely ignored)
46 
47  RPL_SNOMASKIS = 8, // unrealircd
48 
49  RPL_MAP = 15, // ircu
50  RPL_ENDMAP = 17, // ircu
51  RPL_MAPUSERS = 18, // insp-specific
52 
53  RPL_UMODEIS = 221,
54 
55  RPL_LUSERCLIENT = 251,
56  RPL_LUSEROP = 252,
57  RPL_LUSERUNKNOWN = 253,
58  RPL_LUSERCHANNELS = 254,
59  RPL_LUSERME = 255,
60 
61  RPL_ADMINME = 256,
62  RPL_ADMINLOC1 = 257,
63  RPL_ADMINLOC2 = 258,
64  RPL_ADMINEMAIL = 259,
65 
66  RPL_LOCALUSERS = 265,
67  RPL_GLOBALUSERS = 266,
68 
69  RPL_AWAY = 301,
70  RPL_USERHOST = 302,
71  RPL_ISON = 303,
72 
73  RPL_WHOISSERVER = 312,
74  RPL_ENDOFWHOIS = 318,
75 
76  RPL_LISTSTART = 321,
77  RPL_LIST = 322,
78  RPL_LISTEND = 323,
79 
80  RPL_CHANNELMODEIS = 324,
81  RPL_CHANNELCREATED = 329, // ???
82  RPL_NOTOPICSET = 331,
83  RPL_TOPIC = 332,
84  RPL_TOPICTIME = 333, // not RFC, extremely common though
85 
86  RPL_USERIP = 340,
87  RPL_INVITING = 341,
88  RPL_INVITELIST = 346, // insp-specific (stolen from ircu)
89  RPL_ENDOFINVITELIST = 347, // insp-specific (stolen from ircu)
90  RPL_VERSION = 351,
91  RPL_NAMREPLY = 353,
92  RPL_LINKS = 364,
93  RPL_ENDOFLINKS = 365,
94  RPL_ENDOFNAMES = 366,
95 
96  RPL_INFO = 371,
97  RPL_ENDOFINFO = 374,
98  RPL_MOTD = 372,
99  RPL_MOTDSTART = 375,
100  RPL_ENDOFMOTD = 376,
101 
102  RPL_YOUAREOPER = 381,
103  RPL_REHASHING = 382,
104  RPL_TIME = 391,
105  RPL_YOURDISPLAYEDHOST = 396, // from charybdis/etc, common convention
106 
107  /*
108  * Error range of numerics.
109  */
110  ERR_NOSUCHNICK = 401,
111  ERR_NOSUCHSERVER = 402,
112  ERR_NOSUCHCHANNEL = 403, // used to indicate an invalid channel name also, so don't rely on RFC text (don't do that anyway!)
113  ERR_CANNOTSENDTOCHAN = 404,
114  ERR_TOOMANYCHANNELS = 405,
115  ERR_WASNOSUCHNICK = 406,
116  ERR_NOTEXTTOSEND = 412,
117  ERR_UNKNOWNCOMMAND = 421,
118  ERR_NOMOTD = 422,
119  ERR_NONICKNAMEGIVEN = 431,
120  ERR_ERRONEUSNICKNAME = 432,
121  ERR_NICKNAMEINUSE = 433,
122  ERR_USERNOTINCHANNEL = 441,
123  ERR_NOTONCHANNEL = 442,
124  ERR_USERONCHANNEL = 443,
125  ERR_CANTCHANGENICK = 447, // unrealircd, probably
126  ERR_NOTREGISTERED = 451,
127  ERR_NEEDMOREPARAMS = 461,
128  ERR_ALREADYREGISTERED = 462,
129  ERR_YOUREBANNEDCREEP = 465,
130  ERR_UNKNOWNMODE = 472,
131 
132  /*
133  * A quick side-rant about the next group of numerics..
134  * There are clients out there that like to assume that just because they don't receive a numeric
135  * they know, that they have joined the channel.
136  *
137  * If IRC was at all properly standardised, this may even be a semi-acceptable assumption to make,
138  * but that's not the case as we all know, so IT IS NOT ACCEPTABLE. Especially for Insp users, where
139  * differing modules MAY potentially choose to block joins and send NOTICEs or other text to the user
140  * instead!
141  *
142  * tl;dr version:
143  * DON'T MAKE YOUR CLIENT ASSUME YOU JOINED UNLESS YOU RECEIVE A JOIN WITH YOUR DAMN NICK ON IT.
144  * Thanks.
145  *
146  * -- A message from the IRC group for coder sanity, and w00t
147  */
148  ERR_BADCHANNELKEY = 475,
149  ERR_BADCHANMASK = 476,
150  ERR_INVITEONLYCHAN = 473,
151  ERR_CHANNELISFULL = 471,
152  ERR_BANNEDFROMCHAN = 474,
153 
154  ERR_BANLISTFULL = 478,
155 
156  ERR_NOPRIVILEGES = 481, // rfc, beware though, we use this for other things opers may not do also
157  ERR_CHANOPRIVSNEEDED = 482, // rfc, beware though, we use this for other things like trying to kick a uline
158 
159  ERR_RESTRICTED = 484,
160 
161  ERR_NOOPERHOST = 491,
162  ERR_UNKNOWNSNOMASK = 501, // insp-specific
163  ERR_USERSDONTMATCH = 502,
164  ERR_CANTSENDTOUSER = 531, // ???
165 
166  RPL_SYNTAX = 650, // insp-specific
167  ERR_INVALIDMODEPARAM = 696, // insp-specific
168  ERR_LISTMODEALREADYSET = 697, // insp-specific
169  ERR_LISTMODENOTSET = 698, // insp-specific
170 
171  RPL_OTHERUMODEIS = 803, // insp-specific
172  RPL_OTHERSNOMASKIS = 804, // insp-specific
173 
174  ERR_CANTUNLOADMODULE = 972, // insp-specific
175  RPL_UNLOADEDMODULE = 973, // insp-specific
176  ERR_CANTLOADMODULE = 974, // insp-specific
177  RPL_LOADEDMODULE = 975 // insp-specific
178 };