pastebin - collaborative debugging tool
kpaste.net RSS


IRC ISUPPORT (raw 005) Draft
Posted by Anonymous on Tue 25th May 2010 21:28
raw | new post

  1.  
  2.  
  3. Network Working Group                                      E. Brocklesby
  4. Internet-Draft                                           January 5, 2004
  5. Expires: July 5, 2004
  6.  
  7.  
  8.                   IRC RPL_ISUPPORT Numeric Definition
  9.                     draft-brocklesby-irc-isupport-03
  10.  
  11. Status of this Memo
  12.  
  13.    This document is an Internet-Draft and is in full conformance with
  14.    all provisions of Section 10 of RFC2026.
  15.  
  16.    Internet-Drafts are working documents of the Internet Engineering
  17.    Task Force (IETF), its areas, and its working groups. Note that other
  18.    groups may also distribute working documents as Internet-Drafts.
  19.  
  20.    Internet-Drafts are draft documents valid for a maximum of six months
  21.    and may be updated, replaced, or obsoleted by other documents at any
  22.    time. It is inappropriate to use Internet-Drafts as reference
  23.    material or to cite them other than as "work in progress."
  24.  
  25.    The list of current Internet-Drafts can be accessed at http://
  26.    www.ietf.org/ietf/1id-abstracts.txt.
  27.  
  28.    The list of Internet-Draft Shadow Directories can be accessed at
  29.    http://www.ietf.org/shadow.html.
  30.  
  31.    This Internet-Draft will expire on July 5, 2004.
  32.  
  33. Copyright Notice
  34.  
  35.    Copyright (C) The Internet Society (2004). All Rights Reserved.
  36.  
  37. Abstract
  38.  
  39.    This memo presents a way for the server to unobtrusively advertise
  40.    the ways in which it differs from the Internet Relay Chat (IRC)
  41.    specification defined in RFC1459. It is a primary goal to implement
  42.    this in a way which is completely backwards-compatible with the
  43.    original protocol, and as much as possible with current non-standard
  44.    implementations of the ISUPPORT numeric.
  45.  
  46.  
  47.  
  48.  
  49.  
  50.  
  51.  
  52.  
  53.  
  54.  
  55. Brocklesby                Expires July 5, 2004                  [Page 1]
  56. Internet-Draft    IRC RPL_ISUPPORT Numeric Definition       January 2004
  57.  
  58.  
  59. Table of Contents
  60.  
  61.    1.   Introduction . . . . . . . . . . . . . . . . . . . . . . . .   3
  62.    1.1  Terminology  . . . . . . . . . . . . . . . . . . . . . . . .   3
  63.    1.2  Changes to previous version  . . . . . . . . . . . . . . . .   3
  64.    1.3  Motivation . . . . . . . . . . . . . . . . . . . . . . . . .   3
  65.    1.4  Notes on examples  . . . . . . . . . . . . . . . . . . . . .   4
  66.    2.   Protocol outline . . . . . . . . . . . . . . . . . . . . . .   4
  67.    3.   Currently defined parameters . . . . . . . . . . . . . . . .   7
  68.    3.1  CASEMAPPING  . . . . . . . . . . . . . . . . . . . . . . . .   7
  69.    3.2  CHANLIMIT  . . . . . . . . . . . . . . . . . . . . . . . . .   7
  70.    3.3  CHANMODES  . . . . . . . . . . . . . . . . . . . . . . . . .   8
  71.    3.4  CHANNELLEN . . . . . . . . . . . . . . . . . . . . . . . . .   9
  72.    3.5  CHANTYPES  . . . . . . . . . . . . . . . . . . . . . . . . .   9
  73.    3.6  EXCEPTS  . . . . . . . . . . . . . . . . . . . . . . . . . .   9
  74.    3.7  IDCHAN . . . . . . . . . . . . . . . . . . . . . . . . . . .  10
  75.    3.8  INVEX  . . . . . . . . . . . . . . . . . . . . . . . . . . .  10
  76.    3.9  KICKLEN  . . . . . . . . . . . . . . . . . . . . . . . . . .  10
  77.    3.10 MAXLIST  . . . . . . . . . . . . . . . . . . . . . . . . . .  11
  78.    3.11 MODES  . . . . . . . . . . . . . . . . . . . . . . . . . . .  11
  79.    3.12 NETWORK  . . . . . . . . . . . . . . . . . . . . . . . . . .  12
  80.    3.13 NICKLEN  . . . . . . . . . . . . . . . . . . . . . . . . . .  12
  81.    3.14 PREFIX . . . . . . . . . . . . . . . . . . . . . . . . . . .  13
  82.    3.15 SAFELIST . . . . . . . . . . . . . . . . . . . . . . . . . .  13
  83.    3.16 STATUSMSG  . . . . . . . . . . . . . . . . . . . . . . . . .  14
  84.    3.17 STD  . . . . . . . . . . . . . . . . . . . . . . . . . . . .  14
  85.    3.18 TARGMAX  . . . . . . . . . . . . . . . . . . . . . . . . . .  15
  86.    3.19 TOPICLEN . . . . . . . . . . . . . . . . . . . . . . . . . .  15
  87.    4.   Differences to existing implementations  . . . . . . . . . .  16
  88.    4.1  PREFIX parameter without value . . . . . . . . . . . . . . .  16
  89.    4.2  EXCEPTS and INVEX value argument . . . . . . . . . . . . . .  16
  90.    4.3  STATUSMSG / WALLCHOPS  . . . . . . . . . . . . . . . . . . .  16
  91.    4.4  Conflicts with RFC 2812  . . . . . . . . . . . . . . . . . .  16
  92.    4.5  Default value for CASEMAPPING  . . . . . . . . . . . . . . .  17
  93.    4.6  CHANLIMIT / MAXCHANNELS  . . . . . . . . . . . . . . . . . .  17
  94.    4.7  MAXLIST / MAXBANS  . . . . . . . . . . . . . . . . . . . . .  17
  95.    4.8  CHARSET  . . . . . . . . . . . . . . . . . . . . . . . . . .  17
  96.    4.9  TARGMAX / MAXTARGETS . . . . . . . . . . . . . . . . . . . .  17
  97.    5.   Security Considerations  . . . . . . . . . . . . . . . . . .  18
  98.         Normative References . . . . . . . . . . . . . . . . . . . .  18
  99.         Informative references . . . . . . . . . . . . . . . . . . .  18
  100.         Author's Address . . . . . . . . . . . . . . . . . . . . . .  18
  101.    A.   Default ISUPPORT values  . . . . . . . . . . . . . . . . . .  18
  102.    B.   Acknowledgements . . . . . . . . . . . . . . . . . . . . . .  19
  103.         Intellectual Property and Copyright Statements . . . . . . .  20
  104.  
  105.  
  106.  
  107.  
  108.  
  109.  
  110. Brocklesby                Expires July 5, 2004                  [Page 2]
  111. Internet-Draft    IRC RPL_ISUPPORT Numeric Definition       January 2004
  112.  
  113.  
  114. 1. Introduction
  115.  
  116. 1.1 Terminology
  117.  
  118.    o  Original IRC protocol: The original IRC protocol as described in
  119.       RFC 1459 [5].
  120.    o  The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL
  121.       NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED",  "MAY", and
  122.       "OPTIONAL" in this document are to be interpreted as described in
  123.       RFC 2119 [1].
  124.    o  The ABNF syntax used in this document is defined in RFC 2234 [2]
  125.    o  The term "character" is this document is used to mean an octet, as
  126.       defined in RFC 1459 [5], section 2.2.
  127.  
  128. 1.2 Changes to previous version
  129.  
  130.      [Note: To be removed by the RFC editor prior to publication.]
  131.  
  132.    The follow significant changes were made from version 02 to version
  133.    03 of this document:
  134.  
  135.    o  The semantics of MAXCHANNELS were changed and it was renamed to
  136.       CHANLIMIT.
  137.    o  The semantics of CHIDLEN were changed and it was renamed to
  138.       IDCHAN.
  139.    o  The description of the protocol was clarified significantly, as
  140.       were several parameter definitions.  Several recommendations of
  141.       what the client should do when faced with protocol violations by
  142.       the server were also removed.
  143.    o  Several implications or recommendations of client or server
  144.       behaviour were changed into requirements or removed entirely.
  145.    o  In particular, the server is now required to send STD as the first
  146.       parameter upon client registration, followed by all defined
  147.       parameters which have no default value.
  148.    o  The specification of a parameter's value was changed to allow
  149.       "\xHH" sequences, to represent spaces and other characters.  This
  150.       feature is considered experimental and comments are particular
  151.       appreciated.
  152.    o  Delivery of 005 numerics from remote servers is now explicitly
  153.       prohibited.
  154.    o  The CHARSET parameter was found to be unworkable and has been
  155.       entirely removed.
  156.    o  The TARGMAX parameter was added.
  157.    o  "X" and "X=" were made identical.
  158.  
  159. 1.3 Motivation
  160.  
  161.    Since the publication of RFC 1459 [5] in 1993, a number of changes
  162.  
  163.  
  164.  
  165. Brocklesby                Expires July 5, 2004                  [Page 3]
  166. Internet-Draft    IRC RPL_ISUPPORT Numeric Definition       January 2004
  167.  
  168.  
  169.    and extensions have been made to the IRC protocol.  This has led to a
  170.    problem whereby clients are unable to correctly interpret some server
  171.    replies, because the reply, channel mode, and so on may have
  172.    different meanings on different implementations of the IRC server.
  173.    It is also difficult for the client to ascertain which protocol
  174.    extensions may be available on a specific server.
  175.  
  176.    A de facto standard has emerged in the community, originally
  177.    implemented by the Undernet's IRC server software based on the 005
  178.    numeric from DALnet's IRC server, which allows the server to
  179.    advertise to the client upon connection which protocol extensions it
  180.    supports. This reply, termed RPL_ISUPPORT, uses the non-standard
  181.    numeric 005.
  182.  
  183.    Unfortunately, since there is no standard document describing the
  184.    ISUPPORT numeric, differences have emerged between implementations in
  185.    IRC server software; it is believed that this reduces the potential
  186.    usefulness of the feature.  This memo attempts to standardise the
  187.    format and content of the ISUPPORT numeric in an extensible way, such
  188.    that IRC clients can use the information provided to the maximum
  189.    extent.
  190.  
  191. 1.4 Notes on examples
  192.  
  193.    Several examples of protocol replies are given throughout this
  194.    document. These are intended only for clarification of the protocol;
  195.    in the case of a discrepancy between the example and the formal
  196.    specification, the specification is always preferred.
  197.  
  198. 2. Protocol outline
  199.  
  200.    The ISUPPORT numeric consists of a series of parameters, each of
  201.    which maps to a protocol extension supported by the IRC server.  A
  202.    parameter may have an associated value, typically a numeric or string
  203.    value, which provides additional information on the extension.
  204.  
  205.    The format of the ISUPPORT numeric is the same as other server
  206.    numeric replies currently used. A client which does not understand
  207.    the numeric may ignore it; however, it is recommended that IRC
  208.    clients understand ISUPPORT, in order to allow users the full benefit
  209.    of features implemented by the IRC server.
  210.  
  211.  
  212.  
  213.  
  214.  
  215.  
  216.  
  217.  
  218.  
  219.  
  220. Brocklesby                Expires July 5, 2004                  [Page 4]
  221. Internet-Draft    IRC RPL_ISUPPORT Numeric Definition       January 2004
  222.  
  223.  
  224.    The ABNF grammar for the numeric is as follows:
  225.  
  226.      isupport = ":" servername SP "005" SP nickname SP
  227.                 1*13( token SP ) ":are supported by this server"
  228.  
  229.      token = *1"-" parameter / parameter *1( "=" value )
  230.      parameter = 1*20letter
  231.      value = *letpun
  232.      letter = ALPHA / DIGIT
  233.      punct = %d33-47 / %d58-64 / %d91-96 / %d123-126
  234.      letpun = letter / punct
  235.  
  236.    The format of the postfix descriptive text is not fixed, and may be
  237.    any string subject to the requirements of RFC 1459 [5] regarding
  238.    numeric replies.  Servername and nickname are as defined in RFC 1459
  239.    [5].
  240.  
  241.    The "servername" MUST be the name of the server to which the client
  242.    is connected;  the 005 numeric is never sent remotely across the
  243.    network. As with other local numerics, when delivered remotely it
  244.    MUST be converted into a 105 numeric before delivery to the client.
  245.  
  246.    A token is of the form "PARAMETER[=VALUE]" or "-PARAMETER". The forms
  247.    "X" and "X=" are identical;  they both define that the parameter is
  248.    present but has no value.  The server SHOULD send "X", not "X="; this
  249.    is the normalised form.
  250.  
  251.    The server MUST send the parameter in upper-case text; unless
  252.    otherwise stated, the parameter's value is case sensitive.
  253.  
  254.    The parameter's value may contain sequences of the form "\xHH", where
  255.    HH is a two-digit hexadecimal number.  Each such sequence is
  256.    considered identical to the equivalent octet after parsing of the
  257.    reply into separate tokens has occurred.
  258.  
  259.      [Example: X=A\x20B defines one token, "X", with the value "A B",
  260.       rather than two tokens "X" and "B".]
  261.      [Note: The literal string "\x" must therefore be encoded as
  262.       "\x5Cx".]
  263.  
  264.    If the server has not advertised a CHARSET parameter, it MUST not use
  265.    such sequences with a value outside those permitted by the above ABNF
  266.    grammar, with the exception of "\x20";  if it has advertised CHARSET,
  267.    then it may in addition send any printable character defined in that
  268.    encoding. Characters in multibyte encodings such as UTF-8 should be
  269.    sent as a series of \x sequences.
  270.  
  271.    RFC 1459 [5] defines a maximum of 15 parameters to any reply,
  272.  
  273.  
  274.  
  275. Brocklesby                Expires July 5, 2004                  [Page 5]
  276. Internet-Draft    IRC RPL_ISUPPORT Numeric Definition       January 2004
  277.  
  278.  
  279.    including the nickname and the text; therefore, only 13 capabilities
  280.    are possible per reply.
  281.  
  282.    In order to allow flexibility in the protocol, and future expansion,
  283.    the server may send more than one ISUPPORT reply per connection.  It
  284.    is RECOMMENDED that consecutive ISUPPORT replies are sent adjacent to
  285.    each other.  The client MUST support receiving multiple ISUPPORT
  286.    replies, and merge them to produce the final list of supported
  287.    protocol extensions.  It is RECOMMENDED that the server attempt to
  288.    send 13 tokens per line before sending multiple replies.
  289.  
  290.    On connection to the server, all parameters are assumed to be equal
  291.    to their default values, if any.  Unless later changed by the server,
  292.    this default value persists throughout the connection. Except as
  293.    explicitly stated in its definition, a parameter SHOULD NOT be sent
  294.    unless it changes this default value. The server MUST send an 005
  295.    reply after client registration but before any further client
  296.    commands are processed in order to resolve any ambiguities in
  297.    parameters with no default value.
  298.  
  299.    The form "-PARAMETER" is used to negate a previously specified
  300.    parameter; that is, revert to the behaviour that would occur if the
  301.    parameter had not been specified. This is intended to allow servers
  302.    to change their capabilities without disconnecting clients. Both
  303.    parameters with and without a value argument may be negated; however,
  304.    the value argument is not supplied.  It is not required to negate a
  305.    parameter in order to change its value, the server should merely
  306.    re-advertise the parameter with the new value.
  307.  
  308.    The server may negate tokens which have not been previously
  309.    advertised to the client; in this case, the client should ignore the
  310.    negation.
  311.  
  312.    The server may not advertise and negate the same parameter, nor
  313.    advertise the same parameter with different value specifiers, in the
  314.    same ISUPPORT numeric reply.  However, the server is free to
  315.    advertise or negate the same parameters in separate replies.
  316.  
  317.    The server MUST NOT negate a parameter which does not have a
  318.    meaningful default value.
  319.  
  320.      [Note: Implementations often change the value of a particular
  321.       parameter upon certain events, such as a successful OPER command
  322.       from a client. It is important that any relevant parameters be
  323.       (re)advertised when this occurs.]
  324.  
  325.  
  326.  
  327.  
  328.  
  329.  
  330. Brocklesby                Expires July 5, 2004                  [Page 6]
  331. Internet-Draft    IRC RPL_ISUPPORT Numeric Definition       January 2004
  332.  
  333.  
  334. 3. Currently defined parameters
  335.  
  336.    A number of parameters are currently used in the IRC community, and
  337.    it is believed to be beneficial to standardise these.  They are
  338.    listed below, with relevant information.
  339.  
  340.      [Note: It is intended and expected that future documents will
  341.       update and extend the set of defined parameters; this is not meant
  342.       to be an exhaustive list.]
  343.  
  344. 3.1 CASEMAPPING
  345.  
  346.    o  CASEMAPPING=string
  347.  
  348.    The CASEMAPPING parameter allows the server to specify which method
  349.    it uses to compare equality of case-insensitive strings. Possible
  350.    values are:
  351.  
  352.    o  "ascii": The ASCII characters 97 to 122 (decimal) are defined as
  353.       the lower-case characters of ASCII 65 to 90 (decimal).  No other
  354.       character equivalency is defined.
  355.    o  "rfc1459": The ASCII characters 97 to 126 (decimal) are defined as
  356.       the lower-case characters of ASCII 65 to 94 (decimal).  No other
  357.       character equivalency is defined.
  358.    o  "strict-rfc1459": The ASCII characters 97 to 125 (decimal) are
  359.       defined as the lower-case characters of ASCII 65 to 93 (decimal).
  360.       No other character equivalency is defined.
  361.  
  362.      [Note: The only difference between "rfc1459" and "strict-rfc1459"
  363.       is that the characters "~" and "^" are not considered equivalent
  364.       in the "strict-rfc1459" encoding.  This is believed to be an
  365.       mistake in the specification of character equivalency in RFC 1459
  366.       [5]; the majority of IRC server implementations known to the
  367.       author treat these characters as equivalent (however, see Section
  368.       4.5).]
  369.  
  370.    The CASEMAPPING token requires a value.
  371.  
  372.    The default value for CASEMAPPING is "rfc1459".  While this differs
  373.    from the historical definition in RFC 1459 [5], it is believed to
  374.    reflect current IRC server implementations, and is as such more
  375.    useful.
  376.  
  377. 3.2 CHANLIMIT
  378.  
  379.    o  CHANLIMIT=pfx:num[,pfx:num,...]
  380.  
  381.    This parameter specifies the maximum number of channels that a client
  382.  
  383.  
  384.  
  385. Brocklesby                Expires July 5, 2004                  [Page 7]
  386. Internet-Draft    IRC RPL_ISUPPORT Numeric Definition       January 2004
  387.  
  388.  
  389.    may join.  The value is a series of "pfx:num" pairs, where 'pfx'
  390.    refers to one or more channel prefix characters (as specified in
  391.    CHANTYPES), and 'num' indicates how many of these types of channel
  392.    the client may join in total. If there is no limit to the number of
  393.    certain channel type(s) a client may join, the limit should be
  394.    specified as the empty string, for example "#:".
  395.  
  396.      [Example: CHANLIMIT=#+:10,&: indicates that a client may join up to
  397.       10 '#' and '+' channels (for example, 7 '#' channels and 3 '+'
  398.       channels), and any number of '&' channels.]
  399.  
  400.    Clients on either this server or a remote server may be on more than
  401.    this number of channels; this parameter is only intended for
  402.    information on how many channels the client it is advertised to may
  403.    join.
  404.  
  405.    There is no default value for the CHANLIMIT token.
  406.  
  407.    The CHANLIMIT token requires a value.
  408.  
  409. 3.3 CHANMODES
  410.  
  411.    o  CHANMODES=A,B,C,D
  412.  
  413.    The CHANMODES token specifies the modes that may be set on a channel.
  414.    These modes are split into four categories, as follows:
  415.  
  416.    o  Type A: Modes that add or remove an address to or from a list.
  417.       These modes always take a parameter when sent by the server to a
  418.       client; when sent by a client, they may be specified without a
  419.       parameter, which requests the server to display the current
  420.       contents of the corresponding list on the channel to the client.
  421.    o  Type B: Modes that change a setting on the channel.  These modes
  422.       always take a parameter.
  423.    o  Type C: Modes that change a setting on the channel. These modes
  424.       take a parameter only when set; the parameter is absent when the
  425.       mode is removed both in the client's and server's MODE command.
  426.    o  Type D: Modes that change a setting on the channel. These modes
  427.       never take a parameter.
  428.  
  429.    If the server sends any additional types after these 4, the client
  430.    MUST ignore them; this is intended to allow future extension of this
  431.    token.
  432.  
  433.    The IRC server MUST NOT list modes in CHANMODES which are also
  434.    present in the PREFIX parameter; however, for completeness, modes
  435.    described in PREFIX may be treated as type B modes.
  436.  
  437.  
  438.  
  439.  
  440. Brocklesby                Expires July 5, 2004                  [Page 8]
  441. Internet-Draft    IRC RPL_ISUPPORT Numeric Definition       January 2004
  442.  
  443.  
  444.    If the server does not support any modes corresponding to a
  445.    particular type, it should advertise that type as the empty string.
  446.  
  447.      [Example: A server supporting no channel modes would advertise
  448.       "CHANMODES=,,,".]
  449.      [Example: CHANMODES=b,k,l,imnpst]
  450.  
  451.    The CHANMODES token requires a value.
  452.  
  453.    There is no default value for the CHANMODES token.
  454.  
  455. 3.4 CHANNELLEN
  456.  
  457.    o  CHANNELLEN=number
  458.  
  459.    The CHANNELLEN parameter specifies the maximum length of the name of
  460.    a channel that may be created by a client. The server may make known
  461.    to the client a channel with a name longer than that specified in
  462.    this value -- that is, the client must not depend on a channel's name
  463.    never being longer than this.
  464.  
  465.    The CHANNELLEN token does not require a value;  if none is given,
  466.    channel names are not limited in length.  If a value is given, it
  467.    must be numeric.
  468.  
  469.    The default value for CHANNELLEN is 200; this corresponds to RFC 1459
  470.    [5].
  471.  
  472. 3.5 CHANTYPES
  473.  
  474.    o  CHANTYPES=chars
  475.  
  476.    The CHANTYPES parameter specifies the valid characters to begin a
  477.    channel name.
  478.  
  479.      [Example: CHANTYPES=+#& defines that channels names may begin with
  480.       either +, #, or &; for example, #mychannel.]
  481.  
  482.    The default value for CHANTYPES is "CHANTYPES=#&", which corresponds
  483.    to RFC 1459 [5].  It SHOULD NOT be specified if the server supports
  484.    exactly these channel types.
  485.  
  486.    The CHANMODES parameter does not require a value;  if none is given,
  487.    the server does not support any channel types.
  488.  
  489. 3.6 EXCEPTS
  490.  
  491.  
  492.  
  493.  
  494.  
  495. Brocklesby                Expires July 5, 2004                  [Page 9]
  496. Internet-Draft    IRC RPL_ISUPPORT Numeric Definition       January 2004
  497.  
  498.  
  499.    o  EXCEPTS[=modechar]
  500.  
  501.    The EXCEPTS parameter indicates that the server supports "ban
  502.    exceptions" (channel mode +e), as defined in RFC 2811 [3], section
  503.    4.3.1. The optional value argument to EXCEPTS indicates which channel
  504.    mode is used for ban exceptions.  If the token is specified with no
  505.    value, it is assumed that mode +e is used.
  506.  
  507.    The default value for EXCEPTS is that channel exceptions are not
  508.    supported.
  509.  
  510. 3.7 IDCHAN
  511.  
  512.    o  IDCHAN=pfx:num[,pfx:num,...]
  513.  
  514.    The IDCHAN parameter indicates the existence of "safe" channels as
  515.    described in RFC 2811 [3], and the length of the "id" portion of
  516.    those channel names.
  517.  
  518.    Each mode:num pair indicates one or more channel name prefixes which
  519.    corresponds to a "safe" channel, and the length of the ID portion of
  520.    those channels' name.
  521.  
  522.      [Example: IDCHAN=!:5 means the client should expect IDs which are 5
  523.       characters in length on "!" channels; for example "!JNB4Sircd",
  524.       where "JNB4S" is the ID and "ircd" is the channel's short name.]
  525.  
  526.    The IDCHAN token requires a value.
  527.  
  528.    The default value for IDCHAN is no value;  that is, there are no
  529.    "safe" channel types.
  530.  
  531. 3.8 INVEX
  532.  
  533.    o  INVEX[=modechar]
  534.  
  535.    The INVEX parameter indicates that the server supports "invite
  536.    exceptions", as defined in RFC 2811 [3], section 4.3.2. The optional
  537.    value argument to INVEX indicates which channel mode is used for
  538.    invite exceptions.  If the token is specified with no value, it is
  539.    assumed that mode +I is used.
  540.  
  541.    The default value for INVEX is that channel invite exceptions are not
  542.    available.
  543.  
  544. 3.9 KICKLEN
  545.  
  546.  
  547.  
  548.  
  549.  
  550. Brocklesby                Expires July 5, 2004                 [Page 10]
  551. Internet-Draft    IRC RPL_ISUPPORT Numeric Definition       January 2004
  552.  
  553.  
  554.    o  KICKLEN=number
  555.  
  556.    The KICKLEN parameter specifies the maximum length of a KICK message
  557.    that a client may use.  Note that it only specifies the length the
  558.    client should send to the server -- the server may send KICK messages
  559.    with a length longer than this value.
  560.  
  561.    The KICKLEN token does not require a value;  if none is given, KICK
  562.    messages are not limited in length.  If a value is given, it must be
  563.    numeric.
  564.  
  565.    There is no default value for the KICKLEN token.
  566.  
  567. 3.10 MAXLIST
  568.  
  569.    o  MAXLIST=mode:num[,mode:num,...]
  570.  
  571.    This parameter specifies the maximum numbers of 'list modes' (type A
  572.    modes in CHANMODES) that a client may set on a channel at one time.
  573.    Note that this MUST only be interpreted as applying to new modes
  574.    which are set by clients -- it should not be used to infer the
  575.    maximum length of any mode lists returned by the server.
  576.  
  577.    The parameter is a series of mode-number pairs, each of which
  578.    specifies one or more type A modes, along with the maximum size of
  579.    the associated list for those modes.  Modes which are specified in
  580.    the same pair share the same maximum size.
  581.  
  582.      [Example: Given "b:25,eI:50", it would be possible to set up to 25
  583.       "+b" modes, and up to 50 of a combination of "+e" and "+I" modes,
  584.       e.g. 30 "+e" and 20 "+I" modes, making up a total of 50.]
  585.      [Example: MAXLIST=b:25 indicates that 25 bans may be set on a
  586.       channel at one time.]
  587.  
  588.    The MAXLIST token requires a value.
  589.  
  590.    There is no default value for the MAXLIST token.
  591.  
  592. 3.11 MODES
  593.  
  594.    o  MODES=number
  595.  
  596.    This parameter specifies the maximum number of "variable" modes which
  597.    may by set on a channel by a single MODE command from a client. A
  598.    "variable" mode is defined as being type A, B and C modes as defined
  599.    for CHANMODES, and channel modes specified in the PREFIX parameter.
  600.  
  601.  
  602.  
  603.  
  604.  
  605. Brocklesby                Expires July 5, 2004                 [Page 11]
  606. Internet-Draft    IRC RPL_ISUPPORT Numeric Definition       January 2004
  607.  
  608.  
  609.      [Example: MODES=3 indicates that 3 modes may be set with a MODE
  610.       command.]
  611.  
  612.    The value of MODES does not limit the number of modes in a MODE
  613.    command which is sent from the server to the client;  the client MUST
  614.    NOT rely on this being the case.
  615.  
  616.    The default value for the MODES parameter is 3, which corresponds to
  617.    RFC 1459 [5].
  618.  
  619.    The MODES token does not require a value;  if none is given, the
  620.    number of modes which may be set in one command is not limited.  If a
  621.    value is given, it must be numeric.
  622.  
  623. 3.12 NETWORK
  624.  
  625.    o  NETWORK=name
  626.  
  627.    The NETWORK parameter defines the name of the IRC network that the
  628.    client is connected to.
  629.  
  630.      [Example: NETWORK=EFnet indicates that the client is connected to
  631.       the EFnet IRC network.]
  632.  
  633.    Note that this parameter is intended only for user display purposes;
  634.    the client SHOULD NOT assume further capabilities or features of the
  635.    IRC server based on the value of the NETWORK parameter.
  636.  
  637.    The NETWORK token requires a value.
  638.  
  639.    The default value of the NETWORK token is no value;  that is, the
  640.    network does not have a name specified.
  641.  
  642. 3.13 NICKLEN
  643.  
  644.    o  NICKLEN=number
  645.  
  646.    This parameter specifies the maximum nickname length that the client
  647.    may use in a nickname.
  648.  
  649.      [Example: NICKLEN=9 indicates that clients may have nicknames up to
  650.       9 characters in length.]
  651.  
  652.    This parameter does not restrict the length of any nicknames other
  653.    clients on the network may use.
  654.  
  655.    The NICKLEN token requires a numeric value.
  656.  
  657.  
  658.  
  659.  
  660. Brocklesby                Expires July 5, 2004                 [Page 12]
  661. Internet-Draft    IRC RPL_ISUPPORT Numeric Definition       January 2004
  662.  
  663.  
  664.    The default value for NICKLEN is 9, which corresponds to RFC 1459
  665.    [5].
  666.  
  667. 3.14 PREFIX
  668.  
  669.    o  PREFIX=[(modes)prefixes]
  670.  
  671.    The PREFIX parameter specifies a list of channel status flags (the
  672.    "modes" section) that clients may have on channels, followed by a
  673.    mapping to the equivalent channel status flags ("prefixes"), which
  674.    are used in NAMES and WHO replies.  There is a one to one mapping
  675.    between each mode and prefix.
  676.  
  677.    The order of the modes is from that which gives most privileges on
  678.    the channel, to that which gives the least.
  679.  
  680.      [Example: (ab)&* maps the channel mode 'a' to the channel status
  681.       flag '&', and channel mode 'b' to the channel status flag '*'.]
  682.  
  683.      [Example: PREFIX=(ohv)@%+ maps channel mode 'o' to status '@', 'h'
  684.       to status '%', and 'v' to status +.
  685.  
  686.    The default value for PREFIX is "PREFIX=(ov)@+", which corresponds to
  687.    RFC 1459 [5]. It SHOULD NOT be specified if the server provides only
  688.    these modes.  If a server provides ANY additional status flags, it
  689.    MUST also provide (ov)@+ (assuming they are applicable to the
  690.    server). The PREFIX parameter may be advertised with a null value
  691.    specifier; this indicates that no prefixes are supported by the IRC
  692.    server.
  693.  
  694.    Note that PREFIX does NOT specify whether or not the server sends
  695.    multiple prefix characters for a user in NAMES replies.
  696.  
  697. 3.15 SAFELIST
  698.  
  699.    o  SAFELIST
  700.  
  701.    The SAFELIST parameter indicates that the client may request a "LIST"
  702.    command from the server, without being disconnected due to the large
  703.    amount of data generated by the command.
  704.  
  705.    The SAFELIST token must not be specified with a value.
  706.  
  707.    The default value for the SAFELIST token is none;  that is, the
  708.    client may not safely request a LIST command.
  709.  
  710.  
  711.  
  712.  
  713.  
  714.  
  715. Brocklesby                Expires July 5, 2004                 [Page 13]
  716. Internet-Draft    IRC RPL_ISUPPORT Numeric Definition       January 2004
  717.  
  718.  
  719. 3.16 STATUSMSG
  720.  
  721.    o  STATUSMSG=string
  722.  
  723.    The server supports a method of sending a NOTICE message to only
  724.    those people on a channel with the specified status.  This is done
  725.    via a NOTICE command, with the channel prefixed by the desired status
  726.    flag as the target.
  727.  
  728.      [Example: NOTICE @#channel :Hi there]
  729.  
  730.    The server should deliver the message to all users on the specified
  731.    channel with equal or higher status on the channel as the status flag
  732.    indicates.
  733.  
  734.      [Example: STATUSMSG=@+ indicates that "@#channel" and "+#channel"
  735.       would be valid targets. A message to "+#channel" would deliver the
  736.       message to all users with voice and channel operator privileges on
  737.       #channel, assuming that the server supported the PREFIX value
  738.       (ov)@+.]
  739.  
  740.    The required value argument to STATUSMSG indicates which prefixes
  741.    (from the PREFIX parameter) are valid status values for use in NOTICE
  742.    commands.
  743.  
  744.    The server MUST NOT advertise a character in STATUSMSG which is also
  745.    present in CHANTYPES.
  746.  
  747.    The STATUSMSG token requires a value.
  748.  
  749.    The default value of the STATUSMSG token is none;  that is, the
  750.    server does not support this form of messaging.
  751.  
  752. 3.17 STD
  753.  
  754.    o  STD=version[,version[,...]]
  755.  
  756.    The STD parameter indicates which form(s) of the ISUPPORT numeric are
  757.    used by the server.  Currently, one only possible value is defined;
  758.    that is "rfcnnnn", which refers to this document.
  759.  
  760.      [Note: To be changed by the RFC Editor before publication.]
  761.  
  762.    The STD parameter is intended to be extensible, so that if later
  763.    standards emerge which update this document, the server may be able
  764.    to advertise this.  The "version" string is free-form subject to the
  765.    requirements in section ABNF, however, protocol updates defined in
  766.    RFCs should be named "rfcxxxx", where "xxxx" is the relevant RFC
  767.  
  768.  
  769.  
  770. Brocklesby                Expires July 5, 2004                 [Page 14]
  771. Internet-Draft    IRC RPL_ISUPPORT Numeric Definition       January 2004
  772.  
  773.  
  774.    number.
  775.  
  776.    A server may support any number of STD versions. However, new version
  777.    strings MUST NOT be added unless there is an ambiguity between two
  778.    tokens defined with different meanings in two different standards. It
  779.    is expected that most new features may be advertised simply by
  780.    additional parameters, in which case a new version string is not
  781.    required.
  782.  
  783.    The STD token MUST be the first token advertised by the server upon
  784.    connection.
  785.  
  786.    The STD token requires a value.
  787.  
  788.    The default value for the STD parameter is none; that is, no
  789.    standardised ISUPPORT is available.
  790.  
  791. 3.18 TARGMAX
  792.  
  793.    o  TARGMAX=[cmd:lim,cmd:lim...]
  794.  
  795.    The TARGMAX parameter specifies the maximum number of targets
  796.    allowable for commands which accept multiple targets.  It consists of
  797.    a series of cmd:lim pairs, where each command 'cmd' allows up to
  798.    'lim' targets (generally either channels or nicks).  In the case of
  799.    the KICK command, the limit indicates the maximum number of (user,
  800.    channel) pairs which may be specified in any one KICK command.
  801.  
  802.      [Example: TARGMAX=PRIVMSG:4,NOTICE:3 would allow "PRIVMSG A,B,C,D
  803.       :message" and "NOTICE A,B,C :message", but not "PRIVMSG A,B,C,D,E
  804.       :message" or "NOTICE A,B,C,D :message".]
  805.  
  806.    If no argument is given for a particular command (e.g. "WHOIS:"),
  807.    that command does not have a limit on the number of targets.
  808.  
  809.    The server MUST specify all commands available to the user which
  810.    support multiple targets.
  811.  
  812.    The default value of TARGMAX is that no commands allow multiple
  813.    targets. If this is the case, the server SHOULD NOT specify
  814.    "TARGMAX=".
  815.  
  816. 3.19 TOPICLEN
  817.  
  818.    o  TOPICLEN=number
  819.  
  820.    The TOPICLEN parameter specifies the maximum length of the topic
  821.    specified in the TOPIC command for a channel.  Note that it only
  822.  
  823.  
  824.  
  825. Brocklesby                Expires July 5, 2004                 [Page 15]
  826. Internet-Draft    IRC RPL_ISUPPORT Numeric Definition       January 2004
  827.  
  828.  
  829.    specifies the length of topic that may be set -- the server is free
  830.    to return topics longer than this length to the client.
  831.  
  832.    The TOPICLEN token does not require a value;  if none is given, the
  833.    length of channel topics is not limited.
  834.  
  835.    The TOPICLEN token requires a numeric value.
  836.  
  837. 4. Differences to existing implementations
  838.  
  839.    A number of differences exist between the ISUPPORT defined in this
  840.    document and traditional implementations of the ISUPPORT numeric.
  841.  
  842. 4.1 PREFIX parameter without value
  843.  
  844.    The PREFIX parameter is traditionally not sent without a value
  845.    parameter; indeed, the author is not aware of any IRC server
  846.    implementations where this would be appropriate. However, it is
  847.    believed that this support is desired to allow extra flexibility,
  848.    while retaining compatibility with traditional PREFIX
  849.    implementations.
  850.  
  851. 4.2 EXCEPTS and INVEX value argument
  852.  
  853.    EXCEPTS and INVEX traditionally take no argument -- while they
  854.    indicate presence of these features on the server, they do not
  855.    specify the channel mode which is associated with these features. It
  856.    is believed that the argument value described here provides extra
  857.    flexibility while retaining backwards compatibility.
  858.  
  859. 4.3 STATUSMSG / WALLCHOPS
  860.  
  861.    The STATUSMSG parameter replaces the traditional WALLCHOPS parameter
  862.    used by some current implementations.  It is believed that the name
  863.    STATUSMSG better reflects the functionality; since the argument to
  864.    STATUSMSG is not optional, it would break backwards compatibility to
  865.    use the name WALLCHOPS. It was not considered beneficial to allow a
  866.    STATUSMSG flag without a value.
  867.  
  868. 4.4 Conflicts with RFC 2812
  869.  
  870.    RFC 2812 [4], section 5.1, defines a numeric reply "RPL_BOUNCE", with
  871.    the associated number "005".  While this conflicts with the ISUPPORT
  872.    numeric, it is considered that ISUPPORT has received much more
  873.    widespread support, and is the de facto standard for use of the 005
  874.    numeric.  The only server implementation known to use this numeric
  875.    has now changed it to 010.
  876.  
  877.  
  878.  
  879.  
  880. Brocklesby                Expires July 5, 2004                 [Page 16]
  881. Internet-Draft    IRC RPL_ISUPPORT Numeric Definition       January 2004
  882.  
  883.  
  884.    RFC2812 is an Informational RFC and does not not specify an Internet
  885.    standard.
  886.  
  887. 4.5 Default value for CASEMAPPING
  888.  
  889.    The default value for CASEMAPPING ("rfc1459") was chosen because it
  890.    reflects the prevailing implementations of the IRC server software
  891.    currently in use. While some IRC servers have moved to the "ascii"
  892.    case mapping, those known to the author indicate this via
  893.    CASEMAPPING=ascii; therefore this is not believed to introduce any
  894.    compatibility problems.
  895.  
  896. 4.6 CHANLIMIT / MAXCHANNELS
  897.  
  898.    CHANLIMIT replaces the traditional MAXCHANNELS parameter. MAXCHANNELS
  899.    did not specify which types of channel(s) the limit applied to; many
  900.    server implementation did not apply the limit to server-local "&"
  901.    channels, for example.  The token was renamed from MAXCHANNELS to
  902.    CHANLIMIT to prevent confusion.
  903.  
  904. 4.7 MAXLIST / MAXBANS
  905.  
  906.    MAXLIST replaces the traditional MAXBANS token.  MAXBANS was
  907.    considered non-useful, because of its ambiguous meaning; two of the
  908.    largest IRC networks, for example, could not agree whether
  909.    "MAXBANS=x" was equivalent to "MAXLIST=beI:x" or
  910.    "MAXLIST=b:x,e:x,I:x". MAXLIST is also considerably more flexible;
  911.    to standardise either of the described behaviours for MAXBANS would
  912.    leave some IRC servers unable to accurately describe their
  913.    capabilities.
  914.  
  915. 4.8 CHARSET
  916.  
  917.    The traditional CHARSET parameter has been entirely removed.  It was
  918.    found to be unworkable;  a correct specification could not be devised
  919.    to represent its meaning across implementations.  Several other
  920.    methods to implement the same functionality are under discussion but
  921.    are outside the scope of this document.
  922.  
  923. 4.9 TARGMAX / MAXTARGETS
  924.  
  925.    Traditional implementations use MAXTARGETS instead of TARGMAX.
  926.    However, TARGMAX allowed several commands to be specified (such as
  927.    WHOIS and KICK) whereas MAXTARGETS only applies to channels.  TARGMAX
  928.    is also more extendable to cope with future changes.
  929.  
  930.  
  931.  
  932.  
  933.  
  934.  
  935. Brocklesby                Expires July 5, 2004                 [Page 17]
  936. Internet-Draft    IRC RPL_ISUPPORT Numeric Definition       January 2004
  937.  
  938.  
  939. 5. Security Considerations
  940.  
  941.    This memo does not raise any security considerations.
  942.  
  943. Normative References
  944.  
  945.    [1]  Bradner, S., "Key words for use in RFCs to Indicate Requirement
  946.         Levels", RFC 2119, March 1997.
  947.  
  948.    [2]  Crocker, D. and P. Overell, "Augumented BNF for Syntax
  949.         Specifications: ABNF", RFC 2234, November 1997.
  950.  
  951.    [3]  Kalt, C., "Internet Relay Chat: Channel Management", RFC 2811,
  952.         April 2000.
  953.  
  954.    [4]  Kalt, C., "Internet Relay Chat: Client Protocol", RFC 2812,
  955.         April 2000.
  956.  
  957.    [5]  Reed, D. and J. Oikarinen, "Internet Relay Chat Protocol", RFC
  958.         1459, May 1993.
  959.  
  960. Informative references
  961.  
  962.    [6]  Roeckx, K., "The 005 numeric", September 2002.
  963.  
  964.  
  965. Author's Address
  966.  
  967.    Edward Brocklesby
  968.    57 Williamson Way
  969.    Oxford, Oxon  OX4 4TU
  970.    GB
  971.  
  972.    EMail: ejb@goth.net
  973.  
  974. Appendix A. Default ISUPPORT values
  975.  
  976.    As an aid to implementation, a standard ISUPPORT reply with all
  977.    values which may be assumed to be at their defaults upon connection
  978.    is supplied here (lines broken due to formatting requirements).
  979.  
  980.  
  981.        :irc.example.com 005 nickname :CASEMAPPING=rfc1459 CHANNELLEN=200
  982.            CHANTYPES=#& MODES=3 NICKLEN=9 PREFIX=(ov)@+ TARGMAX
  983.  
  984.    In addition, the server must provide values for the following
  985.    parameters: CHANLIMIT, CHANMODES, KICKLEN, MAXLIST, STD, TOPICLEN.
  986.  
  987.  
  988.  
  989.  
  990. Brocklesby                Expires July 5, 2004                 [Page 18]
  991. Internet-Draft    IRC RPL_ISUPPORT Numeric Definition       January 2004
  992.  
  993.  
  994. Appendix B. Acknowledgements
  995.  
  996.    The author gratefully acknowledges the contributions of Bill Fenner
  997.    ("fenestro"), Perry Lorier ("Isomer"), Kurt Roeckx ("Q") and John
  998.    Midgley ("CrazyEddy") in the preparation of this document.
  999.  
  1000.    This document is heavily based on a previous document entitled "The
  1001.    005 numeric".
  1002.  
  1003.  
  1004.  
  1005.  
  1006.  
  1007.  
  1008.  
  1009.  
  1010.  
  1011.  
  1012.  
  1013.  
  1014.  
  1015.  
  1016.  
  1017.  
  1018.  
  1019.  
  1020.  
  1021.  
  1022.  
  1023.  
  1024.  
  1025.  
  1026.  
  1027.  
  1028.  
  1029.  
  1030.  
  1031.  
  1032.  
  1033.  
  1034.  
  1035.  
  1036.  
  1037.  
  1038.  
  1039.  
  1040.  
  1041.  
  1042.  
  1043.  
  1044.  
  1045. Brocklesby                Expires July 5, 2004                 [Page 19]
  1046. Internet-Draft    IRC RPL_ISUPPORT Numeric Definition       January 2004
  1047.  
  1048.  
  1049. Intellectual Property Statement
  1050.  
  1051.    The IETF takes no position regarding the validity or scope of any
  1052.    intellectual property or other rights that might be claimed to
  1053.    pertain to the implementation or use of the technology described in
  1054.    this document or the extent to which any license under such rights
  1055.    might or might not be available; neither does it represent that it
  1056.    has made any effort to identify any such rights. Information on the
  1057.    IETF's procedures with respect to rights in standards-track and
  1058.    standards-related documentation can be found in BCP-11. Copies of
  1059.    claims of rights made available for publication and any assurances of
  1060.    licenses to be made available, or the result of an attempt made to
  1061.    obtain a general license or permission for the use of such
  1062.    proprietary rights by implementors or users of this specification can
  1063.    be obtained from the IETF Secretariat.
  1064.  
  1065.    The IETF invites any interested party to bring to its attention any
  1066.    copyrights, patents or patent applications, or other proprietary
  1067.    rights which may cover technology that may be required to practice
  1068.    this standard. Please address the information to the IETF Executive
  1069.    Director.
  1070.  
  1071.  
  1072. Full Copyright Statement
  1073.  
  1074.    Copyright (C) The Internet Society (2004). All Rights Reserved.
  1075.  
  1076.    This document and translations of it may be copied and furnished to
  1077.    others, and derivative works that comment on or otherwise explain it
  1078.    or assist in its implementation may be prepared, copied, published
  1079.    and distributed, in whole or in part, without restriction of any
  1080.    kind, provided that the above copyright notice and this paragraph are
  1081.    included on all such copies and derivative works. However, this
  1082.    document itself may not be modified in any way, such as by removing
  1083.    the copyright notice or references to the Internet Society or other
  1084.    Internet organizations, except as needed for the purpose of
  1085.    developing Internet standards in which case the procedures for
  1086.    copyrights defined in the Internet Standards process must be
  1087.    followed, or as required to translate it into languages other than
  1088.    English.
  1089.  
  1090.    The limited permissions granted above are perpetual and will not be
  1091.    revoked by the Internet Society or its successors or assignees.
  1092.  
  1093.    This document and the information contained herein is provided on an
  1094.    "AS IS" basis and THE INTERNET SOCIETY AND THE INTERNET ENGINEERING
  1095.    TASK FORCE DISCLAIMS ALL WARRANTIES, EXPRESS OR IMPLIED, INCLUDING
  1096.    BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE INFORMATION
  1097.  
  1098.  
  1099.  
  1100. Brocklesby                Expires July 5, 2004                 [Page 20]
  1101. Internet-Draft    IRC RPL_ISUPPORT Numeric Definition       January 2004
  1102.  
  1103.  
  1104.    HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED WARRANTIES OF
  1105.    MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.
  1106.  
  1107.  
  1108. Acknowledgment
  1109.  
  1110.    Funding for the RFC Editor function is currently provided by the
  1111.    Internet Society.
  1112.  
  1113.  
  1114.  
  1115.  
  1116.  
  1117.  
  1118.  
  1119.  
  1120.  
  1121.  
  1122.  
  1123.  
  1124.  
  1125.  
  1126.  
  1127.  
  1128.  
  1129.  
  1130.  
  1131.  
  1132.  
  1133.  
  1134.  
  1135.  
  1136.  
  1137.  
  1138.  
  1139.  
  1140.  
  1141.  
  1142.  
  1143.  
  1144.  
  1145.  
  1146.  
  1147.  
  1148.  
  1149.  
  1150.  
  1151.  
  1152.  
  1153.  
  1154.  
  1155. Brocklesby                Expires July 5, 2004                 [Page 21]

Submit a correction or amendment below (click here to make a fresh posting)
After submitting an amendment, you'll be able to view the differences between the old and new posts easily.

Syntax highlighting:

To highlight particular lines, prefix each line with {%HIGHLIGHT}




All content is user-submitted.
The administrators of this site (kpaste.net) are not responsible for their content.
Abuse reports should be emailed to us at