Sort commands alphabetically, add few missing IRCv3 commands
This commit is contained in:
parent
081821c8bc
commit
74e13c4724
|
@ -12,52 +12,67 @@
|
|||
#define MBMASK_INVIS 4 /* 100 */
|
||||
|
||||
enum {
|
||||
PASS = 10,
|
||||
NICK,
|
||||
USER,
|
||||
SERVER,
|
||||
OPER,
|
||||
SERVICE,
|
||||
QUIT,
|
||||
SQUIT,
|
||||
JOIN,
|
||||
PART,
|
||||
MODE,
|
||||
TOPIC,
|
||||
NAMES,
|
||||
LIST,
|
||||
INVITE,
|
||||
KICK,
|
||||
VERSION,
|
||||
STATS,
|
||||
LINKS,
|
||||
TIME,
|
||||
CONNECT,
|
||||
TRACE,
|
||||
ACCOUNT = 10, /* https://ircv3.net/specs/extensions/account-notify-3.1 */
|
||||
ACC, /* https://github.com/ircv3/ircv3-specifications/pull/276 */
|
||||
ACK, /* https://ircv3.net/specs/extensions/labeled-response */
|
||||
ADMIN,
|
||||
AUTHENTICATE, /* https://ircv3.net/specs/extensions/sasl-3.1 */
|
||||
AWAY,
|
||||
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 */
|
||||
CONNECT,
|
||||
DIE,
|
||||
ERROR,
|
||||
FAIL, /* https://ircv3.net/specs/extensions/standard-replies */
|
||||
INFO,
|
||||
SERVLIST,
|
||||
SQUERY,
|
||||
PRIVMSG,
|
||||
NOTICE,
|
||||
MOTD,
|
||||
LUSERS,
|
||||
WHO,
|
||||
WHOIS,
|
||||
WHOWAS,
|
||||
INVITE,
|
||||
ISON,
|
||||
JOIN,
|
||||
KICK,
|
||||
KILL,
|
||||
LINKS,
|
||||
LIST,
|
||||
LUSERS,
|
||||
MODE,
|
||||
MONITOR, /* https://ircv3.net/specs/core/monitor-3.2 */
|
||||
MOTD,
|
||||
NAMES,
|
||||
NICK,
|
||||
NOTE, /* https://ircv3.net/specs/extensions/standard-replies */
|
||||
NOTICE,
|
||||
OPER,
|
||||
PART,
|
||||
PASS,
|
||||
PING,
|
||||
PONG,
|
||||
ERROR,
|
||||
AWAY,
|
||||
PRIVMSG,
|
||||
QUIT,
|
||||
REHASH,
|
||||
DIE,
|
||||
RENAME, /* https://github.com/ircv3/ircv3-specifications/pull/420 */
|
||||
RESTART,
|
||||
RESUME, /* https://github.com/ircv3/ircv3-specifications/pull/306 */
|
||||
SERVER,
|
||||
SERVICE,
|
||||
SERVLIST,
|
||||
SETNAME, /* https://ircv3.net/specs/extensions/setname */
|
||||
SQUERY,
|
||||
SQUIT,
|
||||
STATS,
|
||||
SUMMON,
|
||||
USERS,
|
||||
WALLOPS,
|
||||
TIME,
|
||||
TOPIC,
|
||||
TRACE,
|
||||
USER,
|
||||
USERHOST,
|
||||
ISON
|
||||
USERS,
|
||||
VERSION,
|
||||
WALLOPS,
|
||||
WARN, /* https://ircv3.net/specs/extensions/standard-replies */
|
||||
WEBIRC, /* https://ircv3.net/specs/extensions/webirc */
|
||||
WHO,
|
||||
WHOIS,
|
||||
WHOWAS
|
||||
};
|
||||
enum {
|
||||
RPL_WELCOME = 1,
|
||||
|
@ -65,6 +80,16 @@ enum {
|
|||
RPL_CREATED = 3,
|
||||
RPL_MYINFO = 4,
|
||||
RPL_BOUNCE = 5,
|
||||
|
||||
/* 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,
|
||||
|
||||
RPL_TRACELINK = 200,
|
||||
RPL_TRACECONNECTING = 201,
|
||||
RPL_TRACEHANDSHAKE = 202,
|
||||
|
@ -182,6 +207,26 @@ enum {
|
|||
ERR_CANTKILLSERVER = 483,
|
||||
ERR_NOOPERHOST = 491,
|
||||
ERR_UMODEUNKNOWNFLAG = 501,
|
||||
ERR_USERSDONTMATCH = 502
|
||||
ERR_USERSDONTMATCH = 502,
|
||||
|
||||
/* 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
|
||||
|
|
86
src/uirc.c
86
src/uirc.c
|
@ -18,52 +18,62 @@
|
|||
#include "uirc.h"
|
||||
|
||||
const char* const uirc_ircmd[] = {
|
||||
[PASS] = "PASS",
|
||||
[NICK] = "NICK",
|
||||
[USER] = "USER",
|
||||
[SERVER] = "SERVER",
|
||||
[OPER] = "OPER",
|
||||
[SERVICE] = "SERVICE",
|
||||
[QUIT] = "QUIT",
|
||||
[SQUIT] = "SQUIT",
|
||||
[JOIN] = "JOIN",
|
||||
[PART] = "PART",
|
||||
[MODE] = "MODE",
|
||||
[TOPIC] = "TOPIC",
|
||||
[NAMES] = "NAMES",
|
||||
[LIST] = "LIST",
|
||||
[INVITE] = "INVITE",
|
||||
[KICK] = "KICK",
|
||||
[VERSION] = "VERSION",
|
||||
[STATS] = "STATS",
|
||||
[LINKS] = "LINKS",
|
||||
[TIME] = "TIME",
|
||||
[CONNECT] = "CONNECT",
|
||||
[TRACE] = "TRACE",
|
||||
[ACCOUNT] = "ACCOUNT",
|
||||
[ACC] = "ACC",
|
||||
[ACK] = "ACK",
|
||||
[ADMIN] = "ADMIN",
|
||||
[AUTHENTICATE] = "AUTHENTICATE",
|
||||
[AWAY] = "AWAY",
|
||||
[BATCH] = "BATCH",
|
||||
[CAP] = "CAP",
|
||||
[CHGHOST] = "CHGHOST",
|
||||
[CONNECT] = "CONNECT",
|
||||
[DIE] = "DIE",
|
||||
[ERROR] = "ERROR",
|
||||
[INFO] = "INFO",
|
||||
[SERVLIST] = "SERVLIST",
|
||||
[SQUERY] = "SQUERY",
|
||||
[PRIVMSG] = "PRIVMSG",
|
||||
[NOTICE] = "NOTICE",
|
||||
[MOTD] = "MOTD",
|
||||
[LUSERS] = "LUSERS",
|
||||
[WHO] = "WHO",
|
||||
[WHOIS] = "WHOIS",
|
||||
[WHOWAS] = "WHOWAS",
|
||||
[INVITE] = "INVITE",
|
||||
[ISON] = "ISON",
|
||||
[JOIN] = "JOIN",
|
||||
[KICK] = "KICK",
|
||||
[KILL] = "KILL",
|
||||
[LINKS] = "LINKS",
|
||||
[LIST] = "LIST",
|
||||
[LUSERS] = "LUSERS",
|
||||
[MODE] = "MODE",
|
||||
[MOTD] = "MOTD",
|
||||
[NAMES] = "NAMES",
|
||||
[NICK] = "NICK",
|
||||
[NOTICE] = "NOTICE",
|
||||
[OPER] = "OPER",
|
||||
[PART] = "PART",
|
||||
[PASS] = "PASS",
|
||||
[PING] = "PING",
|
||||
[PONG] = "PONG",
|
||||
[ERROR] = "ERROR",
|
||||
[AWAY] = "AWAY",
|
||||
[PRIVMSG] = "PRIVMSG",
|
||||
[QUIT] = "QUIT",
|
||||
[REHASH] = "REHASH",
|
||||
[DIE] = "DIE",
|
||||
[RENAME] = "RENAME",
|
||||
[RESTART] = "RESTART",
|
||||
[RESUME] = "RESUME",
|
||||
[SERVER] = "SERVER",
|
||||
[SERVICE] = "SERVICE",
|
||||
[SERVLIST] = "SERVLIST",
|
||||
[SQUERY] = "SQUERY",
|
||||
[SQUIT] = "SQUIT",
|
||||
[STATS] = "STATS",
|
||||
[SUMMON] = "SUMMON",
|
||||
[USERS] = "USERS",
|
||||
[WALLOPS] = "WALLOPS",
|
||||
[TIME] = "TIME",
|
||||
[TOPIC] = "TOPIC",
|
||||
[TRACE] = "TRACE",
|
||||
[USERHOST] = "USERHOST",
|
||||
[ISON] = "ISON"};
|
||||
[USERS] = "USERS",
|
||||
[USER] = "USER",
|
||||
[VERSION] = "VERSION",
|
||||
[WALLOPS] = "WALLOPS",
|
||||
[WEBIRC] = "WEBIRC",
|
||||
[WHOIS] = "WHOIS",
|
||||
[WHOWAS] = "WHOWAS",
|
||||
[WHO] = "WHO"};
|
||||
|
||||
struct tagmapping {
|
||||
const char* name;
|
||||
|
@ -73,7 +83,7 @@ signed int Ircmd_stoi(char* str)
|
|||
{
|
||||
if (str == NULL)
|
||||
return ERR_UIRC_NULL_ARGS;
|
||||
for (unsigned short i = PASS; i <= ISON; i++) {
|
||||
for (unsigned short i = ACCOUNT; i <= WHO; i++) {
|
||||
if ((uirc_ircmd[i] != NULL) && (strcmp(uirc_ircmd[i], str) == 0))
|
||||
return i;
|
||||
}
|
||||
|
|
Reference in New Issue