#ifndef _UIRC_ENUMS_INCLUDED #define _UIRC_ENUMS_INCLUDED #define ERR_UIRC_GENERIC -1 #define ERR_UIRC_NULL_ARGS -2 #define ERR_UIRC_INVALID_FORMAT -3 #define ERR_UIRC_BUFFER_ERR -4 #define ERR_UIRC_UNKNOWN_TOKEN -5 /* Mode bitmask values */ #define MBMASK_WALLOPS 2 /* 010 */ #define MBMASK_INVIS 4 /* 100 */ #define UIRC_FCMD ADMIN enum { ADMIN, AWAY, CONNECT, DIE, ERROR, INFO, INVITE, ISON, JOIN, KICK, KILL, LINKS, LIST, LUSERS, MODE, MOTD, NAMES, NICK, NOTICE, OPER, PART, PASS, PING, PONG, PRIVMSG, QUIT, REHASH, RESTART, SERVER, SERVICE, SERVLIST, SQUERY, SQUIT, STATS, SUMMON, TIME, TOPIC, TRACE, USER, USERHOST, USERS, VERSION, WALLOPS, WHO, WHOIS, WHOWAS, #ifdef UIRC_IRCV3 ACC, /* https://github.com/ircv3/ircv3-specifications/pull/276 */ ACCOUNT, /* https://ircv3.net/specs/extensions/account-notify-3.1 */ ACK, /* https://ircv3.net/specs/extensions/labeled-response */ AUTHENTICATE, /* https://ircv3.net/specs/extensions/sasl-3.1 */ BATCH, /* https://ircv3.net/specs/extensions/batch-3.2 */ CAP, /* https://ircv3.net/specs/core/capability-negotiation */ CHGHOST, /* https://ircv3.net/specs/extensions/chghost-3.2 */ FAIL, /* https://ircv3.net/specs/extensions/standard-replies */ MONITOR, /* https://ircv3.net/specs/core/monitor-3.2 */ NOTE, /* https://ircv3.net/specs/extensions/standard-replies */ RENAME, /* https://github.com/ircv3/ircv3-specifications/pull/420 */ RESUME, /* https://github.com/ircv3/ircv3-specifications/pull/306 */ SETNAME, /* https://ircv3.net/specs/extensions/setname */ WARN, /* https://ircv3.net/specs/extensions/standard-replies */ WEBIRC, /* https://ircv3.net/specs/extensions/webirc */ #define UIRC_LCMD WEBIRC #else #define UIRC_LCMD WHOWAS #endif }; enum { RPL_WELCOME = 1, RPL_YOURHOST = 2, RPL_CREATED = 3, RPL_MYINFO = 4, RPL_BOUNCE = 5, #ifdef UIRC_IRCV3 /* TO IRCv3 WG: * please, stop complicating implementations * get people in the WG that actually care about the protocol and understand why and how standards are written * * TO LIBRARY USERS: * Read the above and go speak with them, or just don't use IRCv3 :) */ RPL_ISUPPORT = 5, #endif RPL_TRACELINK = 200, RPL_TRACECONNECTING = 201, RPL_TRACEHANDSHAKE = 202, RPL_TRACEUNKNOWN = 203, RPL_TRACEOPERATOR = 204, RPL_TRACEUSER = 205, RPL_TRACESERVER = 206, RPL_TRACENEWTYPE = 208, RPL_STATSLINKINFO = 211, RPL_STATSCOMMANDS = 212, RPL_STATSCLINE = 213, RPL_STATSNLINE = 214, RPL_STATSILINE = 215, RPL_STATSKLINE = 216, RPL_STATSYLINE = 218, RPL_ENDOFSTATS = 219, RPL_UMODEIS = 221, RPL_STATSLLINE = 241, RPL_STATSUPTIME = 242, RPL_STATSOLINE = 243, RPL_STATSHLINE = 244, RPL_LUSERCLIENT = 251, RPL_LUSEROP = 252, RPL_LUSERUNKNOWN = 253, RPL_LUSERCHANNELS = 254, RPL_LUSERME = 255, RPL_ADMINME = 256, RPL_ADMINLOC1 = 257, RPL_ADMINLOC2 = 258, RPL_ADMINEMAIL = 259, RPL_TRACELOG = 261, RPL_NONE = 300, RPL_AWAY = 301, RPL_USERHOST = 302, RPL_ISON = 303, RPL_UNAWAY = 305, RPL_NOWAWAY = 306, RPL_WHOISUSER = 311, RPL_WHOISSERVER = 312, RPL_WHOISOPERATOR = 313, RPL_WHOWASUSER = 314, RPL_ENDOFWHO = 315, RPL_WHOISIDLE = 317, RPL_ENDOFWHOIS = 318, RPL_WHOISCHANNELS = 319, RPL_LISTSTART = 321, RPL_LIST = 322, RPL_LISTEND = 323, RPL_CHANNELMODEIS = 324, RPL_NOTOPIC = 331, RPL_TOPIC = 332, RPL_INVITING = 341, RPL_SUMMONING = 342, RPL_VERSION = 351, RPL_WHOREPLY = 352, RPL_NAMREPLY = 353, RPL_LINKS = 364, RPL_ENDOFLINKS = 365, RPL_ENDOFNAMES = 366, RPL_BANLIST = 367, RPL_ENDOFBANLIST = 368, RPL_ENDOFWHOWAS = 369, RPL_INFO = 371, RPL_MOTD = 372, RPL_ENDOFINFO = 374, RPL_MOTDSTART = 375, RPL_ENDOFMOTD = 376, RPL_YOUREOPER = 381, RPL_REHASHING = 382, RPL_TIME = 391, RPL_USERSSTART = 392, RPL_USERS = 393, RPL_ENDOFUSERS = 394, RPL_NOUSERS = 395, ERR_NOSUCHNICK = 401, ERR_NOSUCHSERVER = 402, ERR_NOSUCHCHANNEL = 403, ERR_CANNOTSENDTOCHAN = 404, ERR_TOOMANYCHANNELS = 405, ERR_WASNOSUCHNICK = 406, ERR_TOOMANYTARGETS = 407, ERR_NOORIGIN = 409, ERR_NORECIPIENT = 411, ERR_NOTEXTTOSEND = 412, ERR_NOTOPLEVEL = 413, ERR_WILDTOPLEVEL = 414, ERR_UNKNOWNCOMMAND = 421, ERR_NOMOTD = 422, ERR_NOADMININFO = 423, ERR_FILEERROR = 424, ERR_NONICKNAMEGIVEN = 431, ERR_ERRONEUSNICKNAME = 432, ERR_NICKNAMEINUSE = 433, ERR_NICKCOLLISION = 436, ERR_USERNOTINCHANNEL = 441, ERR_NOTONCHANNEL = 442, ERR_USERONCHANNEL = 443, ERR_NOLOGIN = 444, ERR_SUMMONDISABLED = 445, ERR_USERSDISABLED = 446, ERR_NOTREGISTERED = 451, ERR_NEEDMOREPARAMS = 461, ERR_ALREADYREGISTRED = 462, ERR_NOPERMFORHOST = 463, ERR_PASSWDMISMATCH = 464, ERR_YOUREBANNEDCREEP = 465, ERR_KEYSET = 467, ERR_CHANNELISFULL = 471, ERR_UNKNOWNMODE = 472, ERR_INVITEONLYCHAN = 473, ERR_BANNEDFROMCHAN = 474, ERR_BADCHANNELKEY = 475, ERR_NOPRIVILEGES = 481, ERR_CHANOPRIVSNEEDED = 482, ERR_CANTKILLSERVER = 483, ERR_NOOPERHOST = 491, ERR_UMODEUNKNOWNFLAG = 501, ERR_USERSDONTMATCH = 502, #ifdef UIRC_IRCV3 /* https://ircv3.net/registry */ RPL_STARTTLS = 670, ERR_STARTTLS = 691, RPL_MONONLINE = 730, RPL_MONOFFLINE = 731, RPL_MONLIST = 732, RPL_ENDOFMONLIST = 733, ERR_MOLISTFULL = 734, RPL_LOGGEDIN = 900, RPL_LOGGEDOUT = 901, ERR_NICKLOCKED = 902, RPL_SASLSUCCESS = 903, ERR_SASLFAIL = 904, ERR_SASLTOOLONG = 905, ERR_SASLABORTED = 906, ERR_SASLALREADY = 907, ERR_SASLMECHS = 908 #endif }; #endif