Subject: Question about rejects by serving agents

From: Julien ÉLIE <[email-masked]>
Date: Tue, 7 Apr 2009 20:38:14 +0200

Hi,

In 3.7, a serving agent "MUST reject any article that does not include
all the mandatory header fields or any article which contains header
fields that do not have valid contents".

Is there a reason why a serving agent MUST reject such articles?
I understand that injecting agents MUST (because it happens at
the beginning) but what surprises me is that it is a SHOULD for
relaying agents.

Wouldn't it be better to have either MUST or SHOULD for both relaying
and serving agents?  No need to relay the article if it MUST be
rejected at the end, isn't it?

-- 
Julien ÉLIE

« En voyant le lit vide, il le devint. » (Ponson du Terrail)

---

From: Russ Allbery <[email-masked]>
Date: Tue, 07 Apr 2009 12:41:53 -0700

> Is there a reason why a serving agent MUST reject such articles?

If it served out such a message, it would be violating the protocol.
Clients should be able to assume that the serving agent won't give them
malformed articles.  (This is kind of true of relaying agents as well, but
since they only talk to serving agents, it's less critical.)

> I understand that injecting agents MUST (because it happens at the
> beginning) but what surprises me is that it is a SHOULD for relaying
> agents.

Relaying agents are often very stupid and don't really look at the
article.  We wrote the standard to allow for this because they're
speed-critical and some implementors don't like doing a full validation at
that stage.

-- 
Russ Allbery ([email-masked])             <http://www.eyrie.org/~eagle/>

---

From: Julien ÉLIE <[email-masked]>
Date: Tue, 7 Apr 2009 23:39:43 +0200

Hi Russ,

> since they only talk to serving agents, it's less critical.)

OK.

> speed-critical and some implementors don't like doing a full validation at

That makes sense.  Thanks Russ.

-- 
Julien ÉLIE

« Ô temps suspends ton vol ! Et vous heures propices,
  Suspendez votre cours. » (Alphonse de Lamartine)