261 lines
6.6 KiB
C
261 lines
6.6 KiB
C
/*
|
|
* This file is part of uIRC. (https://git.redxen.eu/caskd/uIRC)
|
|
* Copyright (c) 2019, 2020 Alex-David Denes
|
|
*
|
|
* uIRC is free software: you can redistribute it and/or modify
|
|
* it under the terms of the GNU General Public License as published by
|
|
* the Free Software Foundation, either version 3 of the License, or
|
|
* any later version.
|
|
*
|
|
* uIRC is distributed in the hope that it will be useful,
|
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
* GNU General Public License for more details.
|
|
*
|
|
* You should have received a copy of the GNU General Public License
|
|
* along with uIRC. If not, see <https://www.gnu.org/licenses/>.
|
|
*/
|
|
#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
|
|
#define ERR_UIRC_VAL_FAILED -10
|
|
|
|
/* Mode bitmask values */
|
|
#define MBMASK_WALLOPS 2 /* 010 */
|
|
#define MBMASK_INVIS 4 /* 100 */
|
|
|
|
#define UIRC_FCMD ADMIN
|
|
enum commands {
|
|
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
|
|
};
|
|
#define RPL_WELCOME 1
|
|
#define RPL_YOURHOST 2
|
|
#define RPL_CREATED 3
|
|
#define RPL_MYINFO 4
|
|
#define 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 :)
|
|
*/
|
|
#define RPL_ISUPPORT 5
|
|
#endif
|
|
|
|
#define RPL_TRACELINK 200
|
|
#define RPL_TRACECONNECTING 201
|
|
#define RPL_TRACEHANDSHAKE 202
|
|
#define RPL_TRACEUNKNOWN 203
|
|
#define RPL_TRACEOPERATOR 204
|
|
#define RPL_TRACEUSER 205
|
|
#define RPL_TRACESERVER 206
|
|
#define RPL_TRACENEWTYPE 208
|
|
#define RPL_STATSLINKINFO 211
|
|
#define RPL_STATSCOMMANDS 212
|
|
#define RPL_STATSCLINE 213
|
|
#define RPL_STATSNLINE 214
|
|
#define RPL_STATSILINE 215
|
|
#define RPL_STATSKLINE 216
|
|
#define RPL_STATSYLINE 218
|
|
#define RPL_ENDOFSTATS 219
|
|
#define RPL_UMODEIS 221
|
|
#define RPL_STATSLLINE 241
|
|
#define RPL_STATSUPTIME 242
|
|
#define RPL_STATSOLINE 243
|
|
#define RPL_STATSHLINE 244
|
|
#define RPL_LUSERCLIENT 251
|
|
#define RPL_LUSEROP 252
|
|
#define RPL_LUSERUNKNOWN 253
|
|
#define RPL_LUSERCHANNELS 254
|
|
#define RPL_LUSERME 255
|
|
#define RPL_ADMINME 256
|
|
#define RPL_ADMINLOC1 257
|
|
#define RPL_ADMINLOC2 258
|
|
#define RPL_ADMINEMAIL 259
|
|
#define RPL_TRACELOG 261
|
|
#define RPL_NONE 300
|
|
#define RPL_AWAY 301
|
|
#define RPL_USERHOST 302
|
|
#define RPL_ISON 303
|
|
#define RPL_UNAWAY 305
|
|
#define RPL_NOWAWAY 306
|
|
#define RPL_WHOISUSER 311
|
|
#define RPL_WHOISSERVER 312
|
|
#define RPL_WHOISOPERATOR 313
|
|
#define RPL_WHOWASUSER 314
|
|
#define RPL_ENDOFWHO 315
|
|
#define RPL_WHOISIDLE 317
|
|
#define RPL_ENDOFWHOIS 318
|
|
#define RPL_WHOISCHANNELS 319
|
|
#define RPL_LISTSTART 321
|
|
#define RPL_LIST 322
|
|
#define RPL_LISTEND 323
|
|
#define RPL_CHANNELMODEIS 324
|
|
#define RPL_NOTOPIC 331
|
|
#define RPL_TOPIC 332
|
|
#define RPL_INVITING 341
|
|
#define RPL_SUMMONING 342
|
|
#define RPL_VERSION 351
|
|
#define RPL_WHOREPLY 352
|
|
#define RPL_NAMREPLY 353
|
|
#define RPL_LINKS 364
|
|
#define RPL_ENDOFLINKS 365
|
|
#define RPL_ENDOFNAMES 366
|
|
#define RPL_BANLIST 367
|
|
#define RPL_ENDOFBANLIST 368
|
|
#define RPL_ENDOFWHOWAS 369
|
|
#define RPL_INFO 371
|
|
#define RPL_MOTD 372
|
|
#define RPL_ENDOFINFO 374
|
|
#define RPL_MOTDSTART 375
|
|
#define RPL_ENDOFMOTD 376
|
|
#define RPL_YOUREOPER 381
|
|
#define RPL_REHASHING 382
|
|
#define RPL_TIME 391
|
|
#define RPL_USERSSTART 392
|
|
#define RPL_USERS 393
|
|
#define RPL_ENDOFUSERS 394
|
|
#define RPL_NOUSERS 395
|
|
|
|
#define ERR_NOSUCHNICK 401
|
|
#define ERR_NOSUCHSERVER 402
|
|
#define ERR_NOSUCHCHANNEL 403
|
|
#define ERR_CANNOTSENDTOCHAN 404
|
|
#define ERR_TOOMANYCHANNELS 405
|
|
#define ERR_WASNOSUCHNICK 406
|
|
#define ERR_TOOMANYTARGETS 407
|
|
#define ERR_NOORIGIN 409
|
|
#define ERR_NORECIPIENT 411
|
|
#define ERR_NOTEXTTOSEND 412
|
|
#define ERR_NOTOPLEVEL 413
|
|
#define ERR_WILDTOPLEVEL 414
|
|
#define ERR_UNKNOWNCOMMAND 421
|
|
#define ERR_NOMOTD 422
|
|
#define ERR_NOADMININFO 423
|
|
#define ERR_FILEERROR 424
|
|
#define ERR_NONICKNAMEGIVEN 431
|
|
#define ERR_ERRONEUSNICKNAME 432
|
|
#define ERR_NICKNAMEINUSE 433
|
|
#define ERR_NICKCOLLISION 436
|
|
#define ERR_USERNOTINCHANNEL 441
|
|
#define ERR_NOTONCHANNEL 442
|
|
#define ERR_USERONCHANNEL 443
|
|
#define ERR_NOLOGIN 444
|
|
#define ERR_SUMMONDISABLED 445
|
|
#define ERR_USERSDISABLED 446
|
|
#define ERR_NOTREGISTERED 451
|
|
#define ERR_NEEDMOREPARAMS 461
|
|
#define ERR_ALREADYREGISTRED 462
|
|
#define ERR_NOPERMFORHOST 463
|
|
#define ERR_PASSWDMISMATCH 464
|
|
#define ERR_YOUREBANNEDCREEP 465
|
|
#define ERR_KEYSET 467
|
|
#define ERR_CHANNELISFULL 471
|
|
#define ERR_UNKNOWNMODE 472
|
|
#define ERR_INVITEONLYCHAN 473
|
|
#define ERR_BANNEDFROMCHAN 474
|
|
#define ERR_BADCHANNELKEY 475
|
|
#define ERR_NOPRIVILEGES 481
|
|
#define ERR_CHANOPRIVSNEEDED 482
|
|
#define ERR_CANTKILLSERVER 483
|
|
#define ERR_NOOPERHOST 491
|
|
#define ERR_UMODEUNKNOWNFLAG 501
|
|
#define ERR_USERSDONTMATCH 502
|
|
|
|
#ifdef UIRC_IRCV3
|
|
/* https://ircv3.net/registry */
|
|
#define RPL_STARTTLS 670
|
|
#define ERR_STARTTLS 691
|
|
|
|
#define RPL_MONONLINE 730
|
|
#define RPL_MONOFFLINE 731
|
|
#define RPL_MONLIST 732
|
|
#define RPL_ENDOFMONLIST 733
|
|
#define ERR_MOLISTFULL 734
|
|
|
|
#define RPL_LOGGEDIN 900
|
|
#define RPL_LOGGEDOUT 901
|
|
#define ERR_NICKLOCKED 902
|
|
#define RPL_SASLSUCCESS 903
|
|
#define ERR_SASLFAIL 904
|
|
#define ERR_SASLTOOLONG 905
|
|
#define ERR_SASLABORTED 906
|
|
#define ERR_SASLALREADY 907
|
|
#define ERR_SASLMECHS 908
|
|
#endif
|
|
|
|
#endif
|