From: Charles Lindsey (chl@clerew.man.ac.uk)
Date: Wed Feb 04 2004 - 07:43:51 CST
In <87ptcvdg1i.fsf@windlord.stanford.edu> Russ Allbery <rra@stanford.edu> writes:
>Charles Lindsey <chl@clerew.man.ac.uk> writes:
>> 6. I therefore propose the following:
>> Agents doing staleness checks SHOULD/MUST use either the
>> composition-date or the injection-date, WHICHEVER IS THE LATER.
>I'm reluctant to require both date headers to be parsed when it doesn't
>seem necessary. Why not say that the injection-date should/must be used
>if present, and otherwise the composition-date must be used?
Yes, that occurred to me after I had posted that message. You look for an
Injection-Date-header (or whatever we provide). If it is present, you use
it. If not, you look at the Date.
>> Injecting agents/moderators/etc SHOULD/MUST include the injection-date
>> in the article if it is more that 24 (72/whatever) hours later than the
>> composition-date and MAY/SHOULD include it regardless.
>If we're going to change everything, why not just require it always be
>present? Many servers are already generating NNTP-Posting-Date; we could
>just use that header as-is or just rename it to something else.
But I don't think we are trying to "change everything". Articles with
Date-header only are going to be around for a long time whatever we say,
and agents that care about staleness are going to have to live with that
for a long time.
As to NNTP-Posting-Date, my view is that it is nothing to do with NNTP,
and it is nothing to do with posting (except that the injection command in
NNTP happens to be called POST). So if we are not going to use
Injector-Info (as the arguments against that seem pretty sound) then I
think we invent a new Injection-Date-header or some such and deprecate
NNTP-Posting-Date (as indeed we currently do). Of course the NNTP-*
headers will still be around for quite a while, and if agents care to use
them in the meantime, then so be it.
>> I suspect the 2nd injector needs to overwrite whatever Injection-Date
>> was present before (which is what we currently prescribe for
>> Injector-Info).
>No, if we're using injection-date for the staleness check, it may not ever
>be overwritten or modified, for the same reason that we require the server
>not modify the Date header. Doing anything else breaks Usenet's loop
>detection algorithm and potentially allows reinjection of stale messages.
No, I don't think it is as simple as that. We need to analyze the reasons
why double injection occurs. My belief is that the commonest cause will be
because there is confusion or disagreement as to who is doing the actual
injection (and especially so since INN has implemented "IHAVE for anybody"
which either injects or relays according to how well it trusts the
client).
For example, I usually post to two sites. At the primary site, I have
IHAVE privilege, so I am the injector, so I need to write Injector-Info
and the like. At the backup site (the primary being notoriously
unreliable) I use the new INN "IHAVE" which, in my case, actually POSTs,
so I expect it to remove any Injector-Info I have written and insert its
own. And in that situation it would make good sense for it to overwrite
any Injection-Date I had written.
But the other case where dual injection arises is when an article gets
gatewayed out into email and is later gatewayed back in. In that case
preserving the original Injection-Date is probably better. But is there
some way to tell the two cases apart?
-- 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@clerew.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