[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: #1416
Russ Allbery <rra@xxxxxxxxxxxx>:
Briefly: the Message-ID plus the Date is the unique identifier for the
message.
I'm with Frank in being confused by this statement. According to USEFOR:
A "message identifier" (Section 3.1.3) is a unique identifier for an
article, usually supplied by the "user agent" that posted it or,
failing that, by the "news server". It distinguishes the article
from every other article ever posted anywhere. Articles with the
same message identifier are treated as if they are the same article
regardless of any differences in the body or header fields.
This clearly states that two articles with the same message id, even with
different dates, are the same article. "Every article ... ever". If you
say that "message id plus date" is the unique identifier, then you are
saying that two messages with different dates but identical message ids
are two different messages -- a violation of the definition of message id.
If you allow an injecting agent to change one or the other (and
adding an Injection-Date is effectively changing the Date),
It does not change the Date header.
It requires, if I remember correctly, badly-timed multiple
injection of the message such that it expires on the basis of its original
Date and is then reaccepted on the basis of the modified Injection-Date.
If a message is expired based on the Date header, why would the server
then accept the same article with the same Date header later? If it does,
it's just going to expire it again. This just doesn't make sense. It
sounds too much like a bug and not a feature.
Assuming that the message ever gets to you, yes. However, unless enough
other servers implement Injection-Date to allow flood-fill to reach you, a
message that benefits from this feature won't get to you for you to be
able to benefit.
So the benefit you see is that articles with really old dates will still
be propogated, even though the date indicates that the message predates
the start of a local history file and thus the article is assumed to have
been seen already?
Our protocol, as currently documented in -10, contains nothing about old
article prevention except at the injecting agent point (see below).
By assuming "old date" (defined as "prior to oldest local history file
entry") means "has already been seen", section 3.3 does implicitly deal
with old article rejection. Not an important point, but still true.
Date or Injection-Date is a way to avoid having to keep perpetual history
to satisfy this requirement.
Yes, by assuming that "old" means "already seen". Only then can you say
that not finding a message id in the history means that you've already
seen the article, when normally not finding the message id means you
haven't seen it yet.
The
only protocol function (from a USEPRO, not a USEFOR, perspective) of the
Date and Injection-Date header is to enable the normal history mechanism
to function.
Some headers, sometimes, serve more than just a "protocol function from a
USEPRO perspective". I see value in Injection-Date as a record of when the
article was injected versus when it was written.
For that reason, I think I have to object to the exclusion statement and
require injecting agents to put in an Injection-Date header unless that
header is already there, without regard to existing message id or date
headers.