Internet DRAFT - draft-meglio-irc-preconn-umodes

draft-meglio-irc-preconn-umodes







Network Working Group                                          D. Meglio
Internet-Draft                                                UnrealIRCd
Expires: February 20, 2006                               August 19, 2005


Simple Extension to the IRC Protocol for Pre-Connection Usermode Setting
                   draft-meglio-irc-preconn-umodes-00

Status of this Memo

   By submitting this Internet-Draft, each author represents that any
   applicable patent or other IPR claims of which he or she is aware
   have been or will be disclosed, and any of which he or she becomes
   aware will be disclosed, in accordance with Section 6 of BCP 79.

   Internet-Drafts are working documents of the Internet Engineering
   Task Force (IETF), its areas, and its working groups.  Note that
   other groups may also distribute working documents as Internet-
   Drafts.

   Internet-Drafts are draft documents valid for a maximum of six months
   and may be updated, replaced, or obsoleted by other documents at any
   time.  It is inappropriate to use Internet-Drafts as reference
   material or to cite them other than as "work in progress."

   The list of current Internet-Drafts can be accessed at
   http://www.ietf.org/ietf/1id-abstracts.txt.

   The list of Internet-Draft Shadow Directories can be accessed at
   http://www.ietf.org/shadow.html.

   This Internet-Draft will expire on February 20, 2006.

Copyright Notice

   Copyright (C) The Internet Society (2005).

Abstract

   RFC2812 introduced the ability to set certain usermodes before
   connection has occurred via a simple extension to the USER command.
   However, this implementation is believed to be excessively limiting.
   The RFC2812 implementation only allows a limited number of modes (+i
   and +w) to be set.  Modern IRC servers provide many more modes and a
   method is necessary to set these modes at the pre-connection stage.

   Therefore, this specification introduces a method to allow users to
   set arbitrary usermodes at the pre-connection stage while maintaining



Meglio                  Expires February 20, 2006               [Page 1]

Internet-Draft               Pre-Conn Umode                  August 2005


   backward compatibility with RFC2812.

Requirements Language

   The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
   "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this
   document are to be interpreted as described in RFC 2119 [RFC2119].


Table of Contents

   1.    Introduction . . . . . . . . . . . . . . . . . . . . . . . .  3

   2.    USER Message Extension . . . . . . . . . . . . . . . . . . .  4

   3.    Security Considerations  . . . . . . . . . . . . . . . . . .  5

   4.    IANA Considerations  . . . . . . . . . . . . . . . . . . . .  6

   5.    Acknowledgements . . . . . . . . . . . . . . . . . . . . . .  7

   6.    References . . . . . . . . . . . . . . . . . . . . . . . . .  8
   6.1.  Normative References . . . . . . . . . . . . . . . . . . . .  8
   6.2.  Informative References . . . . . . . . . . . . . . . . . . .  8

         Author's Address . . . . . . . . . . . . . . . . . . . . . .  9
         Intellectual Property and Copyright Statements . . . . . . . 10
























Meglio                  Expires February 20, 2006               [Page 2]

Internet-Draft               Pre-Conn Umode                  August 2005


1.  Introduction

   The method defined in RFC2812 for specifying usermodes in the USER
   command is limited and flawed.  To begin with, it violates a
   significant rule of programming practice: external interfaces should
   not rely on internal implementations.  RFC2812 states that the mode
   parameter of the USER command is a bitflag value with each bit
   representing a specific mode.  This indicates that the client must
   have knowledge of the internal workings of the server.  This should
   not be the case.  It is quite possible that a particular IRC
   implementation has decided to implement modes in a manner that does
   not rely on bitflags.  Secondly, it is limited to only the +i and +w
   modes.  While this may be fine for servers that strictly conform to
   RFC2812, the original IRC specification, RFC1459, states that
   additional usermodes may be added (See RFC1459 Section 4.2.3.2
   [RFC1459]).  Hence, to support these new modes, a more robust method
   of pre-connection mode setting is necessary.


































Meglio                  Expires February 20, 2006               [Page 3]

Internet-Draft               Pre-Conn Umode                  August 2005


2.  USER Message Extension

   As defined in RFC2812 Section 3.1.3 [RFC2812], the syntax for the
   USER message is as follows:
   USER SP <user> SP <mode> SP <unused> SP <realname>

   As previously stated, the <mode> parameter is a bitflag.  The value
   of this flag must be an integer (bitflag) with bits 2 and 3 being
   significant.  This extension modifies the mode parameter to the
   following as defined in ABNF Syntax [RFC2234]:
        mode  = "4"/"8"/"12"       ; RFC2812 style mode setting
        mode /= "+" modecharacters ; Extended style mode setting
        modecharacters             ; See RFC1459 Section 4.2.3.2
                                   ; and RFC2812 Section 3.1.5

   With the latter definition of mode, any arbitrary mode may be set.
   In order to determine whether the modes were set successfully, after
   the connection sequences has been completed, the user SHOULD issue a
   MODE command to determine the modes that are currently enabled.  See
   the Security Considerations for information on ensuring the security
   of this extension.

   Examples:
   USER foo 8 unused :My Name is Foo   ; Using the RFC2812 style to
                                       ; set +i
   USER foo +i unused :My Name is Foo  ; Using the new style mode
                                       ; parameter to do the same

   This allows new modes to be added to the IRC protocol with the
   ability to be set in the pre-connection phase.





















Meglio                  Expires February 20, 2006               [Page 4]

Internet-Draft               Pre-Conn Umode                  August 2005


3.  Security Considerations

   Care must be taken by the implementors to ensure that only modes that
   a user should have access to set are settable.  For example, if a
   user attempts to specify the +o usermode, the server MUST ignore this
   as it could be a potential security breach otherwise.  For the most
   part, the same security practices in place for post-connection mode
   setting should be used for pre-connection mode setting.











































Meglio                  Expires February 20, 2006               [Page 5]

Internet-Draft               Pre-Conn Umode                  August 2005


4.  IANA Considerations

   This document has no actions for IANA.
















































Meglio                  Expires February 20, 2006               [Page 6]

Internet-Draft               Pre-Conn Umode                  August 2005


5.  Acknowledgements

   I would like to take the time to acknowledge the hard work and
   dedication of all of those people who have spent countless hours
   making IRC the feature rich communication medium that it is today and
   who receive little or nothing in return.













































Meglio                  Expires February 20, 2006               [Page 7]

Internet-Draft               Pre-Conn Umode                  August 2005


6.  References

6.1.  Normative References

   [RFC1459]  Oikarinen, J. and D. Reed, "Internet Relay Chat Protocol",
              RFC 1459, May 1993.

   [RFC2119]  Bradner, S., "Key words for use in RFCs to Indicate
              Requirement Levels", BCP 14, RFC 2119, March 1997.

   [RFC2234]  Crocker, D., Ed. and P. Overell, "Augmented BNF for Syntax
              Specifications: ABNF", RFC 2234, November 1997.

   [RFC2812]  Kalt, C., "Internet Relay Chat: Client Protocol",
              RFC 2812, April 2000.

6.2.  Informative References

   [RFC2629]  Rose, M., "Writing I-Ds and RFCs using XML", RFC 2629,
              June 1999.































Meglio                  Expires February 20, 2006               [Page 8]

Internet-Draft               Pre-Conn Umode                  August 2005


Author's Address

   Dominick Meglio
   UnrealIRCd

   Email: dmeglio@codemastr.com













































Meglio                  Expires February 20, 2006               [Page 9]

Internet-Draft               Pre-Conn Umode                  August 2005


Intellectual Property Statement

   The IETF takes no position regarding the validity or scope of any
   Intellectual Property Rights or other rights that might be claimed to
   pertain to the implementation or use of the technology described in
   this document or the extent to which any license under such rights
   might or might not be available; nor does it represent that it has
   made any independent effort to identify any such rights.  Information
   on the procedures with respect to rights in RFC documents can be
   found in BCP 78 and BCP 79.

   Copies of IPR disclosures made to the IETF Secretariat and any
   assurances of licenses to be made available, or the result of an
   attempt made to obtain a general license or permission for the use of
   such proprietary rights by implementers or users of this
   specification can be obtained from the IETF on-line IPR repository at
   http://www.ietf.org/ipr.

   The IETF invites any interested party to bring to its attention any
   copyrights, patents or patent applications, or other proprietary
   rights that may cover technology that may be required to implement
   this standard.  Please address the information to the IETF at
   ietf-ipr@ietf.org.


Disclaimer of Validity

   This document and the information contained herein are provided on an
   "AS IS" basis and THE CONTRIBUTOR, THE ORGANIZATION HE/SHE REPRESENTS
   OR IS SPONSORED BY (IF ANY), THE INTERNET SOCIETY AND THE INTERNET
   ENGINEERING TASK FORCE DISCLAIM ALL WARRANTIES, EXPRESS OR IMPLIED,
   INCLUDING BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE
   INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED
   WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.


Copyright Statement

   Copyright (C) The Internet Society (2005).  This document is subject
   to the rights, licenses and restrictions contained in BCP 78, and
   except as set forth therein, the authors retain all their rights.


Acknowledgment

   Funding for the RFC Editor function is currently provided by the
   Internet Society.




Meglio                  Expires February 20, 2006              [Page 10]