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]