The InspIRCd Project
Home | Developers | Wiki | Forums | Bug Tracker | SVN | Download
Main Page | Namespace List | Class Hierarchy | Alphabetical List | Class List | Directories | File List | Namespace Members | Class Members | File Members

numerics.h

Go to the documentation of this file.
00001 /*       +------------------------------------+
00002  *       | Inspire Internet Relay Chat Daemon |
00003  *       +------------------------------------+
00004  *  
00005  *  InspIRCd: (C) 2002-2008 InspIRCd Development Team
00006  * See: http://www.inspircd.org/wiki/index.php/Credits
00007  *
00008  * This program is free but copyrighted software; see
00009  *          the file COPYING for details.
00010  *
00011  * ---------------------------------------------------
00012  */
00013 
00014 /*
00015  * This file is aimed providing a string that is easier to use than using the numeric
00016  * directly.
00017  *
00018  * Module authors, please note!
00019  *  While you are free to use any numerics on this list, like the rest of the core, you
00020  *  *should not* be editing it!
00021  *  You should just WriteNumeric(444, .. or whatever as you would before this file, OR:
00022  *  #define RPL_MYNUMERIC 444 & WriteNumeric(RPL_MYNUMERIC, ...
00023  *
00024  *  If you *do* have a suggestion for a numeric you genuinely believe would be useful,
00025  *  please speak to us. :)
00026  *
00027  * Thanks to Darom, jackmcbarn and Brain for suggesting and discussing this.
00028  *
00029  * Please note that the list may not be exhaustive, it'll be done when I have
00030  * nothing better to do with my time. -- w00t (jul 13, 2008)
00031  */
00032 enum Numerics
00033 {
00034         /*
00035          * Reply range of numerics.
00036          */
00037         RPL_WELCOME                                     =       1, // 2812, not 1459
00038         RPL_YOURHOSTIS                                  =       2, // 2812, not 1459
00039         RPL_SERVERCREATED                               =       3, // 2812, not 1459
00040         RPL_SERVERVERSION                               =       4, // 2812, not 1459
00041         RPL_ISUPPORT                                    =       5, // not RFC, extremely common though (defined as RPL_BOUNCE in 2812, widely ignored)
00042 
00043         RPL_MAP                                                         =       6, // unrealircd
00044         RPL_ENDMAP                                                      =       7, // unrealircd
00045         RPL_SNOMASKIS                                   =       8, // unrealircd
00046 
00047         RPL_YOURUUID                                    =       42, // taken from ircnet
00048 
00049         RPL_UMODEIS                                     =       221,
00050         RPL_RULES                                       =       232, // unrealircd
00051         RPL_ADMINME                                     =       256,
00052         RPL_ADMINLOC1                           =       257,
00053         RPL_ADMINLOC2                           =       258,
00054         RPL_ADMINEMAIL                          =       259,
00055         RPL_MAPUSERS                            =       270, // insp-specific
00056 
00057         RPL_SYNTAX                                      =       304,    // insp-specific
00058 
00059         RPL_UNAWAY                                              =       305,
00060         RPL_NOWAWAY                                             =       306,
00061 
00062         RPL_RULESTART                                   =       308, // unrealircd
00063         RPL_RULESEND                                    =       309, // unrealircd
00064         RPL_CHANNELMODEIS                               =       324,
00065         RPL_CHANNELCREATED                              =       329, // ???
00066         RPL_TOPIC                                       =       332,
00067         RPL_TOPICTIME                                   =       333, // not RFC, extremely common though
00068 
00069         RPL_INVITING                                    =       341,
00070         RPL_INVITELIST                                  =       346, // insp-specific (stolen from ircu)
00071         RPL_ENDOFINVITELIST                             =       347, // insp-specific (stolen from ircu)
00072         RPL_VERSION                                             =       351,
00073         RPL_NAMREPLY                                    =       353,
00074         RPL_ENDOFNAMES                                  =       366,
00075 
00076         RPL_INFO                                        =       371,
00077         RPL_ENDOFINFO                           =       374,
00078         RPL_MOTD                                        =       372,
00079         RPL_MOTDSTART                                   =       375,
00080         RPL_ENDOFMOTD                                   =       376,
00081 
00082         RPL_YOUAREOPER                                          =       381,
00083         RPL_REHASHING                                           =       382,
00084         RPL_TIME                                                        =       391,
00085         RPL_YOURDISPLAYEDHOST                           =       396, // from charybdis/etc, common convention
00086 
00087         /*
00088          * Error range of numerics.
00089          */
00090         ERR_NOSUCHNICK                                  =       401,
00091         ERR_NOSUCHSERVER                                =       402,
00092         ERR_NOSUCHCHANNEL                               =       403, // used to indicate an invalid channel name also, so don't rely on RFC text (don't do that anyway!)
00093         ERR_CANNOTSENDTOCHAN                    =       404,
00094         ERR_TOOMANYCHANNELS                             =       405,
00095         ERR_INVALIDCAPSUBCOMMAND                =       410, // ratbox/charybdis(?)
00096         ERR_UNKNOWNCOMMAND                              =       421,
00097         ERR_NOMOTD                                      =       422,
00098         ERR_NORULES                                     =       434, // unrealircd
00099         ERR_USERNOTINCHANNEL                            =       441,
00100         ERR_NOTONCHANNEL                                        =       442,
00101         ERR_USERONCHANNEL                                       =       443,
00102         ERR_CANTCHANGENICK                                      =       447, // unrealircd, probably
00103         ERR_NOTREGISTERED                               =       451,
00104         ERR_NEEDMOREPARAMS                              =       461,
00105         ERR_ALREADYREGISTERED                   =       462,
00106 
00107         /*
00108          * A quick side-rant about the next group of numerics..
00109          * There are clients out there that like to assume that just because they don't recieve a numeric
00110          * they know, that they have joined the channel.
00111          *
00112          * If IRC was at all properly standardised, this may even be a semi-acceptable assumption to make,
00113          * but that's not the case as we all know, so IT IS NOT ACCEPTABLE. Especially for Insp users, where
00114          * differing modules MAY potentially choose to block joins and send NOTICEs or other text to the user
00115          * instead!
00116          *
00117          * tl;dr version:
00118          *   DON'T MAKE YOUR CLIENT ASSUME YOU JOINED UNLESS YOU RECIEVE A JOIN WITH YOUR DAMN NICK ON IT.
00119          * Thanks.
00120          *
00121          *  -- A message from the IRC group for coder sanity, and w00t
00122          */
00123         ERR_BADCHANNELKEY                               =       475,
00124         ERR_INVITEONLYCHAN                              =       473,
00125         ERR_CHANNELISFULL                               =       471,
00126         ERR_BANNEDFROMCHAN                              =       474,
00127 
00128         ERR_NOPRIVILEGES                                =       481, // rfc, beware though, we use this for other things opers may not do also
00129         ERR_CHANOPRIVSNEEDED                            =       482, // rfc, beware though, we use this for other things like trying to kick a uline
00130 
00131         ERR_ALLMUSTSSL                                  =       490, // unrealircd      
00132         ERR_NOCTCPALLOWED                               =       492, // XXX: bzzzz. 1459 defines this as ERR_NOSERVICEHOST, research it more and perhaps change this! (ERR_CANNOTSENDTOCHAN?)
00133                                                                                         // wtf, we also use this for m_noinvite. UGLY!
00134         ERR_DELAYREJOIN                                 =       495, // insp-specific, XXX: we should use 'resource temporarily unavailable' from ircnet/ratbox or whatever
00135         ERR_UNKNOWNSNOMASK                              =       501, // insp-specific
00136         ERR_USERSDONTMATCH                              =       502,
00137         ERR_CANTJOINOPERSONLY                   =       520, // unrealircd, but crap to have so many numerics for cant join..
00138         ERR_CANTSENDTOUSER                              =       531, // ???
00139 
00140         RPL_COMMANDS                                            =       702, // insp-specific
00141         RPL_COMMANDSEND                                         =       703, // insp-specific
00142 
00143         ERR_WORDFILTERED                                        =       936, // insp-specific, would be nice if we could get rid of this..
00144         ERR_CANTUNLOADMODULE                            =       972, // insp-specific
00145         RPL_UNLOADEDMODULE                              =       973, // insp-specific
00146         ERR_CANTLOADMODULE                              =       974, // insp-specific
00147         RPL_LOADEDMODULE                                =       975 // insp-specific
00148 };