From: Russ Allbery (rra@stanford.edu)
Date: Mon Feb 02 2004 - 17:51:23 CST
John Stanley <stanley@peak.org> writes:
> Russ Allbery (rra@stanford.edu):
>> Usenet wants the Date header to be the injection time, not the time at
>> which the message was written, for protocol reasons.
> USENET appears to want the date the article was written by the poster,
> which is what most people would consider the "time that the article was
> prepared by the poster ready for transmission". I would certainly call
> any article that is written and posted "offline" was prepared for
> transmission at the time it was posted offline, not the time the system
> next came online to talk to the injecting agent.
Okay, sorry.
The NNTP protocol wants the Date header to be the injection time, not the
time at which the message was written, for protocol reasons. I don't know
if Usenet over UUCP has similar issues or not.
> However, in 8.2.1:
> ... A proto-article has the same format as a normal article
> except that some of the following mandatory headers MAY be omitted:
> Message-Id-header, ...
> So, we are talking about an article which may have a Date header but no
> message id. A history file is useless in this context, since there is no
> reasonable way for the injector to keep track of id-less articles.
Yes, agreed. This isn't the point at which the problem occurs.
The problem occurs later on, since the injection server is required to
retain the author-supplied Date header. The article is then backdated
relative to its actual injection time, and when transferred to other
servers, may be rejected if the degree of backdating is longer than their
history retention period.
If the injecting server were allowed to replace the Date header, this
particular problem wouldn't occur, but that would lead to other, more
severe problems by breaking the Usenet loop detection algorithm.
Note that some transit servers, in order to keep their history file small,
may use an extremely short history expiration period. Except for heavily
filtered messages (like binaries) which may take a circuitous route (and
thank you to Bruce for reminding me of that issue; I'd forgotten about
it), a history expiration period of one day would be fine for the vast
majority of messages... but only if the Date header is approximately the
injection date, not the date the article is written.
> If we want the Date header to be injection time, then we must modify
> 8.2.1 to say that Date is prohibited, and 8.2.2 to say that it is the
> duty of the injector to insert the date always.
Agreed.
> Certainly, this is one way to solve the issue of how far into the past
> an injector should allow the date header to be in a proto-article. It
> also solves the issue of how far into the future. :-) Does it fit with
> current practice and current posting agents?
It would definitely break a non-trivial number of posting agents. Whether
those agents *need* to supply the Date header is another question, but
they do so currently.
> Does it fit with user expectations for this header?
This I don't really know. I'm not sure how many people use the Date
header for its defined purpose as the article preparation time. (It's
occasionally a useful bit of information to know, when for example someone
posts a message and appears to have not read any of the previous day's
discussion -- sometimes they actualy haven't. But I don't know how many
people pay enough attention to notice things like that.)
-- Russ Allbery (rra@stanford.edu) <http://www.eyrie.org/~eagle/>