1178 lines
38 KiB
Plaintext
1178 lines
38 KiB
Plaintext
|
|
|||
|
|
|||
|
|
|||
|
Network Working Group C. Daboo
|
|||
|
Request for Comments: 5464 Apple, Inc.
|
|||
|
Category: Standards Track February 2009
|
|||
|
|
|||
|
|
|||
|
The IMAP METADATA Extension
|
|||
|
|
|||
|
Status of This Memo
|
|||
|
|
|||
|
This document specifies an Internet standards track protocol for the
|
|||
|
Internet community, and requests discussion and suggestions for
|
|||
|
improvements. Please refer to the current edition of the "Internet
|
|||
|
Official Protocol Standards" (STD 1) for the standardization state
|
|||
|
and status of this protocol. Distribution of this memo is unlimited.
|
|||
|
|
|||
|
Abstract
|
|||
|
|
|||
|
The METADATA extension to the Internet Message Access Protocol
|
|||
|
permits clients and servers to maintain "annotations" or "metadata"
|
|||
|
on IMAP servers. It is possible to have annotations on a per-mailbox
|
|||
|
basis or on the server as a whole. For example, this would allow
|
|||
|
comments about the purpose of a particular mailbox to be "attached"
|
|||
|
to that mailbox, or a "message of the day" containing server status
|
|||
|
information to be made available to anyone logging in to the server.
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
Daboo Standards Track [Page 1]
|
|||
|
|
|||
|
RFC 5464 The IMAP METADATA Extension February 2009
|
|||
|
|
|||
|
|
|||
|
Table of Contents
|
|||
|
|
|||
|
1. Introduction and Overview . . . . . . . . . . . . . . . . . . 3
|
|||
|
2. Conventions Used in This Document . . . . . . . . . . . . . . 3
|
|||
|
3. Data Model . . . . . . . . . . . . . . . . . . . . . . . . . . 4
|
|||
|
3.1. Overview . . . . . . . . . . . . . . . . . . . . . . . . . 4
|
|||
|
3.2. Namespace of Entries . . . . . . . . . . . . . . . . . . . 4
|
|||
|
3.2.1. Entry Names . . . . . . . . . . . . . . . . . . . . . 5
|
|||
|
3.3. Private versus Shared and Access Control . . . . . . . . . 6
|
|||
|
4. IMAP Protocol Changes . . . . . . . . . . . . . . . . . . . . 7
|
|||
|
4.1. General Considerations . . . . . . . . . . . . . . . . . . 7
|
|||
|
4.2. GETMETADATA Command . . . . . . . . . . . . . . . . . . . 8
|
|||
|
4.2.1. MAXSIZE GETMETADATA Command Option . . . . . . . . . . 9
|
|||
|
4.2.2. DEPTH GETMETADATA Command Option . . . . . . . . . . . 10
|
|||
|
4.3. SETMETADATA Command . . . . . . . . . . . . . . . . . . . 10
|
|||
|
4.4. METADATA Response . . . . . . . . . . . . . . . . . . . . 12
|
|||
|
4.4.1. METADATA Response with Values . . . . . . . . . . . . 13
|
|||
|
4.4.2. Unsolicited METADATA Response without Values . . . . . 13
|
|||
|
5. Formal Syntax . . . . . . . . . . . . . . . . . . . . . . . . 14
|
|||
|
6. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 16
|
|||
|
6.1. Entry and Attribute Registration Template . . . . . . . . 16
|
|||
|
6.2. Server Entry Registrations . . . . . . . . . . . . . . . . 16
|
|||
|
6.2.1. /shared/comment . . . . . . . . . . . . . . . . . . . 17
|
|||
|
6.2.2. /shared/admin . . . . . . . . . . . . . . . . . . . . 17
|
|||
|
6.3. Mailbox Entry Registrations . . . . . . . . . . . . . . . 17
|
|||
|
6.3.1. /shared/comment . . . . . . . . . . . . . . . . . . . 18
|
|||
|
6.3.2. /private/comment . . . . . . . . . . . . . . . . . . . 18
|
|||
|
7. Security Considerations . . . . . . . . . . . . . . . . . . . 18
|
|||
|
8. Normative References . . . . . . . . . . . . . . . . . . . . . 19
|
|||
|
Appendix A. Acknowledgments . . . . . . . . . . . . . . . . . . . 19
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
Daboo Standards Track [Page 2]
|
|||
|
|
|||
|
RFC 5464 The IMAP METADATA Extension February 2009
|
|||
|
|
|||
|
|
|||
|
1. Introduction and Overview
|
|||
|
|
|||
|
The goal of the METADATA extension is to provide a means for clients
|
|||
|
to set and retrieve "annotations" or "metadata" on an IMAP server.
|
|||
|
The annotations can be associated with specific mailboxes or the
|
|||
|
server as a whole. The server can choose to support only server
|
|||
|
annotations or both server and mailbox annotations.
|
|||
|
|
|||
|
A server that supports both server and mailbox annotations indicates
|
|||
|
the presence of this extension by returning "METADATA" as one of the
|
|||
|
supported capabilities in the CAPABILITY command response.
|
|||
|
|
|||
|
A server that supports only server annotations indicates the presence
|
|||
|
of this extension by returning "METADATA-SERVER" as one of the
|
|||
|
supported capabilities in the CAPABILITY command response.
|
|||
|
|
|||
|
A server that supports unsolicited annotation change responses MUST
|
|||
|
support the "ENABLE" [RFC5161] extension to allow clients to turn
|
|||
|
that feature on.
|
|||
|
|
|||
|
The METADATA extension adds two new commands and one new untagged
|
|||
|
response to the IMAP base protocol.
|
|||
|
|
|||
|
This extension makes the following changes to the IMAP protocol:
|
|||
|
|
|||
|
o adds a new SETMETADATA command
|
|||
|
|
|||
|
o adds a new GETMETADATA command
|
|||
|
|
|||
|
o adds a new METADATA untagged response
|
|||
|
|
|||
|
o adds a new METADATA response code
|
|||
|
|
|||
|
The rest of this document describes the data model and protocol
|
|||
|
changes more rigorously.
|
|||
|
|
|||
|
2. Conventions Used in This Document
|
|||
|
|
|||
|
In examples, "C:" and "S:" indicate lines sent by the client and
|
|||
|
server, respectively.
|
|||
|
|
|||
|
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 [RFC2119].
|
|||
|
|
|||
|
Whitespace and line breaks have been added to the examples in this
|
|||
|
document to promote readability.
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
Daboo Standards Track [Page 3]
|
|||
|
|
|||
|
RFC 5464 The IMAP METADATA Extension February 2009
|
|||
|
|
|||
|
|
|||
|
3. Data Model
|
|||
|
|
|||
|
3.1. Overview
|
|||
|
|
|||
|
Mailboxes or the server as a whole may have zero or more annotations
|
|||
|
associated with them. An annotation contains a uniquely named entry,
|
|||
|
which has a value. Annotations can be added to mailboxes when a
|
|||
|
mailbox name is provided as the first argument to the SETMETADATA
|
|||
|
command, or to the server as a whole when the empty string is
|
|||
|
provided as the first argument to the command.
|
|||
|
|
|||
|
For example, a general comment being added to a mailbox may have an
|
|||
|
entry name of "/comment" and a value of "Really useful mailbox".
|
|||
|
|
|||
|
The protocol changes to IMAP described below allow a client to access
|
|||
|
or change the values of any annotation entry, assuming it has
|
|||
|
sufficient access rights to do so.
|
|||
|
|
|||
|
3.2. Namespace of Entries
|
|||
|
|
|||
|
Each annotation is an entry that has a hierarchical name, with each
|
|||
|
component of the name separated by a slash ("/"). An entry name MUST
|
|||
|
NOT contain two consecutive "/" characters and MUST NOT end with a
|
|||
|
"/" character.
|
|||
|
|
|||
|
The value of an entry is NIL (has no value), or a string or binary
|
|||
|
data of zero or more octets. A string MAY contain multiple lines of
|
|||
|
text. Clients MUST use the CRLF (0x0D 0x0A) character octet sequence
|
|||
|
to represent line ends in a multi-line string value.
|
|||
|
|
|||
|
Entry names MUST NOT contain asterisk ("*") or percent ("%")
|
|||
|
characters and MUST NOT contain non-ASCII characters or characters
|
|||
|
with octet values in the range 0x00 to 0x19. Invalid entry names
|
|||
|
result in a BAD response in any IMAP command in which they are used.
|
|||
|
|
|||
|
Entry names are case-insensitive.
|
|||
|
|
|||
|
Use of control or punctuation characters in entry names is strongly
|
|||
|
discouraged.
|
|||
|
|
|||
|
This specification defines an initial set of entry names available
|
|||
|
for use with mailbox and server annotations. In addition, an
|
|||
|
extension mechanism is described to allow additional names to be
|
|||
|
added for extensibility.
|
|||
|
|
|||
|
The first component in entry names defines the scope of the
|
|||
|
annotation. Currently, only the prefixes "/private" or "/shared" are
|
|||
|
defined. These prefixes are used to indicate whether an annotation
|
|||
|
|
|||
|
|
|||
|
|
|||
|
Daboo Standards Track [Page 4]
|
|||
|
|
|||
|
RFC 5464 The IMAP METADATA Extension February 2009
|
|||
|
|
|||
|
|
|||
|
is stored on a per-user basis ("/private") and not visible to other
|
|||
|
users, or whether an annotation is shared between authorized users
|
|||
|
("/shared") with a single value that can be read and changed by
|
|||
|
authorized users with appropriate access. See Section 3.3 for
|
|||
|
details.
|
|||
|
|
|||
|
Entry names can have any number of components starting at 2, unless
|
|||
|
they fall under the vendor namespaces (i.e., have a /shared/vendor/
|
|||
|
<vendor-token> or /private/vendor/<vendor-token> prefix as described
|
|||
|
below), in which case they have at least 4 components.
|
|||
|
|
|||
|
3.2.1. Entry Names
|
|||
|
|
|||
|
Entry names MUST be specified in a Standards Track or IESG-approved
|
|||
|
Experimental RFC, or fall under the vendor namespace. See
|
|||
|
Section 6.1 for the registration template.
|
|||
|
|
|||
|
3.2.1.1. Server Entries
|
|||
|
|
|||
|
These entries are set or retrieved when the mailbox name argument to
|
|||
|
the new SETMETADATA or GETMETADATA command is the empty string.
|
|||
|
|
|||
|
/shared/comment
|
|||
|
|
|||
|
Defines a comment or note that is associated with the server and
|
|||
|
that is shared with authorized users of the server.
|
|||
|
|
|||
|
/shared/admin
|
|||
|
|
|||
|
Indicates a method for contacting the server administrator. The
|
|||
|
value MUST be a URI (e.g., a mailto: or tel: URL). This entry is
|
|||
|
always read-only -- clients cannot change it. It is visible to
|
|||
|
authorized users of the system.
|
|||
|
|
|||
|
/shared/vendor/<vendor-token>
|
|||
|
|
|||
|
Defines the top level of shared entries associated with the
|
|||
|
server, as created by a particular product of some vendor. This
|
|||
|
entry can be used by vendors to provide server- or client-specific
|
|||
|
annotations. The vendor-token MUST be registered with IANA, using
|
|||
|
the Application Configuration Access Protocol (ACAP) [RFC2244]
|
|||
|
vendor subtree registry.
|
|||
|
|
|||
|
/private/vendor/<vendor-token>
|
|||
|
|
|||
|
Defines the top level of private entries associated with the
|
|||
|
server, as created by a particular product of some vendor. This
|
|||
|
entry can be used by vendors to provide server- or client-specific
|
|||
|
|
|||
|
|
|||
|
|
|||
|
Daboo Standards Track [Page 5]
|
|||
|
|
|||
|
RFC 5464 The IMAP METADATA Extension February 2009
|
|||
|
|
|||
|
|
|||
|
annotations. The vendor-token MUST be registered with IANA, using
|
|||
|
the ACAP [RFC2244] vendor subtree registry.
|
|||
|
|
|||
|
3.2.1.2. Mailbox Entries
|
|||
|
|
|||
|
These entries are set or retrieved when the mailbox name argument to
|
|||
|
the new SETMETADATA or GETMETADATA command is not the empty string.
|
|||
|
|
|||
|
/shared/comment
|
|||
|
|
|||
|
Defines a shared comment or note associated with a mailbox.
|
|||
|
|
|||
|
/private/comment
|
|||
|
|
|||
|
Defines a private (per-user) comment or note associated with a
|
|||
|
mailbox.
|
|||
|
|
|||
|
/shared/vendor/<vendor-token>
|
|||
|
|
|||
|
Defines the top level of shared entries associated with a specific
|
|||
|
mailbox, as created by a particular product of some vendor. This
|
|||
|
entry can be used by vendors to provide client-specific
|
|||
|
annotations. The vendor-token MUST be registered with IANA, using
|
|||
|
the ACAP [RFC2244] vendor subtree registry.
|
|||
|
|
|||
|
/private/vendor/<vendor-token>
|
|||
|
|
|||
|
Defines the top level of private entries associated with a
|
|||
|
specific mailbox, as created by a particular product of some
|
|||
|
vendor. This entry can be used by vendors to provide client-
|
|||
|
specific annotations. The vendor-token MUST be registered with
|
|||
|
IANA, using the ACAP [RFC2244] vendor subtree registry.
|
|||
|
|
|||
|
3.3. Private versus Shared and Access Control
|
|||
|
|
|||
|
In the absence of the ACL (Access Control List) extension [RFC4314],
|
|||
|
users can only set and retrieve private or shared mailbox annotations
|
|||
|
on a mailbox that exists and is returned to them via a LIST or LSUB
|
|||
|
command, and on which they have either read or write access to the
|
|||
|
actual message content of the mailbox (as determined by the READ-ONLY
|
|||
|
and READ-WRITE response codes as described in Section 5.2 of
|
|||
|
[RFC4314]).
|
|||
|
|
|||
|
When the ACL extension [RFC4314] is present, users can only set and
|
|||
|
retrieve private or shared mailbox annotations on a mailbox on which
|
|||
|
they have the "l" right and any one of the "r", "s", "w", "i", or "p"
|
|||
|
rights.
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
Daboo Standards Track [Page 6]
|
|||
|
|
|||
|
RFC 5464 The IMAP METADATA Extension February 2009
|
|||
|
|
|||
|
|
|||
|
If a client attempts to set or retrieve annotations on mailboxes that
|
|||
|
do not satisfy the conditions above, the server MUST respond with a
|
|||
|
NO response.
|
|||
|
|
|||
|
Users can always retrieve private or shared server annotations if
|
|||
|
they exist. Servers MAY restrict the creation of private or shared
|
|||
|
server annotations as appropriate. When restricted, the server MUST
|
|||
|
return a NO response when the SETMETADATA command is used to try to
|
|||
|
create a server annotation.
|
|||
|
|
|||
|
If the METADATA extension is present, support for shared annotations
|
|||
|
is REQUIRED, whilst support for private annotations is OPTIONAL.
|
|||
|
This recognizes the fact that support for private annotations may
|
|||
|
introduce significantly more complexity to a server in terms of
|
|||
|
tracking ownership of the annotations, how quota is determined for
|
|||
|
users based on their own annotations, etc.
|
|||
|
|
|||
|
4. IMAP Protocol Changes
|
|||
|
|
|||
|
4.1. General Considerations
|
|||
|
|
|||
|
The new SETMETADATA command and the METADATA response each have a
|
|||
|
mailbox name argument. An empty string is used for the mailbox name
|
|||
|
to signify server annotations. A non-empty string is used to signify
|
|||
|
mailbox annotations attached to the corresponding mailbox.
|
|||
|
|
|||
|
Servers SHOULD ensure that mailbox annotations are automatically
|
|||
|
moved when the mailbox they refer to is renamed, i.e., the
|
|||
|
annotations follow the mailbox. This applies to a rename of the
|
|||
|
INBOX, with the additional behavior that the annotations are copied
|
|||
|
from the original INBOX to the renamed mailbox, i.e., mailbox
|
|||
|
annotations are preserved on the INBOX when it is renamed.
|
|||
|
|
|||
|
Servers SHOULD delete annotations for a mailbox when the mailbox is
|
|||
|
deleted, so that a mailbox created with the same name as a previously
|
|||
|
existing mailbox does not inherit the old mailbox annotations.
|
|||
|
|
|||
|
Servers SHOULD allow annotations on all 'types' of mailboxes,
|
|||
|
including ones reporting \Noselect for their LIST response. Servers
|
|||
|
can implicitly remove \Noselect mailboxes when all child mailboxes
|
|||
|
are removed, and, at that time any annotations associated with the
|
|||
|
\Noselect mailbox SHOULD be removed.
|
|||
|
|
|||
|
The server is allowed to impose limitations on the size of any one
|
|||
|
annotation or the total number of annotations for a single mailbox or
|
|||
|
for the server as a whole. However, the server MUST accept an
|
|||
|
annotation data size of at least 1024 bytes, and an annotation count
|
|||
|
per server or mailbox of at least 10.
|
|||
|
|
|||
|
|
|||
|
|
|||
|
Daboo Standards Track [Page 7]
|
|||
|
|
|||
|
RFC 5464 The IMAP METADATA Extension February 2009
|
|||
|
|
|||
|
|
|||
|
Some annotations may be "read-only" -- i.e., they are set by the
|
|||
|
server and cannot be changed by the client. Also, such annotations
|
|||
|
may be "computed" -- i.e., the value changes based on underlying
|
|||
|
properties of the mailbox or server. For example, an annotation
|
|||
|
reporting the total size of all messages in the mailbox would change
|
|||
|
as messages are added or removed. Or, an annotation containing an
|
|||
|
IMAP URL for the mailbox would change if the mailbox was renamed.
|
|||
|
|
|||
|
Servers MAY support sending unsolicited responses for use when
|
|||
|
annotations are changed by some "third-party" (see Section 4.4). In
|
|||
|
order to do so, servers MUST support the ENABLE command [RFC5161] and
|
|||
|
MUST only send unsolicited responses if the client used the ENABLE
|
|||
|
command [RFC5161] extension with the capability string "METADATA" or
|
|||
|
"METADATA-SERVER" earlier in the session, depending on which of those
|
|||
|
capabilities is supported by the server.
|
|||
|
|
|||
|
4.2. GETMETADATA Command
|
|||
|
|
|||
|
This extension adds the GETMETADATA command. This allows clients to
|
|||
|
retrieve server or mailbox annotations.
|
|||
|
|
|||
|
This command is only available in authenticated or selected state
|
|||
|
[RFC3501].
|
|||
|
|
|||
|
Arguments: mailbox-name
|
|||
|
options
|
|||
|
entry-specifier
|
|||
|
|
|||
|
Responses: required METADATA response
|
|||
|
|
|||
|
Result: OK - command completed
|
|||
|
NO - command failure: can't access annotations on
|
|||
|
the server
|
|||
|
BAD - command unknown or arguments invalid
|
|||
|
|
|||
|
When the mailbox name is the empty string, this command retrieves
|
|||
|
server annotations. When the mailbox name is not empty, this command
|
|||
|
retrieves annotations on the specified mailbox.
|
|||
|
|
|||
|
Options MAY be included with this command and are defined below.
|
|||
|
|
|||
|
Example:
|
|||
|
|
|||
|
C: a GETMETADATA "" /shared/comment
|
|||
|
S: * METADATA "" (/shared/comment "Shared comment")
|
|||
|
S: a OK GETMETADATA complete
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
Daboo Standards Track [Page 8]
|
|||
|
|
|||
|
RFC 5464 The IMAP METADATA Extension February 2009
|
|||
|
|
|||
|
|
|||
|
In the above example, the contents of the value of the "/shared/
|
|||
|
comment" server entry is requested by the client and returned by
|
|||
|
the server.
|
|||
|
|
|||
|
Example:
|
|||
|
|
|||
|
C: a GETMETADATA "INBOX" /private/comment
|
|||
|
S: * METADATA "INBOX" (/private/comment "My own comment")
|
|||
|
S: a OK GETMETADATA complete
|
|||
|
|
|||
|
In the above example, the contents of the value of the "/private/
|
|||
|
comment" mailbox entry for the mailbox "INBOX" is requested by the
|
|||
|
client and returned by the server.
|
|||
|
|
|||
|
Entry specifiers can be lists of atomic specifiers, so that multiple
|
|||
|
annotations may be returned in a single GETMETADATA command.
|
|||
|
|
|||
|
Example:
|
|||
|
|
|||
|
C: a GETMETADATA "INBOX" (/shared/comment /private/comment)
|
|||
|
S: * METADATA "INBOX" (/shared/comment "Shared comment"
|
|||
|
/private/comment "My own comment")
|
|||
|
S: a OK GETMETADATA complete
|
|||
|
|
|||
|
In the above example, the values of the two server entries
|
|||
|
"/shared/comment" and "/private/comment" on the mailbox "INBOX"
|
|||
|
are requested by the client and returned by the server.
|
|||
|
|
|||
|
4.2.1. MAXSIZE GETMETADATA Command Option
|
|||
|
|
|||
|
When the MAXSIZE option is specified with the GETMETADATA command, it
|
|||
|
restricts which entry values are returned by the server. Only entry
|
|||
|
values that are less than or equal in octet size to the specified
|
|||
|
MAXSIZE limit are returned. If there are any entries with values
|
|||
|
larger than the MAXSIZE limit, the server MUST include the METADATA
|
|||
|
LONGENTRIES response code in the tagged OK response for the
|
|||
|
GETMETADATA command. The METADATA LONGENTRIES response code returns
|
|||
|
the size of the biggest entry value requested by the client that
|
|||
|
exceeded the MAXSIZE limit.
|
|||
|
|
|||
|
Example:
|
|||
|
|
|||
|
C: a GETMETADATA "INBOX" (MAXSIZE 1024)
|
|||
|
(/shared/comment /private/comment)
|
|||
|
S: * METADATA "INBOX" (/private/comment "My own comment")
|
|||
|
S: a OK [METADATA LONGENTRIES 2199] GETMETADATA complete
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
Daboo Standards Track [Page 9]
|
|||
|
|
|||
|
RFC 5464 The IMAP METADATA Extension February 2009
|
|||
|
|
|||
|
|
|||
|
In the above example, the values of the two server entries
|
|||
|
"/shared/comment" and "/private/comment" on the mailbox "INBOX"
|
|||
|
are requested by the client, which wants to restrict the size of
|
|||
|
returned values to 1024 octets. In this case, the "/shared/
|
|||
|
comment" entry value is 2199 octets and is not returned.
|
|||
|
|
|||
|
4.2.2. DEPTH GETMETADATA Command Option
|
|||
|
|
|||
|
When the DEPTH option is specified with the GETMETADATA command, it
|
|||
|
extends the list of entry values returned by the server. For each
|
|||
|
entry name specified in the GETMETADATA command, the server returns
|
|||
|
the value of the specified entry name (if it exists), plus all
|
|||
|
entries below the entry name up to the specified DEPTH. Three values
|
|||
|
are allowed for DEPTH:
|
|||
|
|
|||
|
"0" - no entries below the specified entry are returned
|
|||
|
"1" - only entries immediately below the specified entry are returned
|
|||
|
"infinity" - all entries below the specified entry are returned
|
|||
|
|
|||
|
Thus, "depth 1" for an entry "/a" will match "/a" as well as its
|
|||
|
children entries (e.g., "/a/b"), but will not match grandchildren
|
|||
|
entries (e.g., "/a/b/c").
|
|||
|
|
|||
|
If the DEPTH option is not specified, this is the same as specifying
|
|||
|
"DEPTH 0".
|
|||
|
|
|||
|
Example:
|
|||
|
|
|||
|
C: a GETMETADATA "INBOX" (DEPTH 1)
|
|||
|
(/private/filters/values)
|
|||
|
S: * METADATA "INBOX" (/private/filters/values/small
|
|||
|
"SMALLER 5000" /private/filters/values/boss
|
|||
|
"FROM \"boss@example.com\"")
|
|||
|
S: a OK GETMETADATA complete
|
|||
|
|
|||
|
In the above example, 2 entries below the /private/filters/values
|
|||
|
entry exist on the mailbox "INBOX": "/private/filters/values/
|
|||
|
small" and "/private/filters/values/boss".
|
|||
|
|
|||
|
4.3. SETMETADATA Command
|
|||
|
|
|||
|
This extension adds the SETMETADATA command. This allows clients to
|
|||
|
set annotations.
|
|||
|
|
|||
|
This command is only available in authenticated or selected state
|
|||
|
[RFC3501].
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
Daboo Standards Track [Page 10]
|
|||
|
|
|||
|
RFC 5464 The IMAP METADATA Extension February 2009
|
|||
|
|
|||
|
|
|||
|
Arguments: mailbox-name
|
|||
|
entry
|
|||
|
value
|
|||
|
list of entry, values
|
|||
|
|
|||
|
Responses: no specific responses for this command
|
|||
|
|
|||
|
Result: OK - command completed
|
|||
|
NO - command failure: can't set annotations,
|
|||
|
or annotation too big or too many
|
|||
|
BAD - command unknown or arguments invalid
|
|||
|
|
|||
|
This command sets the specified list of entries by adding or
|
|||
|
replacing the specified values provided, on the specified existing
|
|||
|
mailboxes or on the server (if the mailbox argument is the empty
|
|||
|
string). Clients can use NIL for the value of entries it wants to
|
|||
|
remove. The server SHOULD NOT return a METADATA response containing
|
|||
|
the updated annotation data. Clients MUST NOT assume that a METADATA
|
|||
|
response will be sent, and MUST assume that if the command succeeds,
|
|||
|
then the annotation has been changed.
|
|||
|
|
|||
|
If the server is unable to set an annotation because the size of its
|
|||
|
value is too large, the server MUST return a tagged NO response with
|
|||
|
a "[METADATA MAXSIZE NNN]" response code when NNN is the maximum
|
|||
|
octet count that it is willing to accept.
|
|||
|
|
|||
|
If the server is unable to set a new annotation because the maximum
|
|||
|
number of allowed annotations has already been reached, the server
|
|||
|
MUST return a tagged NO response with a "[METADATA TOOMANY]" response
|
|||
|
code.
|
|||
|
|
|||
|
If the server is unable to set a new annotation because it does not
|
|||
|
support private annotations on one of the specified mailboxes, the
|
|||
|
server MUST return a tagged NO response with a "[METADATA NOPRIVATE]"
|
|||
|
response code.
|
|||
|
|
|||
|
When any one annotation fails to be set, resulting in a tagged NO
|
|||
|
response from the server, then the server MUST NOT change the values
|
|||
|
for other annotations specified in the SETMETADATA command.
|
|||
|
|
|||
|
Example:
|
|||
|
|
|||
|
C: a SETMETADATA INBOX (/private/comment {33}
|
|||
|
S: + ready for data
|
|||
|
My new comment across
|
|||
|
two lines.
|
|||
|
)
|
|||
|
S: a OK SETMETADATA complete
|
|||
|
|
|||
|
|
|||
|
|
|||
|
Daboo Standards Track [Page 11]
|
|||
|
|
|||
|
RFC 5464 The IMAP METADATA Extension February 2009
|
|||
|
|
|||
|
|
|||
|
In the above example, the entry "/private/comment" for the mailbox
|
|||
|
"INBOX" is created (if not already present) and the value set to a
|
|||
|
multi-line string.
|
|||
|
|
|||
|
Example:
|
|||
|
|
|||
|
C: a SETMETADATA INBOX (/private/comment NIL)
|
|||
|
S: a OK SETMETADATA complete
|
|||
|
|
|||
|
In the above example, the entry "/private/comment" is removed from
|
|||
|
the mailbox "INBOX".
|
|||
|
|
|||
|
Multiple entries can be set in a single SETMETADATA command by
|
|||
|
listing entry-value pairs in the list.
|
|||
|
|
|||
|
Example:
|
|||
|
|
|||
|
C: a SETMETADATA INBOX (/private/comment "My new comment"
|
|||
|
/shared/comment "This one is for you!")
|
|||
|
S: a OK SETMETADATA complete
|
|||
|
|
|||
|
In the above example, the entries "/private/comment" and "/shared/
|
|||
|
comment" for the mailbox "INBOX" are created (if not already
|
|||
|
present) and the values set as specified.
|
|||
|
|
|||
|
Example:
|
|||
|
|
|||
|
C: a SETMETADATA INBOX (/private/comment "My new comment")
|
|||
|
S: a NO [METADATA TOOMANY] SETMETADATA failed
|
|||
|
|
|||
|
In the above example, the server is unable to set the requested
|
|||
|
(new) annotation as it has reached the limit on the number of
|
|||
|
annotations it can support on the specified mailbox.
|
|||
|
|
|||
|
4.4. METADATA Response
|
|||
|
|
|||
|
The METADATA response displays results of a GETMETADATA command, or
|
|||
|
can be returned as an unsolicited response at any time by the server
|
|||
|
in response to a change in a server or mailbox annotation.
|
|||
|
|
|||
|
When unsolicited responses are activated by the ENABLE [RFC5161]
|
|||
|
command for this extension, servers MUST send unsolicited METADATA
|
|||
|
responses if server or mailbox annotations are changed by a third-
|
|||
|
party, allowing servers to keep clients updated with changes.
|
|||
|
|
|||
|
Unsolicited METADATA responses MUST only contain entry names, not the
|
|||
|
values. If the client wants to update any cached values, it must
|
|||
|
explicitly retrieve those using a GETMETADATA command.
|
|||
|
|
|||
|
|
|||
|
|
|||
|
Daboo Standards Track [Page 12]
|
|||
|
|
|||
|
RFC 5464 The IMAP METADATA Extension February 2009
|
|||
|
|
|||
|
|
|||
|
The METADATA response can contain multiple entries in a single
|
|||
|
response, but the server is free to return multiple responses for
|
|||
|
each entry or group of entries, if it desires.
|
|||
|
|
|||
|
This response is only available in authenticated or selected state
|
|||
|
[RFC3501].
|
|||
|
|
|||
|
4.4.1. METADATA Response with Values
|
|||
|
|
|||
|
The response consists of a list of entry-value pairs.
|
|||
|
|
|||
|
Example:
|
|||
|
|
|||
|
C: a GETMETADATA "" /shared/comment
|
|||
|
S: * METADATA "" (/shared/comment "My comment")
|
|||
|
S: a OK GETMETADATA complete
|
|||
|
|
|||
|
In the above example, a single entry with its value is returned by
|
|||
|
the server.
|
|||
|
|
|||
|
Example:
|
|||
|
|
|||
|
C: a GETMETADATA "INBOX" /private/comment /shared/comment
|
|||
|
S: * METADATA "INBOX" (/private/comment "My comment"
|
|||
|
/shared/comment "Its sunny outside!")
|
|||
|
S: a OK GETMETADATA complete
|
|||
|
|
|||
|
In the above example, two entries and their values are returned by
|
|||
|
the server.
|
|||
|
|
|||
|
Example:
|
|||
|
|
|||
|
C: a GETMETADATA "INBOX" /private/comment /shared/comment
|
|||
|
S: * METADATA "INBOX" (/private/comment "My comment")
|
|||
|
S: * METADATA "INBOX" (/shared/comment "Its sunny outside!")
|
|||
|
S: a OK GETMETADATA complete
|
|||
|
|
|||
|
In the above example, the server returns two separate responses
|
|||
|
for each of the two entries requested.
|
|||
|
|
|||
|
4.4.2. Unsolicited METADATA Response without Values
|
|||
|
|
|||
|
The response consists of a list of entries, each of which have
|
|||
|
changed on the server or mailbox.
|
|||
|
|
|||
|
Example:
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
Daboo Standards Track [Page 13]
|
|||
|
|
|||
|
RFC 5464 The IMAP METADATA Extension February 2009
|
|||
|
|
|||
|
|
|||
|
C: a NOOP
|
|||
|
S: * METADATA "" /shared/comment
|
|||
|
S: a OK NOOP complete
|
|||
|
|
|||
|
In the above example, the server indicates that the "/shared/
|
|||
|
comment" server entry has been changed.
|
|||
|
|
|||
|
Example:
|
|||
|
|
|||
|
C: a NOOP
|
|||
|
S: * METADATA "INBOX" /shared/comment /private/comment
|
|||
|
S: a OK NOOP complete
|
|||
|
|
|||
|
In the above example, the server indicates a change to two mailbox
|
|||
|
entries.
|
|||
|
|
|||
|
5. Formal Syntax
|
|||
|
|
|||
|
The following syntax specification uses the Augmented Backus-Naur
|
|||
|
Form (ABNF) notation as specified in [RFC5234].
|
|||
|
|
|||
|
Non-terminals referenced but not defined below are as defined by
|
|||
|
[RFC3501], with the new definitions in [RFC4466] superseding those in
|
|||
|
[RFC3501].
|
|||
|
|
|||
|
Except as noted otherwise, all alphabetic characters are case-
|
|||
|
insensitive. The use of upper or lower case characters to define
|
|||
|
token strings is for editorial clarity only. Implementations MUST
|
|||
|
accept these strings in a case-insensitive fashion.
|
|||
|
|
|||
|
capability =/ "METADATA" / "METADATA-SERVER"
|
|||
|
; defines the capabilities for this extension.
|
|||
|
|
|||
|
command-auth =/ setmetadata / getmetadata
|
|||
|
; adds to original IMAP command
|
|||
|
|
|||
|
entries = entry /
|
|||
|
"(" entry *(SP entry) ")"
|
|||
|
; entry specifiers
|
|||
|
|
|||
|
entry = astring
|
|||
|
; slash-separated path to entry
|
|||
|
; MUST NOT contain "*" or "%"
|
|||
|
|
|||
|
entry-value = entry SP value
|
|||
|
|
|||
|
entry-values = "(" entry-value *(SP entry-value) ")"
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
Daboo Standards Track [Page 14]
|
|||
|
|
|||
|
RFC 5464 The IMAP METADATA Extension February 2009
|
|||
|
|
|||
|
|
|||
|
entry-list = entry *(SP entry)
|
|||
|
; list of entries used in unsolicited
|
|||
|
; METADATA response
|
|||
|
|
|||
|
getmetadata = "GETMETADATA" [SP getmetadata-options]
|
|||
|
SP mailbox SP entries
|
|||
|
; empty string for mailbox implies
|
|||
|
; server annotation.
|
|||
|
|
|||
|
getmetadata-options = "(" getmetadata-option
|
|||
|
*(SP getmetadata-option) ")"
|
|||
|
|
|||
|
getmetadata-option = tagged-ext-label [SP tagged-ext-val]
|
|||
|
; tagged-ext-label and tagged-ext-val
|
|||
|
; are defined in [RFC4466].
|
|||
|
|
|||
|
maxsize-opt = "MAXSIZE" SP number
|
|||
|
; Used as a getmetadata-option
|
|||
|
|
|||
|
metadata-resp = "METADATA" SP mailbox SP
|
|||
|
(entry-values / entry-list)
|
|||
|
; empty string for mailbox implies
|
|||
|
; server annotation.
|
|||
|
|
|||
|
response-payload =/ metadata-resp
|
|||
|
; adds to original IMAP data responses
|
|||
|
|
|||
|
resp-text-code =/ "METADATA" SP "LONGENTRIES" SP number
|
|||
|
; new response codes for GETMETADATA
|
|||
|
|
|||
|
resp-text-code =/ "METADATA" SP ("MAXSIZE" SP number /
|
|||
|
"TOOMANY" / "NOPRIVATE")
|
|||
|
; new response codes for SETMETADATA
|
|||
|
; failures
|
|||
|
|
|||
|
scope-opt = "DEPTH" SP ("0" / "1" / "infinity")
|
|||
|
; Used as a getmetadata-option
|
|||
|
|
|||
|
setmetadata = "SETMETADATA" SP mailbox
|
|||
|
SP entry-values
|
|||
|
; empty string for mailbox implies
|
|||
|
; server annotation.
|
|||
|
|
|||
|
value = nstring / literal8
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
Daboo Standards Track [Page 15]
|
|||
|
|
|||
|
RFC 5464 The IMAP METADATA Extension February 2009
|
|||
|
|
|||
|
|
|||
|
6. IANA Considerations
|
|||
|
|
|||
|
All entries MUST have either "/shared" or "/private" as a prefix.
|
|||
|
Entry names MUST be specified in a Standards Track or IESG-approved
|
|||
|
Experimental RFC, or fall under the vendor namespace (i.e., use
|
|||
|
/shared/vendor/<vendor-token> or /private/vendor/<vendor-token> as
|
|||
|
the prefix).
|
|||
|
|
|||
|
Each entry registration MUST include a content-type that is used to
|
|||
|
indicate the nature of the annotation value. Where applicable, a
|
|||
|
charset parameter MUST be included with the content-type.
|
|||
|
|
|||
|
6.1. Entry and Attribute Registration Template
|
|||
|
|
|||
|
To: iana@iana.org
|
|||
|
Subject: IMAP METADATA Entry Registration
|
|||
|
|
|||
|
Type: [Either "Mailbox" or "Server"]
|
|||
|
|
|||
|
Name: [the name of the entry]
|
|||
|
|
|||
|
Description: [a description of what the entry is for]
|
|||
|
|
|||
|
Content-type: [MIME Content-Type and charset for the entry value]
|
|||
|
|
|||
|
RFC Number: [for entries published as RFCs]
|
|||
|
|
|||
|
Contact: [email and/or physical address to contact for
|
|||
|
additional information]
|
|||
|
|
|||
|
6.2. Server Entry Registrations
|
|||
|
|
|||
|
The following templates specify the IANA registrations of annotation
|
|||
|
entries specified in this document.
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
Daboo Standards Track [Page 16]
|
|||
|
|
|||
|
RFC 5464 The IMAP METADATA Extension February 2009
|
|||
|
|
|||
|
|
|||
|
6.2.1. /shared/comment
|
|||
|
|
|||
|
To: iana@iana.org
|
|||
|
Subject: IMAP METADATA Entry Registration
|
|||
|
|
|||
|
Type: Server
|
|||
|
|
|||
|
Name: /shared/comment
|
|||
|
|
|||
|
Description: Defines a comment or note that is associated
|
|||
|
with the server and that is shared with
|
|||
|
authorized users of the server.
|
|||
|
|
|||
|
Content-type: text/plain; charset=utf-8
|
|||
|
|
|||
|
RFC Number: RFC 5464
|
|||
|
|
|||
|
Contact: IMAP Extensions mailto:ietf-imapext@imc.org
|
|||
|
|
|||
|
6.2.2. /shared/admin
|
|||
|
|
|||
|
To: iana@iana.org
|
|||
|
Subject: IMAP METADATA Entry Registration
|
|||
|
|
|||
|
Type: Server
|
|||
|
|
|||
|
Name: /shared/admin
|
|||
|
|
|||
|
Description: Indicates a method for contacting the server
|
|||
|
administrator. The value MUST be a URI (e.g., a
|
|||
|
mailto: or tel: URL). This entry is always
|
|||
|
read-only -- clients cannot change it. It is visible
|
|||
|
to authorized users of the system.
|
|||
|
|
|||
|
Content-type: text/plain; charset=utf-8
|
|||
|
|
|||
|
RFC Number: RFC 5464
|
|||
|
|
|||
|
Contact: IMAP Extensions mailto:ietf-imapext@imc.org
|
|||
|
|
|||
|
6.3. Mailbox Entry Registrations
|
|||
|
|
|||
|
The following templates specify the IANA registrations of annotation
|
|||
|
entries specified in this document.
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
Daboo Standards Track [Page 17]
|
|||
|
|
|||
|
RFC 5464 The IMAP METADATA Extension February 2009
|
|||
|
|
|||
|
|
|||
|
6.3.1. /shared/comment
|
|||
|
|
|||
|
To: iana@iana.org
|
|||
|
Subject: IMAP METADATA Entry Registration
|
|||
|
|
|||
|
Type: Mailbox
|
|||
|
|
|||
|
Name: /shared/comment
|
|||
|
|
|||
|
Description: Defines a shared comment or note associated with a
|
|||
|
mailbox.
|
|||
|
|
|||
|
Content-type: text/plain; charset=utf-8
|
|||
|
|
|||
|
RFC Number: RFC 5464
|
|||
|
|
|||
|
Contact: IMAP Extensions mailto:ietf-imapext@imc.org
|
|||
|
|
|||
|
6.3.2. /private/comment
|
|||
|
|
|||
|
To: iana@iana.org
|
|||
|
Subject: IMAP METADATA Entry Registration
|
|||
|
|
|||
|
Type: Mailbox
|
|||
|
|
|||
|
Name: /private/comment
|
|||
|
|
|||
|
Description: Defines a private comment or note associated with a
|
|||
|
mailbox.
|
|||
|
|
|||
|
Content-type: text/plain; charset=utf-8
|
|||
|
|
|||
|
RFC Number: RFC 5464
|
|||
|
|
|||
|
Contact: IMAP Extensions mailto:ietf-imapext@imc.org
|
|||
|
|
|||
|
7. Security Considerations
|
|||
|
|
|||
|
The security considerations in Section 11 of [RFC3501] apply here
|
|||
|
with respect to protecting annotations from snooping. Servers MAY
|
|||
|
choose to only support the METADATA and/or METADATA-SERVER extensions
|
|||
|
after a privacy layer has been negotiated by the client.
|
|||
|
|
|||
|
Annotations can contain arbitrary data of varying size. As such,
|
|||
|
servers MUST ensure that size limits are enforced to prevent a user
|
|||
|
from using up all available space on a server and preventing use by
|
|||
|
others. Clients MUST treat annotation data values as an "untrusted"
|
|||
|
source of data as it is possible for it to contain malicious content.
|
|||
|
|
|||
|
|
|||
|
|
|||
|
Daboo Standards Track [Page 18]
|
|||
|
|
|||
|
RFC 5464 The IMAP METADATA Extension February 2009
|
|||
|
|
|||
|
|
|||
|
Annotations whose values are intended to remain private MUST be
|
|||
|
stored only in entries that have the "/private" prefix on the entry
|
|||
|
name.
|
|||
|
|
|||
|
Excluding the above issues, the METADATA extension does not raise any
|
|||
|
security considerations that are not present in the base IMAP
|
|||
|
protocol, and these issues are discussed in [RFC3501].
|
|||
|
|
|||
|
8. Normative References
|
|||
|
|
|||
|
[RFC2119] Bradner, S., "Key words for use in RFCs to Indicate
|
|||
|
Requirement Levels", BCP 14, RFC 2119, March 1997.
|
|||
|
|
|||
|
[RFC2244] Newman, C. and J. Myers, "ACAP -- Application
|
|||
|
Configuration Access Protocol", RFC 2244, November 1997.
|
|||
|
|
|||
|
[RFC3501] Crispin, M., "INTERNET MESSAGE ACCESS PROTOCOL - VERSION
|
|||
|
4rev1", RFC 3501, March 2003.
|
|||
|
|
|||
|
[RFC4314] Melnikov, A., "IMAP4 Access Control List (ACL) Extension",
|
|||
|
RFC 4314, December 2005.
|
|||
|
|
|||
|
[RFC4466] Melnikov, A. and C. Daboo, "Collected Extensions to IMAP4
|
|||
|
ABNF", RFC 4466, April 2006.
|
|||
|
|
|||
|
[RFC5161] Gulbrandsen, A. and A. Melnikov, "The IMAP ENABLE
|
|||
|
Extension", RFC 5161, March 2008.
|
|||
|
|
|||
|
[RFC5234] Crocker, D. and P. Overell, "Augmented BNF for Syntax
|
|||
|
Specifications: ABNF", STD 68, RFC 5234, January 2008.
|
|||
|
|
|||
|
Appendix A. Acknowledgments
|
|||
|
|
|||
|
The ideas expressed in this document are based on the message
|
|||
|
annotation document that was co-authored by Randall Gellens. The
|
|||
|
author would like to thank the following individuals for contributing
|
|||
|
their ideas and support for writing this specification: Dave
|
|||
|
Cridland, Arnt Gulbrandsen, Dan Karp, Alexey Melnikov, Ken Murchison,
|
|||
|
Chris Newman, and Michael Wener.
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
Daboo Standards Track [Page 19]
|
|||
|
|
|||
|
RFC 5464 The IMAP METADATA Extension February 2009
|
|||
|
|
|||
|
|
|||
|
Author's Address
|
|||
|
|
|||
|
Cyrus Daboo
|
|||
|
Apple Inc.
|
|||
|
1 Infinite Loop
|
|||
|
Cupertino, CA 95014
|
|||
|
USA
|
|||
|
|
|||
|
EMail: cyrus@daboo.name
|
|||
|
URI: http://www.apple.com/
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
Daboo Standards Track [Page 20]
|
|||
|
|
|||
|
RFC 5464 The IMAP METADATA Extension February 2009
|
|||
|
|
|||
|
|
|||
|
Full Copyright Statement
|
|||
|
|
|||
|
Copyright (C) The IETF Trust (2009).
|
|||
|
|
|||
|
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.
|
|||
|
|
|||
|
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, THE IETF TRUST 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.
|
|||
|
|
|||
|
Intellectual Property
|
|||
|
|
|||
|
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.
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
Daboo Standards Track [Page 21]
|
|||
|
|
|||
|
|