Invalid 431 response when server is paused

Julien ÉLIE julien at
Tue Jan 3 23:18:01 UTC 2012

Hi River,

> Currently I return 438 for invalid msg-id, but I may try changing it to
> 501 and see what happens.  I think I have peers with most of the
> commonly used server software (INN, Diablo and Cyclone, at least).

As far as INN is concerned, it currently (<= 2.5.3) does not handle 501 
response codes during streaming.
innfeed will try to feed again and again the same message if it receives 
501 in response to IHAVE, CHECK and TAKETHIS.  Anyway, innfeed isn't 
RFC3977-compliant yet.
innd does not send 501 for these three commands because of that.
Only nnrpd properly sends 501 for IHAVE.  (Using IHAVE with nnrpd is 
uncommon, so it should not do any real breaking nowadays.)

>>> For reference, the feeder source is here:
>>> <>   (mostly the
>>> fe_running() function).

OK, thanks for the link.
If I understand well the code, I see that the first command you send is 
MODE STREAM, just after the initial greeting response.  Unless you 
receive 203, CAPABILITIES is sent.  I believe it is a workaround for 
Cyclone (probably amongst other servers).
Yet, the availability of IHAVE is still unknown if you do not explicitly 
search for it in fe_read_capabilities().  I would also search for the 
first keyword in each line, instead of matching the whole line.  (Maybe 
a future extension to the IHAVE and STREAMING capabilities could define 
arguments in the capability line for IHAVE and STREAMING; the code would 
then fail to find these facilities.)

Just to be sure, when you write ae->ae_article->art_content in TAKETHIS, 
is it well dot-stuffed?

I do not see where IHAVE is used.  It is still not implemented in 
RT/NTS, isn't it?

I believe it is a great start for a transit server.  Nice work, and 
pretty clear to read.  I hope you do not mind the few remarks above.

Julien ÉLIE

« Le tennis c'est comme le ping-pong, sauf qu'au tennis, les joueurs
   sont debout sur la table. »

More information about the inn-workers mailing list