543 lines
17 KiB
C
543 lines
17 KiB
C
/*
|
|
* IRC - Internet Relay Chat, include/msg.h
|
|
* Copyright (C) 1990 Jarkko Oikarinen and
|
|
* University of Oulu, Computing Center
|
|
*
|
|
* This program 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 1, or (at your option)
|
|
* any later version.
|
|
*
|
|
* This program 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 this program; if not, write to the Free Software
|
|
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
|
*/
|
|
/** @file
|
|
* @brief Command and token declarations and structures.
|
|
* @version $Id: msg.h 1925 2010-01-02 20:33:10Z klmitch $
|
|
*/
|
|
#ifndef INCLUDED_msg_h
|
|
#define INCLUDED_msg_h
|
|
#ifndef INCLUDED_ircd_handler_h
|
|
#include "ircd_handler.h"
|
|
#endif
|
|
|
|
struct Client;
|
|
|
|
/*
|
|
* General defines
|
|
*/
|
|
|
|
#define MAXPARA 15
|
|
|
|
/*-----------------------------------------------------------------------------
|
|
* Macros
|
|
*/
|
|
|
|
/*
|
|
* Tokenization:
|
|
* Each command must have a TOK_COMMAND and MSG_COMMAND definition.
|
|
* If you don't want one or the other, make them the same.
|
|
* Also each command has a "msgclass" used for debugging purposes.
|
|
*/
|
|
|
|
/* *INDENT-OFF* */
|
|
|
|
#define MSG_PRIVATE "PRIVMSG" /* PRIV */
|
|
#define TOK_PRIVATE "P"
|
|
#define CMD_PRIVATE MSG_PRIVATE, TOK_PRIVATE
|
|
|
|
#define MSG_WHO "WHO" /* WHO -> WHOC */
|
|
#define TOK_WHO "H"
|
|
#define CMD_WHO MSG_WHO, TOK_WHO
|
|
|
|
#define MSG_WHOIS "WHOIS" /* WHOI */
|
|
#define TOK_WHOIS "W"
|
|
#define CMD_WHOIS MSG_WHOIS, TOK_WHOIS
|
|
|
|
#define MSG_WHOWAS "WHOWAS" /* WHOW */
|
|
#define TOK_WHOWAS "X"
|
|
#define CMD_WHOWAS MSG_WHOWAS, TOK_WHOWAS
|
|
|
|
#define MSG_USER "USER" /* USER */
|
|
#define TOK_USER "USER"
|
|
#define CMD_USER MSG_USER, TOK_USER
|
|
|
|
#define MSG_NICK "NICK" /* NICK */
|
|
#define TOK_NICK "N"
|
|
#define CMD_NICK MSG_NICK, TOK_NICK
|
|
|
|
#define MSG_SERVER "SERVER" /* SERV */
|
|
#define TOK_SERVER "S"
|
|
#define CMD_SERVER MSG_SERVER, TOK_SERVER
|
|
|
|
#define MSG_LIST "LIST" /* LIST */
|
|
#define TOK_LIST "LIST"
|
|
#define CMD_LIST MSG_LIST, TOK_LIST
|
|
|
|
#define MSG_TOPIC "TOPIC" /* TOPI */
|
|
#define TOK_TOPIC "T"
|
|
#define CMD_TOPIC MSG_TOPIC, TOK_TOPIC
|
|
|
|
#define MSG_INVITE "INVITE" /* INVI */
|
|
#define TOK_INVITE "I"
|
|
#define CMD_INVITE MSG_INVITE, TOK_INVITE
|
|
|
|
#define MSG_VERSION "VERSION" /* VERS */
|
|
#define TOK_VERSION "V"
|
|
#define CMD_VERSION MSG_VERSION, TOK_VERSION
|
|
|
|
#define MSG_QUIT "QUIT" /* QUIT */
|
|
#define TOK_QUIT "Q"
|
|
#define CMD_QUIT MSG_QUIT, TOK_QUIT
|
|
|
|
#define MSG_SQUIT "SQUIT" /* SQUI */
|
|
#define TOK_SQUIT "SQ"
|
|
#define CMD_SQUIT MSG_SQUIT, TOK_SQUIT
|
|
|
|
#define MSG_KILL "KILL" /* KILL */
|
|
#define TOK_KILL "D"
|
|
#define CMD_KILL MSG_KILL, TOK_KILL
|
|
|
|
#define MSG_INFO "INFO" /* INFO */
|
|
#define TOK_INFO "F"
|
|
#define CMD_INFO MSG_INFO, TOK_INFO
|
|
|
|
#define MSG_LINKS "LINKS" /* LINK */
|
|
#define TOK_LINKS "LI"
|
|
#define CMD_LINKS MSG_LINKS, TOK_LINKS
|
|
|
|
#define MSG_STATS "STATS" /* STAT */
|
|
#define TOK_STATS "R"
|
|
#define CMD_STATS MSG_STATS, TOK_STATS
|
|
|
|
#define MSG_HELP "HELP" /* HELP */
|
|
#define TOK_HELP "HELP"
|
|
#define CMD_HELP MSG_HELP, TOK_HELP
|
|
|
|
#define MSG_ERROR "ERROR" /* ERRO */
|
|
#define TOK_ERROR "Y"
|
|
#define CMD_ERROR MSG_ERROR, TOK_ERROR
|
|
|
|
#define MSG_AWAY "AWAY" /* AWAY */
|
|
#define TOK_AWAY "A"
|
|
#define CMD_AWAY MSG_AWAY, TOK_AWAY
|
|
|
|
#define MSG_CONNECT "CONNECT" /* CONN */
|
|
#define TOK_CONNECT "CO"
|
|
#define CMD_CONNECT MSG_CONNECT, TOK_CONNECT
|
|
|
|
#define MSG_MAP "MAP" /* MAP */
|
|
#define TOK_MAP "MAP"
|
|
#define CMD_MAP MSG_MAP, TOK_MAP
|
|
|
|
#define MSG_PING "PING" /* PING */
|
|
#define TOK_PING "G"
|
|
#define CMD_PING MSG_PING, TOK_PING
|
|
|
|
#define MSG_PONG "PONG" /* PONG */
|
|
#define TOK_PONG "Z"
|
|
#define CMD_PONG MSG_PONG, TOK_PONG
|
|
|
|
#define MSG_OPER "OPER" /* OPER */
|
|
#define TOK_OPER "OPER"
|
|
#define CMD_OPER MSG_OPER, TOK_OPER
|
|
|
|
#define MSG_PASS "PASS" /* PASS */
|
|
#define TOK_PASS "PA"
|
|
#define CMD_PASS MSG_PASS, TOK_PASS
|
|
|
|
#define MSG_WALLOPS "WALLOPS" /* WALL */
|
|
#define TOK_WALLOPS "WA"
|
|
#define CMD_WALLOPS MSG_WALLOPS, TOK_WALLOPS
|
|
|
|
#define MSG_WALLUSERS "WALLUSERS" /* WALL */
|
|
#define TOK_WALLUSERS "WU"
|
|
#define CMD_WALLUSERS MSG_WALLUSERS, TOK_WALLUSERS
|
|
|
|
#define MSG_DESYNCH "DESYNCH" /* DESY */
|
|
#define TOK_DESYNCH "DS"
|
|
#define CMD_DESYNCH MSG_DESYNCH, TOK_DESYNCH
|
|
|
|
#define MSG_TIME "TIME" /* TIME */
|
|
#define TOK_TIME "TI"
|
|
#define CMD_TIME MSG_TIME, TOK_TIME
|
|
|
|
#define MSG_SETTIME "SETTIME" /* SETT */
|
|
#define TOK_SETTIME "SE"
|
|
#define CMD_SETTIME MSG_SETTIME, TOK_SETTIME
|
|
|
|
#define MSG_RPING "RPING" /* RPIN */
|
|
#define TOK_RPING "RI"
|
|
#define CMD_RPING MSG_RPING, TOK_RPING
|
|
|
|
#define MSG_RPONG "RPONG" /* RPON */
|
|
#define TOK_RPONG "RO"
|
|
#define CMD_RPONG MSG_RPONG, TOK_RPONG
|
|
|
|
#define MSG_NAMES "NAMES" /* NAME */
|
|
#define TOK_NAMES "E"
|
|
#define CMD_NAMES MSG_NAMES, TOK_NAMES
|
|
|
|
#define MSG_ADMIN "ADMIN" /* ADMI */
|
|
#define TOK_ADMIN "AD"
|
|
#define CMD_ADMIN MSG_ADMIN, TOK_ADMIN
|
|
|
|
#define MSG_TRACE "TRACE" /* TRAC */
|
|
#define TOK_TRACE "TR"
|
|
#define CMD_TRACE MSG_TRACE, TOK_TRACE
|
|
|
|
#define MSG_NOTICE "NOTICE" /* NOTI */
|
|
#define TOK_NOTICE "O"
|
|
#define CMD_NOTICE MSG_NOTICE, TOK_NOTICE
|
|
|
|
#define MSG_WALLCHOPS "WALLCHOPS" /* WC */
|
|
#define TOK_WALLCHOPS "WC"
|
|
#define CMD_WALLCHOPS MSG_WALLCHOPS, TOK_WALLCHOPS
|
|
|
|
#define MSG_WALLVOICES "WALLVOICES" /* WV */
|
|
#define TOK_WALLVOICES "WV"
|
|
#define CMD_WALLVOICES MSG_WALLVOICES, TOK_WALLVOICES
|
|
|
|
#define MSG_CPRIVMSG "CPRIVMSG" /* CPRI */
|
|
#define TOK_CPRIVMSG "CP"
|
|
#define CMD_CPRIVMSG MSG_CPRIVMSG, TOK_CPRIVMSG
|
|
|
|
#define MSG_CNOTICE "CNOTICE" /* CNOT */
|
|
#define TOK_CNOTICE "CN"
|
|
#define CMD_CNOTICE MSG_CNOTICE, TOK_CNOTICE
|
|
|
|
#define MSG_JOIN "JOIN" /* JOIN */
|
|
#define TOK_JOIN "J"
|
|
#define CMD_JOIN MSG_JOIN, TOK_JOIN
|
|
|
|
#define MSG_PART "PART" /* PART */
|
|
#define TOK_PART "L"
|
|
#define CMD_PART MSG_PART, TOK_PART
|
|
|
|
#define MSG_LUSERS "LUSERS" /* LUSE */
|
|
#define TOK_LUSERS "LU"
|
|
#define CMD_LUSERS MSG_LUSERS, TOK_LUSERS
|
|
|
|
#define MSG_MOTD "MOTD" /* MOTD */
|
|
#define TOK_MOTD "MO"
|
|
#define CMD_MOTD MSG_MOTD, TOK_MOTD
|
|
|
|
#define MSG_MODE "MODE" /* MODE */
|
|
#define TOK_MODE "M"
|
|
#define CMD_MODE MSG_MODE, TOK_MODE
|
|
|
|
#define MSG_KICK "KICK" /* KICK */
|
|
#define TOK_KICK "K"
|
|
#define CMD_KICK MSG_KICK, TOK_KICK
|
|
|
|
#define MSG_USERHOST "USERHOST" /* USER -> USRH */
|
|
#define TOK_USERHOST "USERHOST"
|
|
#define CMD_USERHOST MSG_USERHOST, TOK_USERHOST
|
|
|
|
#define MSG_USERIP "USERIP" /* USER -> USIP */
|
|
#define TOK_USERIP "USERIP"
|
|
#define CMD_USERIP MSG_USERIP, TOK_USERIP
|
|
|
|
#define MSG_ISON "ISON" /* ISON */
|
|
#define TOK_ISON "ISON"
|
|
#define CMD_ISON MSG_ISON, TOK_ISON
|
|
|
|
#define MSG_SQUERY "SQUERY" /* SQUE */
|
|
#define TOK_SQUERY "SQUERY"
|
|
#define CMD_SQUERY MSG_SQUERY, TOK_SQUERY
|
|
|
|
#define MSG_SERVLIST "SERVLIST" /* SERV -> SLIS */
|
|
#define TOK_SERVLIST "SERVLIST"
|
|
#define CMD_SERVLIST MSG_SERVLIST, TOK_SERVLIST
|
|
|
|
#define MSG_SERVSET "SERVSET" /* SERV -> SSET */
|
|
#define TOK_SERVSET "SERVSET"
|
|
#define CMD_SERVSET MSG_SERVSET, TOK_SERVSET
|
|
|
|
#define MSG_REHASH "REHASH" /* REHA */
|
|
#define TOK_REHASH "RH"
|
|
#define CMD_REHASH MSG_REHASH, TOK_REHASH
|
|
|
|
#define MSG_RESTART "RESTART" /* REST */
|
|
#define TOK_RESTART "RESTART"
|
|
#define CMD_RESTART MSG_RESTART, TOK_RESTART
|
|
|
|
#define MSG_CLOSE "CLOSE" /* CLOS */
|
|
#define TOK_CLOSE "CLOSE"
|
|
#define CMD_CLOSE MSG_CLOSE, TOK_CLOSE
|
|
|
|
#define MSG_DIE "DIE" /* DIE */
|
|
#define TOK_DIE "DIE"
|
|
#define CMD_DIE MSG_DIE, TOK_DIE
|
|
|
|
#define MSG_HASH "HASH" /* HASH */
|
|
#define TOK_HASH "HASH"
|
|
#define CMD_HASH MSG_HASH, TOK_HASH
|
|
|
|
#define MSG_DNS "DNS" /* DNS -> DNSS */
|
|
#define TOK_DNS "DNS"
|
|
#define CMD_DNS MSG_DNS, TOK_DNS
|
|
|
|
#define MSG_SILENCE "SILENCE" /* SILE */
|
|
#define TOK_SILENCE "U"
|
|
#define CMD_SILENCE MSG_SILENCE, TOK_SILENCE
|
|
|
|
#define MSG_GLINE "GLINE" /* GLIN */
|
|
#define TOK_GLINE "GL"
|
|
#define CMD_GLINE MSG_GLINE, TOK_GLINE
|
|
|
|
#define MSG_BURST "BURST" /* BURS */
|
|
#define TOK_BURST "B"
|
|
#define CMD_BURST MSG_BURST, TOK_BURST
|
|
|
|
#define MSG_UPING "UPING" /* UPIN */
|
|
#define TOK_UPING "UP"
|
|
#define CMD_UPING MSG_UPING, TOK_UPING
|
|
|
|
#define MSG_CREATE "CREATE" /* CREA */
|
|
#define TOK_CREATE "C"
|
|
#define CMD_CREATE MSG_CREATE, TOK_CREATE
|
|
|
|
#define MSG_DESTRUCT "DESTRUCT" /* DEST */
|
|
#define TOK_DESTRUCT "DE"
|
|
#define CMD_DESTRUCT MSG_DESTRUCT, TOK_DESTRUCT
|
|
|
|
#define MSG_END_OF_BURST "END_OF_BURST" /* END_ */
|
|
#define TOK_END_OF_BURST "EB"
|
|
#define CMD_END_OF_BURST MSG_END_OF_BURST, TOK_END_OF_BURST
|
|
|
|
#define MSG_END_OF_BURST_ACK "EOB_ACK" /* EOB_ */
|
|
#define TOK_END_OF_BURST_ACK "EA"
|
|
#define CMD_END_OF_BURST_ACK MSG_END_OF_BURST_ACK, TOK_END_OF_BURST_ACK
|
|
|
|
#define MSG_PROTO "PROTO" /* PROTO */
|
|
#define TOK_PROTO "PROTO" /* PROTO */
|
|
#define CMD_PROTO MSG_PROTO, TOK_PROTO
|
|
|
|
#define MSG_JUPE "JUPE" /* JUPE */
|
|
#define TOK_JUPE "JU"
|
|
#define CMD_JUPE MSG_JUPE, TOK_JUPE
|
|
|
|
#define MSG_OPMODE "OPMODE" /* OPMO */
|
|
#define TOK_OPMODE "OM"
|
|
#define CMD_OPMODE MSG_OPMODE, TOK_OPMODE
|
|
|
|
#define MSG_CLEARMODE "CLEARMODE" /* CLMO */
|
|
#define TOK_CLEARMODE "CM"
|
|
#define CMD_CLEARMODE MSG_CLEARMODE, TOK_CLEARMODE
|
|
|
|
#define MSG_ACCOUNT "ACCOUNT" /* ACCO */
|
|
#define TOK_ACCOUNT "AC"
|
|
#define CMD_ACCOUNT MSG_ACCOUNT, TOK_ACCOUNT
|
|
|
|
#define MSG_ASLL "ASLL" /* ASLL */
|
|
#define TOK_ASLL "LL"
|
|
#define CMD_ASLL MSG_ASLL, TOK_ASLL
|
|
|
|
#define MSG_POST "POST" /* POST */
|
|
#define TOK_POST "POST"
|
|
|
|
#define MSG_SET "SET" /* SET */
|
|
#define TOK_SET "SET"
|
|
|
|
#define MSG_RESET "RESET" /* RESE */
|
|
#define TOK_RESET "RESET"
|
|
|
|
#define MSG_GET "GET" /* GET */
|
|
#define TOK_GET "GET"
|
|
|
|
#define MSG_PRIVS "PRIVS" /* PRIV */
|
|
#define TOK_PRIVS "PRIVS"
|
|
#define CMD_PRIVS MSG_PRIVS, TOK_PRIVS
|
|
|
|
#define MSG_CAP "CAP"
|
|
#define TOK_CAP "CAP"
|
|
#define CMD_CAP MSG_CAP, TOK_CAP
|
|
|
|
#define MSG_XQUERY "XQUERY"
|
|
#define TOK_XQUERY "XQ"
|
|
#define CMD_XQUERY MSG_XQUERY, TOK_XQUERY
|
|
|
|
#define MSG_XREPLY "XREPLY"
|
|
#define TOK_XREPLY "XR"
|
|
#define CMD_XREPLY MSG_XREPLY, TOK_XREPLY
|
|
|
|
#define MSG_ISNEF "ISNEF"
|
|
#define TOK_ISNEF "ISNEF"
|
|
#define CMD_ISNEF MSG_ISNEF, TOK_ISNEF
|
|
|
|
#define MSG_CHECK "CHECK"
|
|
#define TOK_CHECK "CC"
|
|
#define CMD_CHECK MSG_CHECK, TOK_CHECK
|
|
|
|
#define MSG_PROTOCTL "PROTOCTL"
|
|
#define TOK_PROTOCTL "PROTOCTL"
|
|
#define CMD_PROTOCTL MSG_PROTOCTL, CMD_PROTOCTL
|
|
|
|
#define MSG_SVSIDENT "SVSIDENT"
|
|
#define TOK_SVSIDENT "SID"
|
|
#define CMD_SVSIDENT MSG_SVSIDENT, TOK_SVSIDENT
|
|
|
|
#define MSG_SVSINFO "SVSINFO"
|
|
#define TOK_SVSINFO "SI"
|
|
#define CMD_SVSINFO MSG_SVSINFO, TOK_SVSINFO
|
|
|
|
#define MSG_SVSQUIT "SVSQUIT"
|
|
#define TOK_SVSQUIT "SX"
|
|
#define CMD_SVSQUIT MSG_SVSQUIT, TOK_SVSQUIT
|
|
|
|
#define MSG_SNO "SNO"
|
|
#define TOK_SNO "SNO"
|
|
#define CMD_SNO MSG_SNO, TOK_SNO
|
|
|
|
#define MSG_SMO "SMO"
|
|
#define TOK_SMO "SMO"
|
|
#define CMD_SMO MSG_SMO, TOK_SMO
|
|
|
|
#define MSG_WEBIRC "WEBIRC"
|
|
#define TOK_WEBIRC "WEBIRC"
|
|
#define CMD_WEBIRC MSG_WEBIRC, TOK_WEBIRC
|
|
|
|
#define MSG_MARK "MARK"
|
|
#define TOK_MARK "MK"
|
|
#define CMD_MARK MSG_MARK, TOK_MARK
|
|
|
|
#define MSG_SVSNOOP "SVSNOOP"
|
|
#define TOK_SVSNOOP "SO"
|
|
#define CMD_SVSNOOP MSG_SVSNOOP, TOK_SVSNOOP
|
|
|
|
#define MSG_SVSMODE "SVSMODE"
|
|
#define TOK_SVSMODE "SM"
|
|
#define CMD_SVSMODE MSG_SVSMODE, TOK_SVSMODE
|
|
|
|
#define MSG_SVSNICK "SVSNICK"
|
|
#define TOK_SVSNICK "SN"
|
|
#define CMD_SVSNICK MSG_SVSNICK, TOK_SVSNICK
|
|
|
|
#define MSG_SVSPART "SVSPART"
|
|
#define TOK_SVSPART "SP"
|
|
#define CMD_SVSPART MSG_SVSPART, TOK_SVSPART
|
|
|
|
#define MSG_SVSJOIN "SVSJOIN"
|
|
#define TOK_SVSJOIN "SJ"
|
|
#define CMD_SVSJOIN MSG_SVSJOIN, TOK_SVSJOIN
|
|
|
|
#define MSG_SWHOIS "SWHOIS"
|
|
#define TOK_SWHOIS "SW"
|
|
#define CMD_SWHOIS MSG_SWHOIS, TOK_SWHOIS
|
|
|
|
#define MSG_FAKE "FAKE"
|
|
#define TOK_FAKE "FA"
|
|
#define CMD_FAKE MSG_FAKE, TOK_FAKE
|
|
|
|
#define MSG_MKPASSWD "MKPASSWD"
|
|
#define TOK_MKPASSWD "MKPASSWD"
|
|
#define CMD_MKPASSWD MSG_MKPASSWD, TOK_MKPASSWD
|
|
|
|
#define MSG_OPERMOTD "OPERMOTD"
|
|
#define TOK_OPERMOTD "OPM"
|
|
#define CMD_OPERMOTD MSG_OPERMOTD, TOK_OPERMOTD
|
|
|
|
#define MSG_RULES "RULES"
|
|
#define TOK_RULES "RL"
|
|
#define CMD_RULES MSG_RULES, TOK_RULES
|
|
|
|
#define MSG_SHUN "SHUN"
|
|
#define TOK_SHUN "SU"
|
|
#define CMD_SHUN MSG_SHUN, TOK_SHUN
|
|
|
|
#define MSG_SETHOST "SETHOST"
|
|
#define TOK_SETHOST "SETHOST"
|
|
#define CMD_SETHOST MSG_SETHOST, TOK_SETHOST
|
|
|
|
#define MSG_FINGERPRINT "FINGERPRINT"
|
|
#define TOK_FINGERPRINT "FINGERPRINT"
|
|
#define CMD_FINGERPRINT MSG_FINGERPRINT, TOK_FINGERPRINT
|
|
|
|
#define MSG_STARTTLS "STARTTLS"
|
|
#define TOK_STARTTLS "STARTTLS"
|
|
#define CMD_STARTTLS MSG_STARTTLS, TOK_STARTTLS
|
|
|
|
#define MSG_WALLHOPS "WALLHOPS"
|
|
#define TOK_WALLHOPS "WH"
|
|
#define CMD_WALLHOPS MSG_WALLHOPS, TOK_WALLHOPS
|
|
|
|
#define MSG_AUTHENTICATE "AUTHENTICATE"
|
|
#define TOK_AUTHENTICATE "AUTHENTICATE"
|
|
#define CMD_AUTHENTICATE MSG_AUTHENTICATE, TOK_AUTHENTICATE
|
|
|
|
#define MSG_SASL "SASL"
|
|
#define TOK_SASL "SASL"
|
|
#define CMD_SASL MSG_SASL, TOK_SASL
|
|
|
|
#define MSG_REMOVE "REMOVE"
|
|
#define TOK_REMOVE "RM"
|
|
#define CMD_REMOVE MSG_REMOVE, TOK_REMOVE
|
|
|
|
#define MSG_WATCH "WATCH"
|
|
#define TOK_WATCH "WATCH"
|
|
#define CMD_WATCH MSG_WATCH, TOK_WATCH
|
|
|
|
#define MSG_ZLINE "ZLINE"
|
|
#define TOK_ZLINE "ZL"
|
|
#define CMD_ZLINE MSG_ZLINE, TOK_ZLINE
|
|
|
|
#define MSG_IRCOPS "IRCOPS"
|
|
#define TOK_IRCOPS "IRCOPS"
|
|
#define CMD_IRCOPS MSG_IRCOPS, TOK_IRCOPS
|
|
|
|
#define MSG_TEMPSHUN "TEMPSHUN"
|
|
#define TOK_TEMPSHUN "TS"
|
|
#define CMD_TEMPSHUN MSG_TEMPSHUN, TOK_TEMPSHUN
|
|
|
|
/*
|
|
* Constants
|
|
*/
|
|
#define MFLG_SLOW 0x01 /** Limit command usage to
|
|
* once per 2 seconds (for
|
|
* local users). */
|
|
#define MFLG_UNREG 0x02 /** Command available to
|
|
* unregistered clients. */
|
|
#define MFLG_IGNORE 0x04 /** Silently ignore command from
|
|
* unregistered clients. */
|
|
#define MFLG_EXTRA 0x08 /** Handler requests that
|
|
* mptr->extra be passed in
|
|
* parv[1]. */
|
|
#define MFLG_NOSHUN 0x10 /** Command is SHUN exempt. */
|
|
|
|
/*
|
|
* Structures
|
|
*/
|
|
|
|
/** Information on how to parse a message. */
|
|
struct Message {
|
|
char *cmd; /**< command string */
|
|
char *tok; /**< token (shorter command string) */
|
|
unsigned int count; /**< number of times message used */
|
|
unsigned int parameters; /**< minimum number of parameters */
|
|
unsigned int flags; /**< MFLG_* flags for command */
|
|
unsigned int bytes; /**< bytes received for this message */
|
|
void *extra; /**< extra pointer to be passed in parv[1] */
|
|
/*
|
|
* cptr = Connected client ptr
|
|
* sptr = Source client ptr
|
|
* parc = parameter count
|
|
* parv = parameter variable array
|
|
*/
|
|
/* handlers:
|
|
* UNREGISTERED, CLIENT, SERVER, OPER, SERVICE, LAST
|
|
*/
|
|
MessageHandler handlers[LAST_HANDLER_TYPE];
|
|
char *help;
|
|
};
|
|
|
|
extern struct Message msgtab[];
|
|
|
|
#endif /* INCLUDED_msg_h */
|