230 lines
4.8 KiB
C
230 lines
4.8 KiB
C
/*
|
|
* This file is part of uIRC. (https://git.redxen.eu/caskd/uIRC)
|
|
* Copyright (c) 2019-2021 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/>.
|
|
*/
|
|
|
|
/*! \file */
|
|
|
|
#include <stdint.h> // uint_least16_t
|
|
|
|
#ifndef UIRC_GUARD_PUBLIC_COMMANDS
|
|
#define UIRC_GUARD_PUBLIC_COMMANDS
|
|
|
|
enum uirc_table_command {
|
|
IRC_CMD_PASS,
|
|
IRC_CMD_NICK,
|
|
IRC_CMD_USER,
|
|
IRC_CMD_OPER,
|
|
IRC_CMD_MODE,
|
|
IRC_CMD_SERVICE,
|
|
IRC_CMD_QUIT,
|
|
IRC_CMD_SQUIT,
|
|
IRC_CMD_JOIN,
|
|
IRC_CMD_PART,
|
|
IRC_CMD_TOPIC,
|
|
IRC_CMD_NAMES,
|
|
IRC_CMD_LIST,
|
|
IRC_CMD_INVITE,
|
|
IRC_CMD_KICK,
|
|
IRC_CMD_PRIVMSG,
|
|
IRC_CMD_NOTICE,
|
|
IRC_CMD_MOTD,
|
|
IRC_CMD_LUSERS,
|
|
IRC_CMD_VERSION,
|
|
IRC_CMD_STATS,
|
|
IRC_CMD_LINKS,
|
|
IRC_CMD_TIME,
|
|
IRC_CMD_CONNECT,
|
|
IRC_CMD_TRACE,
|
|
IRC_CMD_ADMIN,
|
|
IRC_CMD_INFO,
|
|
IRC_CMD_SERVLIST,
|
|
IRC_CMD_SQUERY,
|
|
IRC_CMD_WHO,
|
|
IRC_CMD_WHOIS,
|
|
IRC_CMD_WHOWAS,
|
|
IRC_CMD_KILL,
|
|
IRC_CMD_PING,
|
|
IRC_CMD_PONG,
|
|
IRC_CMD_ERROR,
|
|
IRC_CMD_AWAY,
|
|
IRC_CMD_REHASH,
|
|
IRC_CMD_DIE,
|
|
IRC_CMD_RESTART,
|
|
IRC_CMD_SUMMON,
|
|
IRC_CMD_USERS,
|
|
IRC_CMD_WALLOPS,
|
|
IRC_CMD_USERHOST,
|
|
IRC_CMD_ISON,
|
|
};
|
|
const char* IRC_CMD(enum uirc_table_command cmd);
|
|
|
|
enum uirc_table_replies {
|
|
IRC_RPL_WELCOME,
|
|
IRC_RPL_YOURHOST,
|
|
IRC_RPL_CREATED,
|
|
IRC_RPL_MYINFO,
|
|
IRC_RPL_BOUNCE,
|
|
|
|
#ifdef UIRC_FEATURE_IRCV3
|
|
IRC_RPL_ISUPPORT,
|
|
#endif /* UIRC_FEATURE_IRCV3 */
|
|
|
|
IRC_RPL_TRACELINK,
|
|
IRC_RPL_TRACECONNECTING,
|
|
IRC_RPL_TRACEHANDSHAKE,
|
|
IRC_RPL_TRACEUNKNOWN,
|
|
IRC_RPL_TRACEOPERATOR,
|
|
IRC_RPL_TRACEUSER,
|
|
IRC_RPL_TRACESERVER,
|
|
IRC_RPL_TRACENEWTYPE,
|
|
IRC_RPL_STATSLINKINFO,
|
|
IRC_RPL_STATSCOMMANDS,
|
|
IRC_RPL_STATSCLINE,
|
|
IRC_RPL_STATSNLINE,
|
|
IRC_RPL_STATSILINE,
|
|
IRC_RPL_STATSKLINE,
|
|
IRC_RPL_STATSYLINE,
|
|
IRC_RPL_ENDOFSTATS,
|
|
IRC_RPL_UMODEIS,
|
|
IRC_RPL_STATSLLINE,
|
|
IRC_RPL_STATSUPTIME,
|
|
IRC_RPL_STATSOLINE,
|
|
IRC_RPL_STATSHLINE,
|
|
IRC_RPL_LUSERCLIENT,
|
|
IRC_RPL_LUSEROP,
|
|
IRC_RPL_LUSERUNKNOWN,
|
|
IRC_RPL_LUSERCHANNELS,
|
|
IRC_RPL_LUSERME,
|
|
IRC_RPL_ADMINME,
|
|
IRC_RPL_ADMINLOC1,
|
|
IRC_RPL_ADMINLOC2,
|
|
IRC_RPL_ADMINEMAIL,
|
|
IRC_RPL_TRACELOG,
|
|
IRC_RPL_NONE,
|
|
IRC_RPL_AWAY,
|
|
IRC_RPL_USERHOST,
|
|
IRC_RPL_ISON,
|
|
IRC_RPL_UNAWAY,
|
|
IRC_RPL_NOWAWAY,
|
|
IRC_RPL_WHOISUSER,
|
|
IRC_RPL_WHOISSERVER,
|
|
IRC_RPL_WHOISOPERATOR,
|
|
IRC_RPL_WHOWASUSER,
|
|
IRC_RPL_ENDOFWHO,
|
|
IRC_RPL_WHOISIDLE,
|
|
IRC_RPL_ENDOFWHOIS,
|
|
IRC_RPL_WHOISCHANNELS,
|
|
IRC_RPL_LISTSTART,
|
|
IRC_RPL_LIST,
|
|
IRC_RPL_LISTEND,
|
|
IRC_RPL_CHANNELMODEIS,
|
|
IRC_RPL_NOTOPIC,
|
|
IRC_RPL_TOPIC,
|
|
IRC_RPL_INVITING,
|
|
IRC_RPL_SUMMONING,
|
|
IRC_RPL_VERSION,
|
|
IRC_RPL_WHOREPLY,
|
|
IRC_RPL_NAMREPLY,
|
|
IRC_RPL_LINKS,
|
|
IRC_RPL_ENDOFLINKS,
|
|
IRC_RPL_ENDOFNAMES,
|
|
IRC_RPL_BANLIST,
|
|
IRC_RPL_ENDOFBANLIST,
|
|
IRC_RPL_ENDOFWHOWAS,
|
|
IRC_RPL_INFO,
|
|
IRC_RPL_MOTD,
|
|
IRC_RPL_ENDOFINFO,
|
|
IRC_RPL_MOTDSTART,
|
|
IRC_RPL_ENDOFMOTD,
|
|
IRC_RPL_YOUREOPER,
|
|
IRC_RPL_REHASHING,
|
|
IRC_RPL_TIME,
|
|
IRC_RPL_USERSSTART,
|
|
IRC_RPL_USERS,
|
|
IRC_RPL_ENDOFUSERS,
|
|
IRC_RPL_NOUSERS,
|
|
|
|
IRC_ERR_NOSUCHNICK,
|
|
IRC_ERR_NOSUCHSERVER,
|
|
IRC_ERR_NOSUCHCHANNEL,
|
|
IRC_ERR_CANNOTSENDTOCHAN,
|
|
IRC_ERR_TOOMANYCHANNELS,
|
|
IRC_ERR_WASNOSUCHNICK,
|
|
IRC_ERR_TOOMANYTARGETS,
|
|
IRC_ERR_NOORIGIN,
|
|
IRC_ERR_NORECIPIENT,
|
|
IRC_ERR_NOTEXTTOSEND,
|
|
IRC_ERR_NOTOPLEVEL,
|
|
IRC_ERR_WILDTOPLEVEL,
|
|
IRC_ERR_UNKNOWNCOMMAND,
|
|
IRC_ERR_NOMOTD,
|
|
IRC_ERR_NOADMININFO,
|
|
IRC_ERR_FILEIRC_ERROR,
|
|
IRC_ERR_NONICKNAMEGIVEN,
|
|
IRC_ERR_IRC_ERRONEUSNICKNAME,
|
|
IRC_ERR_NICKNAMEINUSE,
|
|
IRC_ERR_NICKCOLLISION,
|
|
IRC_ERR_USERNOTINCHANNEL,
|
|
IRC_ERR_NOTONCHANNEL,
|
|
IRC_ERR_USERONCHANNEL,
|
|
IRC_ERR_NOLOGIN,
|
|
IRC_ERR_SUMMONDISABLED,
|
|
IRC_ERR_USERSDISABLED,
|
|
IRC_ERR_NOTREGISTERED,
|
|
IRC_ERR_NEEDMOREPARAMS,
|
|
IRC_ERR_ALREADYREGISTRED,
|
|
IRC_ERR_NOPERMFORHOST,
|
|
IRC_ERR_PASSWDMISMATCH,
|
|
IRC_ERR_YOUREBANNEDCREEP,
|
|
IRC_ERR_KEYSET,
|
|
IRC_ERR_CHANNELISFULL,
|
|
IRC_ERR_UNKNOWNMODE,
|
|
IRC_ERR_INVITEONLYCHAN,
|
|
IRC_ERR_BANNEDFROMCHAN,
|
|
IRC_ERR_BADCHANNELKEY,
|
|
IRC_ERR_NOPRIVILEGES,
|
|
IRC_ERR_CHANOPRIVSNEEDED,
|
|
IRC_ERR_CANTKILLSERVER,
|
|
IRC_ERR_NOOPERHOST,
|
|
IRC_ERR_UMODEUNKNOWNFLAG,
|
|
IRC_ERR_USERSDONTMATCH,
|
|
|
|
#ifdef UIRC_FEATURE_IRCV3
|
|
IRC_RPL_STARTTLS,
|
|
IRC_ERR_STARTTLS,
|
|
IRC_RPL_MONONLINE,
|
|
IRC_RPL_MONOFFLINE,
|
|
IRC_RPL_MONLIST,
|
|
IRC_RPL_ENDOFMONLIST,
|
|
IRC_ERR_MOLISTFULL,
|
|
IRC_RPL_LOGGEDIN,
|
|
IRC_RPL_LOGGEDOUT,
|
|
IRC_ERR_NICKLOCKED,
|
|
IRC_RPL_SASLSUCCESS,
|
|
IRC_ERR_SASLFAIL,
|
|
IRC_ERR_SASLTOOLONG,
|
|
IRC_ERR_SASLABORTED,
|
|
IRC_ERR_SASLALREADY,
|
|
IRC_ERR_SASLMECHS,
|
|
#endif /* UIRC_FEATURE_IRCV3 */
|
|
};
|
|
uint_least16_t IRC_RPL(enum uirc_table_replies rpl);
|
|
const char* IRC_RPL_STR(enum uirc_table_replies rpl);
|
|
|
|
#endif /* UIRC_GUARD_PUBLIC_COMMANDS */
|
|
|