Subject: Re: POSTED-1 vs. POSTED-2

From: "Charles Lindsey" <[email-masked]>
Date: Thu, 2 Feb 2006 14:27:50 GMT

In <[email-masked]> Frank Ellermann <[email-masked]> writes:

>In other words POSTED-1 is a standalone keyword, and POSTED-2
>comes with an argument <diagnostic-identity>.

>Therefore we don't need two different POSTED-1 and POSTED-2,
>one name POSTED with an optional <diagnostic-identity> will do:

>diag-match      =  "!"                           ; an additional "!"
>diag-posted     =  "!.POSTED" [ "." diag-identity ]
>diag-seen       =  "!.SEEN."        diag-identity
>diag-mismatch   =  "!.MISMATCH."    diag-identity
>diag-deprecated =  "!" 1*( path-nodot "." ) path-nodot

No. That doesn't do the whole job. Consider all the different kinds of
diagnostic one might like to write:

1. No diagnostics at all.
2. !.SEEN.foo.example!     (that's where I got the article from; I didn't
                            check it against what the incoming Path said)
3. !.MISMATCH.foo.example! (that's where I got the article from; I
                            checked, and that's NOT what the incoming
			    Path said)
4. !!                      (where I got the article from agreed with
                            what the incoming Path said)
5. !.POSTED!               (I am the injecting agent)
6. #5 plus #2
7. #5 plus #3
8. #5 plus #4

Your proposal gives !.POSTED.foo.example! for case #6, but makes no
provision for #7 and #8.

My suggestion allows:

   !.POSTED!.SEEN.foo.example!...
   !.POSTED!.MISMATCH.foo.example!...
   !.POSTED!!...

I.e., you just allow more than one diagnostic to be added by the one site.
A simple rule. It might admit some bizarre cases, but OTOH it would allow
for more extensions in the future. Yes, your grammar could be extended to
allow those, but it gets more complicated each time.

OTOH, we could decide that we don't actually need Cases #6, #7 and #8 at
all. I think that is the first decision we need to make, and then the gory
details can be fixed.

>Ideas about swapping "!.POSTED!" and "!.MATCH!" for "!!" also
>obsolete, we need some miracles to get the <path> right without
>any "!!" optimization.

The reason we have the short form "!!" for the !.MATCH! case rather than
for !.POSTED! is that there could be a dozen or more !.MATCH!es in the
header, and we are trying not to make that header unnecessarily long.

>> path = "Path" ":" SP [FWS]
>>           *( path-identity [FWS] "!" *( path-diagnostic ) )
>>           tail-entry [FWS] CRLF

>> path-diagnostic = "." keyword [ "." diagnostic-identity ] [FWS] "!"
>>                      / "!"

>One [FWS] too many.  No "!.POSTED!.SEEN.ip".  No "!.POSTED!!y".

I want [FWS] allowed in front of any "!" or "!!" (or after, or both if
people so want). KISS and all that.

My syntax allows both of "!.POSTED!.SEEN.ip" and "!.POSTED!!y", so I don't
understand your last remark.

>>> We had some "no IP" rough consensus, therefore you can't
>>> match it as ordinary <path-identity> together with FQDNs.

>> The only agents that will ever "parse" the Path header in
>> anger are relaying agents,

>Yes, with your ABNF they match IPv4 as <o-p-i>, with my latest
>ABNF they get <diag-deprecated> (= Harald's <o-p-d>), and for
>Russ' _old_ proposal they would get a <path-legacy> with dots.

It makes no difference whether naked IPv4 is classed as <o-p-i> or as
<o-p-d>, just so long as it is written that any <o-p-*> is MUST accept,
MUST NOT generate. So you write whichever syntax is easiest to write,
which is <o-p-i> AFAICS.

>Harald's <o-p-d> tries to guarantee that they'd ignore IPv4.

Any "ignoring" that happens is done by relayers, who will write the
fastest bit of C-code that will get the job done (which is likely to be to
accept them all, but just don't have any of the ignorable ones in your
'sys' file). Like I said below:

>> all they are ever going to do is to ignore any folding and
>> whitespace, and then identify the chunks that come between
>> the "!"s. If any such chunk appears in their 'sys' file, then
>> they will not forward the article to that site. So if some
>> admin is stupid enough to put ".POSTED" in his 'sys' file,
>> he will never forward any articles anywhere :-( .

-- 
Charles H. Lindsey ---------At Home, doing my own thing------------------------
Tel: +44 161 436 6131 Fax: +44 161 436 6133   Web: http://www.cs.man.ac.uk/~chl
Email: [email-masked]      Snail: 5 Clerewood Ave, CHEADLE, SK8 3JU, U.K.
PGP: 2C15F1A9      Fingerprint: 73 6D C2 51 93 A0 01 E7 65 E8 64 7E 14 A4 AB A5