Re: Distributions, chkscopes and wildmats

New Message Reply About this list Date view Thread view Subject view Author view

From: Charles Lindsey (chl@clw.cs.man.ac.uk)
Date: Mon Feb 04 2002 - 06:35:33 CST


In <Pine.LNX.3.91.1020201093058.2734C-100000@darkstar.prodigy.com> Bill Davidsen <davidsen@prodigy.com> writes:

>On Thu, 31 Jan 2002, Charles Lindsey wrote:

>> Also, in checkgroups nessages, our draft allows a chkscope parameter of the form
>> Control: checkgroups de, !de.binaries
>> whose semantics are not entirely clear (I used de.* as an example
>> because I seem to remember that there is a case in that hierarchy
>> that caused us to insert the `!` feature, but I do not recall the
>> precise details). Anyway, it is not clear what would be the meaning of
>> "de, !de", or whether "!de.binaries, de" would have meant something
>> different.

>I don't see that "de, !de" differs from your "foo,!foo" above. But to be
>useful the list MUST be parsed left to right. Therefore:
> de,!de.sex,de.sex.mod all of de, except de.sex and including de.sex.mod
> !de.binaries,de I would suspect this means all of de, at
> least to me.

Exactly so, but that is NOT parsing left to right. It is parsing right to
left. Try it:

You have 'de.sex.mod'. Start at the right. It matches (positively)
immediately. Stop parsing. It is allowed.

You have 'de.sex.foo'. Start at the right. The first match (negative) is
with '!de.sex'. Stop parsing. It is not allowed.

You have 'de.bar'. Start at the right. The first match (positive) is with
'de'. Stop parsing. It is allowed.

>> Also, in the latest NNTP draft, there is provision for wildmats such as
>> de.*,!de.binaries.*
>> where, after much discussion, we arrived at the rule:
>> "start from the right hand end and find the first wildmat component
>> that matches the target. If it is a negative component, the match
>> fails; if it is positive the match succeeds."

>This seems to preclude my example above, and I don't believe that's
>intended behaviour, is it? It would prevent rules like "all this
>hierarchy except this branch but including this twig on that branch"
>which are real-life useful.

No, that matches your example correctly.

Anyway, I think we are agreed as to the behaviour required for chkscope.
The complete wording is now as follows:

   A "checkgroups" message applies to any (sub-)hierarchy with a prefix
   listed in the chkscope parameter, provided that the rightmost
   matching newsgroup-name in the list is not immediately preceded by a
   "!". If no chkscope parameter is given, it applies to all
   hierarchies for which group statements appear in the message.
 
        NOTE: Some existing software does not support the "chkscope"
        parameter. Thus a "checkgroups" message SHOULD also contain the
        groups of other subhierarchies the sender is not responsible
        for. "New" software MUST ignore groups which do not fall within
        the chkscope parameter of the "checkgroups" message.
 
   The chksernr parameter is a serial number, which can be any positive
   integer (e.g. just numbered or the date in YYYYMMDD). It SHOULD
   increase by an arbitrary value with every change to the group list
   and MUST NOT ever decrease.
 
        NOTE: This was added to circumvent security problems in
        situations where the Date header cannot be authenticated.

   Example:

      Control: checkgroups de !de.alt #248

   which includes the whole of the 'de.*' hierarchy, with the exception
   of its 'de.alt.*' sub-hierarchy.

>> Currently, our draft allows
>> Distribution: foo, !bar, baz
>> with the semantics that the article is rejected unless the agent has
>> been configured to send/accept at least one of the +ve distrubutions
>> and none of the -ve ones (so Distribution: foo, !foo would be rejected
>> everywhere).

>And justly so ;-)
>
>> Note that the mechanism which an agent uses to configure itself are none
>> of our business, but in practice the config would likely use wildmats of
>> the form "all,!foo". I think INN may be like that, and certainly CNews
>> has something of that sort.
>>

However, I am not so convinced that we have got the semantics of
Distribution correct, nor that we should not be specifying a right-to-left
mechanism there. However, let us first consider some examples.

Suppose a server is configured to send (or accept)
        world, !??, us
(that is a wildmat accepting all distributions except two-letter
(regional) ones apart from 'us').

So it accepts Distribution: us, but not Distribution: uk. It also rejects
Distribution: !us. So far so good.

But now consider a server configured to accept
        world
(that is, a default server, and includes 95% of current servers worldwide).

That server will also reject Distribution: !us.

Certainly, that is what our current text seems to say. Is that correct? It
is so long since I wrote that particular text that I do not remember any
more exactly what the issues were.

-- 
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: chl@clw.cs.man.ac.uk      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


New Message Reply About this list Date view Thread view Subject view Author view


This archive was generated by hypermail 2b29.