[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [leafnode-list] Message-ID already in use.



Grahame Cooper <Grahame@xxxxxxxxxxxxxxxx> writes:

> OK. Did some debugging which eventually led me to the following. Please
> could you confirm that I am right in thinking this exchange is
> ridiculous before I contact NTL:
>
> [root@cooper-linux log]# telnet inktomi2-bro.server.ntl.com 119
> Trying 80.1.224.5...
> Connected to inktomi2-bro.server.ntl.com (80.1.224.5).
> Escape character is '^]'.
> 200 ntl NNTP news cache. posting ok (feedback to
> nntptrial-feedback@xxxxxxxx)
> STAT <n4ag9-ibu.ln1@xxxxxxxxxxxxxxxxxxxxx>
> 223 0 <n4ag9-ibu.ln1@xxxxxxxxxxxxxxxxxxxxx>
> HEAD <n4ag9-ibu.ln1@xxxxxxxxxxxxxxxxxxxxx>
> 430 No Such Article

The server is broken.

It is not the only software to treat a STAT command different from
HEAD/BODY/ARTICLE, although technically, treating these four commands
the same and just switching the result code to the proper
220/221/222/223 (or 430) is easier. Admittedly, the original RFC-977 did
not envision the use of "STAT" to figure if an article is already
available upstream, probably, NNTP proxies were not in use at that time.

My understanding of what STAT <Message-ID> should do is:

* figure if the article given is present.
  if it is missing: print 430 message and read next command
  if it is present: print 223 0 <Message ID>

Let me repeat: the obvious, robust and simple way for a programmer is to
treat ARTICLE, HEAD, BODY and STAT the same, and just omit header or
body (or both) parts if appropriate -- there is no hint in RFC-977 that
requires different semantics. Have a look at the leafnode source code,
the relevant code is in doarticle() in nntpd.c.

The software will have to be fixed after the next NNTP standard has been
released anyhow, looking at draft-ietf-nntpext-base-15.txt:

          9.2.4  STAT 
              
             STAT <message-id> 
             STAT [number] 
             The STAT command behaves identically to the ARTICLE command 
             except that, if the article exists, it is NOT presented to 
             the client. 
              
             This command allows the client to determine whether an 
             article exists, and in the second form what its message-id 
             is, without having to process an arbitrary amount of text. 

Obviously, inktomi2-bro.server.ntl.com fails the first requirement.

The nntptrial-feedback address in the log has been Cc'd.

-- 
Matthias Andree

http://sourceforge.net/projects/leafnode/   - leafnode-1 tarballs
http://mandree.home.pages.de/leafnode/beta/ - leafnode-2 tarballs

-- 
leafnode-list@xxxxxxxxxxxxxxxxxxxxxxxxxxxx -- mailing list for leafnode
To unsubscribe, send mail with "unsubscribe" in the subject to the list