Snapshot release 20030318-1713
Charles Cazabon <[email protected]> 18 Mar 2003 23:14:05 -0000
| Newsgroups | gmane.mail.bikini.devel |
|---|---|
| Message-ID | <[email protected]> |
Snapshot 20030318-1713 released and uploaded. From the CHANGELOG:
2003-03-18
Almost finish formal grammar for responses. Add note about registering
experimental capability X- tokens and commands.
Diff follows.
diff -urN --exclude=bikini.html --exclude=bikini.txt --exclude=CHANGELOG bikini-20030317-1704/bikini.texi bikini-20030318-1713/bikini.texi
--- bikini-20030317-1704/bikini.texi Mon Mar 17 17:04:07 2003
+++ bikini-20030318-1713/bikini.texi Tue Mar 18 17:13:37 2003
@@ -685,7 +685,13 @@
Servers MAY implement experimental or nonstandardized capabilities which
are not listed in this specification using capability tokens beginning with
@samp{X-} (i.e. @samp{X-FOO}). The BikINI protocol will never define
-a standard capability token beginning with @samp{X-}.
+a standard capability token beginning with @samp{X-}. I encourage client
+and server authors to register their @samp{X-...} tokens with me to prevent
+collisions. Authors should implement experimental commands with the same
+@samp{X-} prefix and use the command name as the capability token representing
+the command. For example, an experimental glob search command might use the
+command @samp{X-GLOBSEARCH} and be advertised with the capability token
+@samp{X-GLOBSEARCH}.
Servers MUST NOT send any capability tokens not defined in this specification
with the exception of tokens beginning with @samp{X-} as stated above.
@@ -749,6 +755,9 @@
@c ****************************************************************************
@chapter Commands
+Experimental commands must start with @samp{X-}. The Bikini protocol will
+never define a standard command starting with this prefix.
+
@c ============================================================================
@section Commands -- Authentication State
@@ -1577,6 +1586,9 @@
@c ; Any C0 Controls and Basic Latin, excluding NULL from
@c ; Code Charts, pages 7-6 through 7-9 in [UNICODE]
+BYTE = %x00-FF
+ ; any 8-bit byte
+
CR = %x0D
; Carriage Return
@@ -1660,6 +1672,9 @@
content-size = NONZERODIGIT *DIGIT
; Positive nonzero decimal number with no leading zeroes.
+content-block = 1*BYTE
+ ; content-size bytes of 8-bit data
+
year = 4DIGIT
; valid values are 1970 - 9999. We'll need to revisit this before
; Y10K.
@@ -1706,19 +1721,17 @@
response-line = <response-code-char> <response-modifier> SP <response-info> CR LF
; space is required even though response-info can be empty
-success-line = %x4B SP <response-info> CR LF
+positive-response = %x4B SP <response-info> CR LF
; space is required even though response-info can be empty
continuation-line = %x2B SP 1*NORMCHAR CR LF
; "+" SP ...
-multiline-response = *<continuation-line> <success-line>
+multiline-response = *<continuation-line> <positive-response>
; zero or more continuation lines followed by a "K" response line
negative-response = negative-response-code-char <response-modifier> SP response-info
-positive-response = %x4B <response-modifier> SP response-info
-
command = ( %x41 %x55 %x54 %x48 ) ; AUTH
command =/ ( %x43 %x41 %x50 %x53 ) ; CAPS
command =/ ( %x43 %x4C %x45 %x41 %x52 %x46 %x4C %x41 %x47) ; CLEARFLAG
@@ -1779,6 +1792,7 @@
; uppercase "AUTH" followed by a space, auth-method, then optional auth tokens
auth-response = ( negative-response )
+auth-response =/ ( positive-response )
;
@end example
@@ -1795,7 +1809,7 @@
; uppercase "CAPS"
caps-response = ( negative-response )
-caps-response =/ ( *(%x2B SP 1*NORMCHAR CR LF) positive-response CR LF )
+caps-response =/ ( *(%x2B SP 1*NORMCHAR CR LF) positive-response )
;
@end example
@@ -1828,6 +1842,7 @@
; uppercase "LISTDIRS"
listdirs-response = ( negative-response )
+listdirs-response =/ ( *(%x2B SP message-listing CR LF) positive-response )
;
@end example
@@ -1844,6 +1859,7 @@
; uppercase "MKDIR", space, directory path
mkdir-response = ( negative-response )
+mkdir-response =/ ( positive-response )
;
@end example
@@ -1860,6 +1876,7 @@
; uppercase "RMDIR", space, directory path
rmdir-response = ( negative-response )
+rmdir-response =/ ( positive-response )
;
@end example
@@ -1876,6 +1893,7 @@
; uppercase "MKFOLDER", space, folder path and name
mkfolder-response = ( negative-response )
+mkfolder-response =/ ( positive-response )
;
@end example
@@ -1892,6 +1910,7 @@
; uppercase "RMFOLDER", space, folder path and name
rmfolder-response = ( negative-response )
+rmfolder-response =/ ( positive-response )
;
@end example
@@ -1908,6 +1927,7 @@
; uppercase "MVFOLDER", space, old folder path and name, space, new folder path and name
mvfolder-response = ( negative-response )
+mvfolder-response =/ ( positive-response )
;
@end example
@@ -1940,12 +1960,14 @@
; uppercase "GET", space, folder path and name, /, message identifier
get-response = ( negative-response )
+get-response =/ ( %x4B SP content-size content-block positive-response )
;
@end example
@strong{Notes:}
@itemize @bullet
-@item
+@item content-block is exactly content-size bytes of 8-bit data, with an [RFC-2822]
+message using LF-only line ends being the normal payload
@end itemize
@c ----------------------------------------------------------------------------
@@ -1956,12 +1978,15 @@
; uppercase "GETHDR", space, folder path and name, /, message identifier
gethdr-response = ( negative-response )
+gethdr-response =/ ( %x4B SP content-size content-block positive-response )
;
@end example
@strong{Notes:}
@itemize @bullet
-@item
+@item content-block is exactly content-size bytes of 8-bit data, with an [RFC-2822]
+message header using LF-only line ends being the normal payload. The header
+ends with LF LF.
@end itemize
@c ----------------------------------------------------------------------------
@@ -1972,12 +1997,13 @@
; uppercase "PUT", space, folder path and name, space, message length
put-response = ( negative-response )
+put-response =/ ( %x4B SP message-identifier )
;
@end example
@strong{Notes:}
@itemize @bullet
-@item
+@item The new message identifier is returned in the successful response.
@end itemize
@c ----------------------------------------------------------------------------
@@ -1988,6 +2014,7 @@
; uppercase "RMMSG", space, folder path and name, /, message identifier
rmmsg-response = ( negative-response )
+rmmsg-response =/ ( positive-response )
;
@end example
@@ -2004,12 +2031,13 @@
; uppercase "MVMSG", space, old folder path and name, /, message identifier, space, new folder path and name
mvmsg-response = ( negative-response )
+mvmsg-response =/ ( %x4B SP message-identifier )
;
@end example
@strong{Notes:}
@itemize @bullet
-@item
+@item The new message identifier is returned in the successful response.
@end itemize
@c ----------------------------------------------------------------------------
@@ -2020,6 +2048,7 @@
; uppercase "SETFLAG", space, flag, space, folder path and name, /, message identifier
setflag-response = ( negative-response )
+setflag-response =/ ( positive-response )
;
@end example
@@ -2036,6 +2065,7 @@
; uppercase "CLEARFLAG", space, flag, space, folder path and name, /, message identifier
clearflag-response = ( negative-response )
+clearflag-response =/ ( positive-response )
;
@end example
@@ -2071,6 +2101,7 @@
; uppercase "SEND", space, folder path and name, /, message identifier, space, envelope length
send-response = ( negative-response )
+send-response =/ ( positive-response )
;
@end example