ietf-openproxy
[Top] [All Lists]

RE: capability negotiations

2003-10-08 13:49:41

On Wed, 8 Oct 2003, Martin Stecher wrote:

Agreed, regarding the syntax of structures.

Great.

I don't like yet that payload is separated with an empty line from
headers in case of named parameters but starts on a new line if
there are only anonymous params.

Yeah.

And the semicolon should either always or never start on a new line,
I think.

I like being able to write simple messages on one line

        CMD 1 2 3 4;

This would look worse, IMO:

        CMD 1 2 3 4
        ;

There is virtually no difference for the parser, I think. This is a
purely visual/presentational effect. One-liners are nice when you brag
about how compact OCP can be.

So, how about this little change?

  message = name [SP anonym-parameters] CRLF
            [named-parameters CRLF]
            [payload CRLF]
            ";" CRLF

Every element, but anonymous parameters, starts on a new line.

This does not allow for fast separation of "header" and payload using
a unique CRLFCRLF sequence. The latter is useful to make avoid parsing
partial input buffers until they are likely to contain complete
message headers.

I would like to keep simple messages on one line. How about always
separating payload with CRLFCRLF while still allowing for one-liners:

   message = name [SP anonym-parameters]
             [CRLF named-parameters]
             [CRLF CRLF payload]
             ";" CRLF

Every element, including anonymous parameters, starts with its own
unique sequence: SP, CRLF, and CRLFCRLF, and ;CRLF.
This would result in a very simple logic:

        1. Parse name.
        2. parse anonym-parameters if the next character is SP
        3. parse named-parameters if next characters are CRLF
           but not CRLFCRLF
        4. parse payload if next characters are CRLFCRLF
        5. parse trailer: ;CRLF

while allowing for an optimization:
        - Keep buffering until CRLFCRLF or ;CRLF is found
          or the buffer is full.

We can go further and replace
        [CRLF CRLF payload]
with
        [":" CRLF payload]
to avoid the "but not CRLFCRLF" clause above, but let's make MIME
fans comfortable, I guess.

This is probably equivalent to your last proposal except I preserved
one-liners and made payload easier to find without parsing.

Objections or further improvements?

Thanks,

Alex.



<Prev in Thread] Current Thread [Next in Thread>