// $Id: reply.h,v 1.9 2006/01/13 20:28:57 lynx Exp $ // vim:syntax=lpc // // many useful and broken numerics have been added since the IRC RFCs // were written. http://www.alien.net.au/irc/irc2numerics.html provides // some orientation. we are implementing some things on experimental // basis and only on prescription by adding -DIRC_BEYOND_RFC to your // ldmud flags or #define IRC_BEYOND_RFC to your local.h #ifdef IRC_BEYOND_RFC // nothing right now. #endif #ifndef IRC_STRICTLY_RFC # define RPL_ISUPPORT "005" // the de facto standard for server2client // settings #endif // added manually. not in RFC 1459. #define RPL_CHANNELMODEUNKNOWN "472" // Unsupported MODE // automatically extracted from RFC 1459, chapter 6. thanks sique. #define RPL_USERHOST "302" // Reply format used by USERHOST to list // replies to the query list. The reply // string is composed as follows: // ::= ['*'] '=' <'+'|'-'> // The '*' indicates whether the client has // registered as an Operator. The '-' or // '+' characters represent whether the // client has set an AWAY message or not // respectively. #define RPL_ISON "303" // Reply format used by ISON to list // replies to the query list. #define RPL_AWAY "301" // These replies are used with the AWAY #define RPL_UNAWAY "305" // command (if allowed). RPL_AWAY is sent #define RPL_NOWAWAY "306" // to any client sending a PRIVMSG to a // client which is away. RPL_AWAY is only // sent by the server to which the client // is connected. Replies RPL_UNAWAY and // RPL_NOWAWAY are sent when the client // removes and sets an AWAY message. #define RPL_WHOISUSER "311" // Replies 311 - 313, 317 - 319 are all #define RPL_WHOISSERVER "312" // replies generated in response to a #define RPL_WHOISOPERATOR "313" // WHOIS message. Given that there are #define RPL_WHOISIDLE "317" // enough parameters present, the answering #define RPL_ENDOFWHOIS "318" // server must either formulate a reply out #define RPL_WHOISCHANNELS "319" // of the above numerics (if the query nick // is found) or return an error reply. // The '*' in RPL_WHOISUSER is there as // the literal character and not as a wild // card. For each reply set, only // RPL_WHOISCHANNELS may appear more than // once (for long lists of channel names). // The '@' and '+' characters next to the // channel name indicate whether a client // is a channel operator or has been granted // permission to speak on a moderated // channel. The RPL_ENDOFWHOIS reply is // used to mark the end of processing a // WHOIS message. #define RPL_WHOWASUSER "314" // When replying to a WHOWAS message, a #define RPL_ENDOFWHOWAS "369" // server must use the replies // RPL_WHOWASUSER, RPL_WHOISSERVER or // ERR_WASNOSUCHNICK for each nickname in // the presented list. At the end of all // reply batches, there must be // RPL_ENDOFWHOWAS (even if there was only // one reply and it was an error). #define RPL_LISTSTART "321" // Replies RPL_LISTSTART, RPL_LIST, #define RPL_LIST "322" // RPL_LISTEND mark the start, actual #define RPL_LISTEND "323" // replies with data and end of the // server's response to a LIST command. If // there are no channels available to // return, only the start and end reply // must be sent. #define RPL_CHANNELMODEIS "324" // When sending a TOPIC message to #define RPL_NOTOPIC "331" // determine the channel topic, one of two #define RPL_TOPIC "332" // replies is sent. If the topic is set, // RPL_TOPIC is sent back else RPL_NOTOPIC. #define RPL_INVITING "341" // Returned by the server to indicate that // the attempted INVITE message was // successful and is being passed onto the // end client. #define RPL_SUMMONING "342" // Returned by a server answering a SUMMON // message to indicate that it is summoning // that user. #define RPL_VERSION "351" // Reply by the server showing its version // details. The is the version of // the software being used (including any // patchlevel revisions) and the // is used to indicate if the // server is running in "debug mode". The // "comments" field may contain any // comments about the version or further // version details. #define RPL_WHOREPLY "352" // The RPL_WHOREPLY and RPL_ENDOFWHO pair #define RPL_ENDOFWHO "315" // are used to answer a WHO message. The // RPL_WHOREPLY is only sent if there is an // appropriate match to the WHO query. If // there is a list of parameters supplied // with a WHO message, a RPL_ENDOFWHO must // be sent after processing each list item // with being the item. #define RPL_NAMREPLY "353" // To reply to a NAMES message, a reply #define RPL_ENDOFNAMES "366" // pair consisting of RPL_NAMREPLY and // RPL_ENDOFNAMES is sent by the server // back to the client. If there is no // channel found as in the query, then only // RPL_ENDOFNAMES is returned. The // exception to this is when a NAMES // message is sent with no parameters and // all visible channels and contents are // sent back in a series of RPL_NAMEREPLY // messages with a RPL_ENDOFNAMES to mark // the end. #define RPL_LINKS "364" // In replying to the LINKS message, a #define RPL_ENDOFLINKS "365" // server must send replies back using the // RPL_LINKS numeric and mark the end of // the list using an RPL_ENDOFLINKS reply. #define RPL_BANLIST "367" // When listing the active 'bans' for a #define RPL_ENDOFBANLIST "368" // given channel, a server is required to // send the list back using the RPL_BANLIST // and RPL_ENDOFBANLIST messages. A // separate RPL_BANLIST is sent for each // active banid. After the banids have been // listed (or if none present) a // RPL_ENDOFBANLIST must be sent. #define RPL_INFO "371" // A server responding to an INFO message #define RPL_ENDOFINFO "374" // is required to send all its 'info' in a // series of RPL_INFO messages with a // RPL_ENDOFINFO reply to indicate the end // of the replies. #define RPL_MOTDSTART "375" // When responding to the MOTD message and #define RPL_MOTD "372" // the MOTD file is found, the file is #define RPL_ENDOFMOTD "376" // displayed line by line, with each line // no longer than 80 characters, using // RPL_MOTD format replies. These should be // surrounded by a RPL_MOTDSTART (before // the RPL_MOTDs) and an RPL_ENDOFMOTD // (after). #define RPL_YOUREOPER "381" // RPL_YOUREOPER is sent back to a client // which has just successfully issued an // OPER message and gained operator status. #define RPL_REHASHING "382" // If the REHASH option is used and an // operator sends a REHASH message, an // RPL_REHASHING is sent back to the // operator. #define RPL_TIME "391" // When replying to the TIME message, a // server must send the reply using the // RPL_TIME format above. The string // showing the time need only contain the // correct day and time there. There is no // further requirement for the time string. #define RPL_USERSSTART "392" // If the USERS message is handled by a #define RPL_USERS "393" // server, the replies RPL_USERSTART, #define RPL_ENDOFUSERS "394" // RPL_USERS, RPL_ENDOFUSERS and #define RPL_NOUSERS "395" // RPL_NOUSERS are used. RPL_USERSSTART // must be sent first, following by either // a sequence of RPL_USERS or a single // RPL_NOUSER. Following this is // RPL_ENDOFUSERS. #define RPL_TRACELINK "200" // The RPL_TRACE* are all returned by the #define RPL_TRACECONNECTING "201" // server in response to the TRACE message. #define RPL_TRACEHANDSHAKE "202" // How many are returned is dependent on #define RPL_TRACEUNKNOWN "203" // the the TRACE message and whether it was #define RPL_TRACEOPERATOR "204" // sent by an operator or not. There is no #define RPL_TRACEUSER "205" // predefined order for which occurs first. #define RPL_TRACESERVER "206" // Replies RPL_TRACEUNKNOWN, #define RPL_TRACENEWTYPE "208" // RPL_TRACECONNECTING and #define RPL_TRACELOG "261" // RPL_TRACEHANDSHAKE are all used for // connections which have not been fully // established and are either unknown, // still attempting to connect or in the // process of completing the 'server // handshake'. RPL_TRACELINK is sent by any // server which handles a TRACE message and // has to pass it on to another server. The // list of RPL_TRACELINKs sent in response // to a TRACE command traversing the IRC // network should reflect the actual // connectivity of the servers themselves // along that path. RPL_TRACENEWTYPE is to // be used for any connection which does // not fit in the other categories but is // being displayed anyway. #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_STATSLLINE "241" #define RPL_STATSUPTIME "242" #define RPL_STATSOLINE "243" #define RPL_STATSHLINE "244" #define RPL_UMODEIS "221" // To answer a query about a client's own // mode, RPL_UMODEIS is sent back. #define RPL_LUSERCLIENT "251" // In processing an LUSERS message, the #define RPL_LUSEROP "252" // server sends a set of replies from #define RPL_LUSERUNKNOWN "253" // RPL_LUSERCLIENT, RPL_LUSEROP, #define RPL_LUSERCHANNELS "254" // RPL_USERUNKNOWN, RPL_LUSERCHANNELS and #define RPL_LUSERME "255" // RPL_LUSERME. When replying, a server // must send back RPL_LUSERCLIENT and // RPL_LUSERME. The other replies are only // sent back if a non-zero count is found // for them. #define RPL_ADMINME "256" // When replying to an ADMIN message, a #define RPL_ADMINLOC1 "257" // server is expected to use replies #define RPL_ADMINLOC2 "258" // RPL_ADMINME through to RPL_ADMINEMAIL #define RPL_ADMINEMAIL "259" // and provide a text message with each. // For RPL_ADMINLOC1 a description of what // city, state and country the server is in // is expected, followed by details of the // university and department // (RPL_ADMINLOC2) and finally the // administrative contact for the server // (an email address here is required) in // RPL_ADMINEMAIL. #if 0 #define REPLY_MSGS ([\ RPL_USERHOST : ":%s",\ RPL_ISON : ":%s",\ RPL_AWAY : "%s :%s",\ RPL_UNAWAY : ":You are no longer marked as being away",\ RPL_NOWAWAY : ":You have been marked as being away",\ RPL_WHOISUSER : "%s %s %s * :%s",\ RPL_WHOISSERVER : "%s %s :%s",\ RPL_WHOISOPERATOR : "%s :is an IRC operator",\ RPL_WHOISIDLE : "%s %s :seconds idle",\ RPL_ENDOFWHOIS : "%s :End of /WHOIS list",\ RPL_WHOISCHANNELS : "%s :%s",\ RPL_WHOWASUSER : "%s %s %s * :%s",\ RPL_ENDOFWHOWAS : "%s :End of WHOWAS",\ RPL_LISTSTART : "Channel :Users Name",\ RPL_LIST : "%s %d :%s",\ RPL_LISTEND : ":End of /LIST",\ RPL_CHANNELMODEIS : "%s %s %s",\ RPL_NOTOPIC : "%s :No topic is set",\ RPL_TOPIC : "%s :%s",\ RPL_INVITING : "%s %s",\ RPL_SUMMONING : "%s :Summoning user to IRC",\ RPL_VERSION : "%d.%d %s :%s",\ RPL_WHOREPLY : "%s %s %s %s %s %s :%d %s",\ RPL_ENDOFWHO : "%s :End of /WHO list",\ RPL_NAMREPLY : "%s :%s",\ RPL_ENDOFNAMES : "%s :End of /NAMES list",\ RPL_LINKS : " : ",\ RPL_ENDOFLINKS : " :End of /LINKS list",\ RPL_BANLIST : " ",\ RPL_ENDOFBANLIST : "",\ RPL_INFO : ":%s",\ RPL_ENDOFINFO : ":End of /INFO list",\ RPL_MOTDSTART : ":- %s Message of the day - ",\ RPL_MOTD : ":- %s",\ RPL_ENDOFMOTD : ":End of /MOTD command",\ RPL_YOUREOPER : ":You are now an IRC operator",\ RPL_REHASHING : "%s :Rehashing",\ RPL_TIME : "",\ RPL_USERSSTART : ":UserID Terminal Host",\ RPL_USERS : ":%-8s %-9s %-8s",\ RPL_ENDOFUSERS : ":End of users",\ RPL_NOUSERS : ":Nobody logged in",\ RPL_TRACELINK : "Link %s %s %s",\ RPL_TRACECONNECTING : "Try. ",\ RPL_TRACEHANDSHAKE : "H.S. ",\ RPL_TRACEUNKNOWN : "???? []",\ RPL_TRACEOPERATOR : "Oper ",\ RPL_TRACEUSER : "User ",\ RPL_TRACESERVER : "Serv S C \ @",\ RPL_TRACENEWTYPE : " 0 ",\ RPL_TRACELOG : "File ",\ RPL_STATSLINKINFO : " \