Snapshot release 20030317-1704
Charles Cazabon <[email protected]> 17 Mar 2003 23:04:33 -0000
| Newsgroups | gmane.mail.bikini.devel |
|---|---|
| Message-ID | <[email protected]> |
Snapshot 20030317-1704 released and uploaded. From the CHANGELOG: 2003-03-17 Get a start on formal grammar for individual commands and responses. Add "P" flag to grammar. Diff follows. diff -urN --exclude=bikini.html --exclude=bikini.txt --exclude=CHANGELOG bikini-20030310-1502/bikini.texi bikini-20030317-1704/bikini.texi --- bikini-20030310-1502/bikini.texi Mon Mar 10 15:02:22 2003 +++ bikini-20030317-1704/bikini.texi Mon Mar 17 17:04:07 2003 @@ -1427,8 +1427,6 @@ S: K ok, directory removed @end example -??? Allow multiple flags in single command? - @c ---------------------------------------------------------------------------- @node clearflag @subsection CLEARFLAG @@ -1457,8 +1455,6 @@ S: K ok, directory removed @end example -??? Allow multiple flags in single command? - @c ---------------------------------------------------------------------------- @c @node search @c @subsection SEARCH @@ -1538,8 +1534,8 @@ C: SEND projects/alpha/1046273407.M181707P22689Q2.localhost 65 S: K ok, send envelope of 65 octets C: [email protected]\[email protected]\[email protected]\0 - finished -S: K ok, message sent to 2 recipient(s) + finished +S: K ok, message sent to 2 recipient(s) @end example @example @@ -1551,16 +1547,16 @@ C: SEND projects/alpha/1046273407.M181707P22689Q2.localhost 65 S: K ok, send envelope of 65 octets C: [email protected]\[email protected]\[email protected]\0 - finished -S: A error queuing message, try again later + finished +S: A error queuing message, try again later @end example @example C: SEND projects/alpha/1046273407.M181707P22689Q2.localhost 65 S: K ok, send envelope of 65 octets C: [email protected]\[email protected]\[email protected]\0 - finished -S: E you're not "[email protected]" + finished +S: E you're not "[email protected]" @end example @c **************************************************************************** @@ -1654,11 +1650,11 @@ ; in LISTDIRS output, the trailing "/" indicates a directory ; instead of a mail folder -flag = %x44 / %x46 / %x4E / %x52 / %x53 / %x54 - ; current flags D, F, N, R, S, and T are uppercase only ; because of +flag = %x44 / %x46 / %x4E / %x50 / %x52 / %x53 / %x54 + ; current flags D, F, N, P, R, S, and T are uppercase only ; because of ; case-sensitivity, new flags can be added later using "r", etc. -flags = [%x44] [%x46] [%x4E] [%x52] [%x53] [%x54] +flags = [%x44] [%x46] [%x4E] [%x50] [%x52] [%x53] [%x54] ; flags are in any order but cannot be repeated content-size = NONZERODIGIT *DIGIT @@ -1694,6 +1690,9 @@ response-code-char = %x2B / %x41 / %x45 / %x4B / %x55 / %x58 ; single character response code +, A, E, K, U, or X +negative-response-code-char = %x41 / %x45 / %x55 / %x58 + ; single character response code A, E, U, or X + response-modifier-char = %x43 ; single character response modifier C. New modifiers may be added ; later. @@ -1716,6 +1715,10 @@ multiline-response = *<continuation-line> <success-line> ; 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 @@ -1746,13 +1749,335 @@ auth-method =/ ( %x50 %x4C %x41 %x49 %x4E ) ; PLAIN auth-method =/ ( %x4D %x45 %x53 %x53 %x41 %x47 %x45 %x2D %x53 %x49 %x5A %x45 ) ; MESSAGE-SIZE -auth-command = ( %x41 %x55 %x54 %x48 ) auth-method *(SP auth-token) +@c ============================================================================ +@section Commands + +This section details the formal grammar for each command and possible responses +to the command. + +@c ---------------------------------------------------------------------------- +@subsection STARTTLS + +@example +starttls-command = ( %x53 %x54 %x41 %x52 %x54 %x54 %x4C %x53 ) + ; uppercase "STARTTLS", ??? finish this + +starttls-response = ( negative-response ) + ; +@end example + +@strong{Notes:} +@itemize @bullet +@item +@end itemize + +@c ---------------------------------------------------------------------------- +@subsection AUTH + +@example +auth-command = ( %x41 %x55 %x54 %x48 SP auth-method *(SP auth-token)) + ; uppercase "AUTH" followed by a space, auth-method, then optional auth tokens + +auth-response = ( negative-response ) + ; +@end example + +@strong{Notes:} +@itemize @bullet +@item special case; can be a prompt for more info (@samp{+}), or success or failure ??? finish this +@end itemize + +@c ---------------------------------------------------------------------------- +@subsection CAPS + +@example +caps-command = ( %x43 %x41 %x50 %x53 ) + ; uppercase "CAPS" + +caps-response = ( negative-response ) +caps-response =/ ( *(%x2B SP 1*NORMCHAR CR LF) positive-response CR LF ) + ; +@end example + +@strong{Notes:} +@itemize @bullet +@item +@end itemize + +@c ---------------------------------------------------------------------------- +@subsection QUIT + +@example +quit-command = ( %x51 %x55 %x49 %x54 ) + ; uppercase "QUIT" + +quit-response = () + ; no response, connection just closes ??? how to say this in ABNF +@end example + +@strong{Notes:} +@itemize @bullet +@item +@end itemize + +@c ---------------------------------------------------------------------------- +@subsection LISTDIRS + +@example +listdirs-command = ( %x4C %x49 %x53 %x54 %x44 %x49 %x52 %x53 ) + ; uppercase "LISTDIRS" + +listdirs-response = ( negative-response ) + ; +@end example + +@strong{Notes:} +@itemize @bullet +@item +@end itemize + +@c ---------------------------------------------------------------------------- +@subsection MKDIR + +@example +mkdir-command = ( %x4D %x4B %x44 %x49 %x52 SP directory-path) + ; uppercase "MKDIR", space, directory path + +mkdir-response = ( negative-response ) + ; +@end example + +@strong{Notes:} +@itemize @bullet +@item +@end itemize + +@c ---------------------------------------------------------------------------- +@subsection RMDIR + +@example +rmdir-command = ( %x52 %x4D %x44 %x49 %x52 SP directory-path) + ; uppercase "RMDIR", space, directory path + +rmdir-response = ( negative-response ) + ; +@end example + +@strong{Notes:} +@itemize @bullet +@item +@end itemize + +@c ---------------------------------------------------------------------------- +@subsection MKFOLDER + +@example +mkfolder-command = ( %x4D %x4B %x46 %x4F %x4C %x44 %x45 %x52 SP folder-path) + ; uppercase "MKFOLDER", space, folder path and name + +mkfolder-response = ( negative-response ) + ; +@end example + +@strong{Notes:} +@itemize @bullet +@item +@end itemize + +@c ---------------------------------------------------------------------------- +@subsection RMFOLDER + +@example +rmfolder-command = ( %x52 %x4D %x46 %x4F %x4C %x44 %x45 %x52 SP folder-path) + ; uppercase "RMFOLDER", space, folder path and name + +rmfolder-response = ( negative-response ) + ; +@end example + +@strong{Notes:} +@itemize @bullet +@item +@end itemize + +@c ---------------------------------------------------------------------------- +@subsection MVFOLDER + +@example +mvfolder-command = ( %x4D %x56 %x46 %x4F %x4C %x44 %x45 %x52 SP folder-path SP folder-path) + ; uppercase "MVFOLDER", space, old folder path and name, space, new folder path and name + +mvfolder-response = ( negative-response ) + ; +@end example + +@strong{Notes:} +@itemize @bullet +@item +@end itemize + +@c ---------------------------------------------------------------------------- +@subsection LISTMSGS -argument = 1*VCHAR +@example +listmsgs-command = ( %x4C %x49 %x53 %x54 %x4D %x53 %x47 %x53 SP folder-path) + ; uppercase "LISTMSGS", space, folder path and name -command-line = <command> *(SP argument) CR LF +listmsgs-response = ( negative-response ) + ; +@end example +@strong{Notes:} +@itemize @bullet +@item +@end itemize + +@c ---------------------------------------------------------------------------- +@subsection GET + +@example +get-command = ( %x47 %x45 %x54 SP message-path) + ; uppercase "GET", space, folder path and name, /, message identifier + +get-response = ( negative-response ) + ; +@end example + +@strong{Notes:} +@itemize @bullet +@item +@end itemize + +@c ---------------------------------------------------------------------------- +@subsection GETHDR + +@example +gethdr-command = ( %x47 %x45 %x54 %x48 %x44 %x52 SP message-path) + ; uppercase "GETHDR", space, folder path and name, /, message identifier + +gethdr-response = ( negative-response ) + ; @end example + +@strong{Notes:} +@itemize @bullet +@item +@end itemize + +@c ---------------------------------------------------------------------------- +@subsection PUT + +@example +put-command = ( %x50 %x55 %x54 SP folder-path SP content-size) + ; uppercase "PUT", space, folder path and name, space, message length + +put-response = ( negative-response ) + ; +@end example + +@strong{Notes:} +@itemize @bullet +@item +@end itemize + +@c ---------------------------------------------------------------------------- +@subsection RMMSG + +@example +rmmsg-command = ( %x52 %x4D %x4D %x53 %x47 SP message-path) + ; uppercase "RMMSG", space, folder path and name, /, message identifier + +rmmsg-response = ( negative-response ) + ; +@end example + +@strong{Notes:} +@itemize @bullet +@item +@end itemize + +@c ---------------------------------------------------------------------------- +@subsection MVMSG + +@example +mvmsg-command = ( %x4D %x56 %x4D %x53 %x47 SP message-path SP folder-path) + ; uppercase "MVMSG", space, old folder path and name, /, message identifier, space, new folder path and name + +mvmsg-response = ( negative-response ) + ; +@end example + +@strong{Notes:} +@itemize @bullet +@item +@end itemize + +@c ---------------------------------------------------------------------------- +@subsection SETFLAG + +@example +setflag-command = ( %x53 %x45 %x54 %x46 %x4C %x41 %x47 SP flag SP message-path) + ; uppercase "SETFLAG", space, flag, space, folder path and name, /, message identifier + +setflag-response = ( negative-response ) + ; +@end example + +@strong{Notes:} +@itemize @bullet +@item +@end itemize + +@c ---------------------------------------------------------------------------- +@subsection CLEARFLAG + +@example +clearflag-command = ( %x43 %x4C %x45 %x41 %x52 %x46 %x4C %x41 %x47 SP flag SP message-path) + ; uppercase "CLEARFLAG", space, flag, space, folder path and name, /, message identifier + +clearflag-response = ( negative-response ) + ; +@end example + +@strong{Notes:} +@itemize @bullet +@item +@end itemize + +@c ---------------------------------------------------------------------------- +@c @subsection SEARCH +@c +@c @strong{Syntax:} +@c @example +@c ( %x51 %x55 %x49 %x54 ) +@c ; uppercase "QUIT" +@c @end example +@c +@c @strong{Response:} +@c @itemize @bullet +@c @item +@c @end itemize +@c +@c @strong{Notes:} +@c @itemize @bullet +@c @item +@c @end itemize + +@c ---------------------------------------------------------------------------- +@subsection SEND + +@example +send-command = ( %x53 %x45 %x4E %x44 SP message-path SP content-size) + ; uppercase "SEND", space, folder path and name, /, message identifier, space, envelope length + +send-response = ( negative-response ) + ; +@end example + +@strong{Notes:} +@itemize @bullet +@item +@end itemize @c **************************************************************************** @chapter Examples