437 Body of header is all blanks

Christoph Biedl cbiedl at gmx.de
Sun Jun 6 09:59:57 UTC 2004


This is a weird situation ...

Short version:
Why is there a message like '437 Body of header is all blanks in
"Organization" header'?

What actually happened:
Users at a server out of my control post articles every now and then
that carry an empty Organization header like "Organization: ". No idea
how and why they do it but this happens.

However: While an nnrpd would fill in the value from "organization:"
from inn.conf in such a situation and delete other empty headers, the
newsserver there (actually DNews) simply accepts that header and feeds
the article.

The article arrives at my INN 2.4.1 and is rejected with the message
above, since Organization is a "Standard optional header" which may not be
empty from innd's point of view. It may be missing but if present it
must be filled with content. This check takes place in ARTparseheader
innd/art.c.

What's the concept behind it? Will innd break it it finds an HTstd
article header that is empty? Other headers e.g. Summary: may be empty
and this is somewhat confusing. Is it possible to relax that checking at
least for those headers that are not parsed (probably Keywords:,
X-Trace: and some more) without rewriting art.c? [1]


Furthermore, I understand innd's behaviour as a violation of USEFOR.
Correct me if I'm wrong as I'm not an expert in RfC exegesis.

|   In accordance with the syntax, the header-name and colon on the first
|   line MUST be followed by a SP (even if the rest of the header is
|   empty, which in fact cannot occur because this standard defines no
                                                                    ^^
|   headers with empty content and extensions MUST NOT do so). Even
    ^^^^^^^^^^^^^^^^^^^^^^^^^^
Although this can be found in the discussion of folding I read this as
"Empty header are a bad thing in any way."

|   though the syntax allows otherwise, at least some visible content
|   MUST appear on that first line (to avoid the possibility of harm by
|   any non-compliant agent that might eliminate a trailing WSP). Posting
                                                                  ^^^^^^^
|   and injecting agents are REQUIRED to enforce these restrictions,
        ^^^^^^^^^^^^^^^^
So the newsreader didn't do his job and DNews didn't repair either. [2]

|   deleting any headers with empty content that are encountered, but
|   relaying and serving agents MUST accept and pass on untouched
|   articles that violate them.

But this would have been INN's task.


RfC 1036 isn't obvious about empty headers.
|                                                           Each header
|    line consist of a keyword, a colon, a blank, and some additional
|    information.
unless you assume that "additional" means non-zero-lenght.


son-of is vague:
[ again in the context of folding ]
|                                     Deleting  empty  headers and
|               placing some content on the start-line avoids this
|               issue...   which  is  desirable  (...)


Comments? Suggestions?

	Christoph

[1] For reasons discussed in [2] this requires a rewriting of
nnrpd/inews since innd cannot decide whether an article was feeded
from another server or from nnrpd.
[2] nnrpd isn't perfect in that, too. When posting an article,
"Summary: " would get stripped, "X-Newsreader: " not.


More information about the inn-workers mailing list