rev |
line source |
yuuji@0
|
1
|
yuuji@0
|
2
|
yuuji@0
|
3
|
yuuji@0
|
4
|
yuuji@0
|
5
|
yuuji@0
|
6
|
yuuji@0
|
7 Network Working Group J. Myers
|
yuuji@0
|
8 Request for Comments: 2088 Carnegie Mellon
|
yuuji@0
|
9 Cateogry: Standards Track January 1997
|
yuuji@0
|
10
|
yuuji@0
|
11
|
yuuji@0
|
12 IMAP4 non-synchronizing literals
|
yuuji@0
|
13
|
yuuji@0
|
14 Status of this Memo
|
yuuji@0
|
15
|
yuuji@0
|
16 This document specifies an Internet standards track protocol for the
|
yuuji@0
|
17 Internet community, and requests discussion and suggestions for
|
yuuji@0
|
18 improvements. Please refer to the current edition of the "Internet
|
yuuji@0
|
19 Official Protocol Standards" (STD 1) for the standardization state
|
yuuji@0
|
20 and status of this protocol. Distribution of this memo is unlimited.
|
yuuji@0
|
21
|
yuuji@0
|
22 1. Abstract
|
yuuji@0
|
23
|
yuuji@0
|
24 The Internet Message Access Protocol [IMAP4] contains the "literal"
|
yuuji@0
|
25 syntactic construct for communicating strings. When sending a
|
yuuji@0
|
26 literal from client to server, IMAP4 requires the client to wait for
|
yuuji@0
|
27 the server to send a command continuation request between sending the
|
yuuji@0
|
28 octet count and the string data. This document specifies an
|
yuuji@0
|
29 alternate form of literal which does not require this network round
|
yuuji@0
|
30 trip.
|
yuuji@0
|
31
|
yuuji@0
|
32 2. Conventions Used in this Document
|
yuuji@0
|
33
|
yuuji@0
|
34 In examples, "C:" and "S:" indicate lines sent by the client and
|
yuuji@0
|
35 server respectively.
|
yuuji@0
|
36
|
yuuji@0
|
37 3. Specification
|
yuuji@0
|
38
|
yuuji@0
|
39 The non-synchronizing literal is added an alternate form of literal,
|
yuuji@0
|
40 and may appear in communication from client to server instead of the
|
yuuji@0
|
41 IMAP4 form of literal. The IMAP4 form of literal, used in
|
yuuji@0
|
42 communication from client to server, is referred to as a
|
yuuji@0
|
43 synchronizing literal.
|
yuuji@0
|
44
|
yuuji@0
|
45 Non-synchronizing literals may be used with any IMAP4 server
|
yuuji@0
|
46 implementation which returns "LITERAL+" as one of the supported
|
yuuji@0
|
47 capabilities to the CAPABILITY command. If the server does not
|
yuuji@0
|
48 advertise the LITERAL+ capability, the client must use synchronizing
|
yuuji@0
|
49 literals instead.
|
yuuji@0
|
50
|
yuuji@0
|
51 The non-synchronizing literal is distinguished from the original
|
yuuji@0
|
52 synchronizing literal by having a plus ('+') between the octet count
|
yuuji@0
|
53 and the closing brace ('}'). The server does not generate a command
|
yuuji@0
|
54 continuation request in response to a non-synchronizing literal, and
|
yuuji@0
|
55
|
yuuji@0
|
56
|
yuuji@0
|
57
|
yuuji@0
|
58 Myers Standards Track [Page 1]
|
yuuji@0
|
59
|
yuuji@0
|
60 RFC 2088 LITERAL January 1997
|
yuuji@0
|
61
|
yuuji@0
|
62
|
yuuji@0
|
63 clients are not required to wait before sending the octets of a non-
|
yuuji@0
|
64 synchronizing literal.
|
yuuji@0
|
65
|
yuuji@0
|
66 The protocol receiver of an IMAP4 server must check the end of every
|
yuuji@0
|
67 received line for an open brace ('{') followed by an octet count, a
|
yuuji@0
|
68 plus ('+'), and a close brace ('}') immediately preceeding the CRLF.
|
yuuji@0
|
69 If it finds this sequence, it is the octet count of a non-
|
yuuji@0
|
70 synchronizing literal and the server MUST treat the specified number
|
yuuji@0
|
71 of following octets and the following line as part of the same
|
yuuji@0
|
72 command. A server MAY still process commands and reject errors on a
|
yuuji@0
|
73 line-by-line basis, as long as it checks for non-synchronizing
|
yuuji@0
|
74 literals at the end of each line.
|
yuuji@0
|
75
|
yuuji@0
|
76 Example: C: A001 LOGIN {11+}
|
yuuji@0
|
77 C: FRED FOOBAR {7+}
|
yuuji@0
|
78 C: fat man
|
yuuji@0
|
79 S: A001 OK LOGIN completed
|
yuuji@0
|
80
|
yuuji@0
|
81 4. Formal Syntax
|
yuuji@0
|
82
|
yuuji@0
|
83 The following syntax specification uses the augmented Backus-Naur
|
yuuji@0
|
84 Form (BNF) notation as specified in [RFC-822] as modified by [IMAP4].
|
yuuji@0
|
85 Non-terminals referenced but not defined below are as defined by
|
yuuji@0
|
86 [IMAP4].
|
yuuji@0
|
87
|
yuuji@0
|
88 literal ::= "{" number ["+"] "}" CRLF *CHAR8
|
yuuji@0
|
89 ;; Number represents the number of CHAR8 octets
|
yuuji@0
|
90
|
yuuji@0
|
91 6. References
|
yuuji@0
|
92
|
yuuji@0
|
93 [IMAP4] Crispin, M., "Internet Message Access Protocol - Version 4",
|
yuuji@0
|
94 draft-crispin-imap-base-XX.txt, University of Washington, April 1996.
|
yuuji@0
|
95
|
yuuji@0
|
96 [RFC-822] Crocker, D., "Standard for the Format of ARPA Internet Text
|
yuuji@0
|
97 Messages", STD 11, RFC 822.
|
yuuji@0
|
98
|
yuuji@0
|
99 7. Security Considerations
|
yuuji@0
|
100
|
yuuji@0
|
101 There are no known security issues with this extension.
|
yuuji@0
|
102
|
yuuji@0
|
103 8. Author's Address
|
yuuji@0
|
104
|
yuuji@0
|
105 John G. Myers
|
yuuji@0
|
106 Carnegie-Mellon University
|
yuuji@0
|
107 5000 Forbes Ave.
|
yuuji@0
|
108 Pittsburgh PA, 15213-3890
|
yuuji@0
|
109
|
yuuji@0
|
110 Email: jgm+@cmu.edu
|
yuuji@0
|
111
|
yuuji@0
|
112
|
yuuji@0
|
113
|
yuuji@0
|
114 Myers Standards Track [Page 2]
|
yuuji@0
|
115
|