[ietf-nntp] RE: How to organize the base NNTP draft
Ken Murchison
ken at oceana.com
Tue Jun 8 12:27:53 PDT 2004
Clive D.W. Feather wrote:
> Ken Murchison said:
>
>>>I'm revisiting the ABNF in the core document in response to your query the
>>>other day. Hopefully I will have something for you later.
>
>
> Have a look at the draft 23 pre 3 I've just posted.
Here's what I currently have base on 23pre3. Comments?
3. Augmented BNF Syntax for the AUTHINFO Extension
This section describes the syntax of the AUTHINFO extension. It
extends the syntax in [NNTP], and non-terminals not defined in this
document are defined there.
3.1. Commands
This syntax extends the non-terminal "command", which represents an
NNTP command.
command /= authinfo-user-command /
authinfo-pass-command /
authinfo-sasl-command
authinfo-user-command = "AUTHINFO" WS "USER" WS username
authinfo-pass-command = "AUTHINFO" WS "PASS" WS password
authinfo-sasl-command = "AUTHINFO" WS "SASL" WS sasl-mechanism-name
[WS sasl-initial-response]
username = 1*P-CHAR
password = 1*P-CHAR
sasl-initial-response = ("=" / base64)
3.2. Command Continuation
This syntax extends the non-terminal "command-continuation", which
represents the further material sent by the client in the case of
multi-stage commands.
command-continuation /= authinfo-sasl-continuation
authinfo-sasl-continuation = *([sasl-client-response] CRLF)
; client waits for a "383" response from the server before
; sending each line
sasl-client-response = ("*" / base64)
3.3. Responses
This syntax extends the non-terminal "response", which represents
what is sent from the server to the client in response to a command
or command-continuation.
argument /= sasl-server-challenge
sasl-server-challenge = ("=" / base64)
3.4. LIST EXTENSIONS responses
This syntax defines the specific LIST EXTENSIONS responses for the
AUTHINFO extension.
extension-descriptor /= authinfo-extension
authinfo-extension = %x41.55.54.48.49.4E.46.4F ; "AUTHINFO"
*(SPA authinfo-extension-arg)
authinfo-extension-arg = "USER" /
("SASL:" sasl-mechanism-name *("," sasl-mechanism-name))
3.5. General non-terminals
sasl-mechanism-mame = 1*20sasl-mech-char
sasl-mech-char = %x41-5A / DIGIT / "-" / "_"
; mechanism names restricted to uppercase letters,
; digits, "-" and "_"
base64 = *(4base64-char) [base64-terminal]
base64-terminal = (2base64-char "==") / (3base64-char "=")
base64-char = ALPHA / DIGIT / "+" / "/"
; case sensitive
--
Kenneth Murchison Oceana Matrix Ltd.
Software Engineer 21 Princeton Place
716-662-8973 x26 Orchard Park, NY 14127
--PGP Public Key-- http://www.oceana.com/~ken/ksm.pgp
More information about the ietf-nntp
mailing list