pullnews - bugfix, wishlist, new features

Julien ÉLIE julien at trigofacile.com
Sun Nov 16 13:59:55 UTC 2008


Hi Geraint,

> Hi Julien - thanks.
>
>> Speaking about codes, I see:
>> [...]
>> 440 and 441 (in comments) are not used there.
>
> Not sure what you're driving at, with that comment.
> Those codes fall through to the 'else' - the catch-all.

This part of the code is for readers (POST):

                } elsif ($reader and not $toServer->post($article)) {
                    #   240 article posted ok
                    #   340 send article to be posted.  End with <CR-LF>.<CR-LF>
                    #   440 posting not allowed
                    #   441 posting failed
                    } elsif ($msg =~ /^435 / or $msg =~ /duplicate message-id/io) {
                        print LOG "." unless $quiet;
                        push @warns, "Post $i to server declined ($code): $msg"
                                            if $msg !~ /^435 $msgid$/
                                            and $msg !~ /duplicate message-id/io;
                        $refused{$group}++;
                        $info{server}->{$server}->{refused}++;
                        $info{refused}++;


And it speaks about 435 which is for non-readers (IHAVE), dealt just after:


                } elsif (not $reader and not $toServer->ihave($msgid,$article)) {
                    #   235 article transferred ok
                    #   335 send article to be transferred.  End with <CR-LF>.<CR-LF>
                    #   435 article not wanted -- do not send it
                    #   436 transfer failed -- try again later
                    #   437 article rejected -- do not try again
                    if ($code == 435) {
                        print LOG "." unless $quiet;
                        $refused{$group}++;
                        $info{server}->{$server}->{refused}++;
                        $info{refused}++;


That's why I wonder why 435 is searched in the first part of the code.  435 is not
a valid answer for POST.


>> push @warns, "Post $i to server declined ($code): $msg"
>>          if $msg !~ /^435 $msgid$/
>>             and $msg !~ /duplicate message-id/io;
>> [...]
>> "if $msg !~ /^435 $msgid$/" will as often as not be true because
>> there isn't necessarily a message-ID after 435.
>
> You're right that it doesn't necessarily follow, but my experience
> is that it's usally there.

On what news servers do you have 435 here?

Anyway, I see that for INN, the syntax is:

 * innd:
    "435"
    "435 Duplicate"
    "435 Bad Message-ID"
    "435 <$msgid>" (when rejected by a Perl or Python filter)

Note that the first one is not caught by "if ($msg =~ /^435 /)".
Only the last answer will prevent the push to be executed.

 * nnrpd:
    "435 Duplicate"


> @warns is an attempt to find if any *other* messages for duplicate-message
> are in use (I want to avoid seeing common messages of that kind - since
> duplicate IDs are usual) - call it me being paranoid about the messages for
> POSTing.

I do not think this code is used during POST.  It is an IHAVE answer.
Besides, the syntax for a duplicate is not "duplicate message-id" (at least for INN).

-- 
Julien ÉLIE

« -- Ils s'arrêtaient tous les jours à 5 heures,
  pour boire de l'eau chaude...
  -- Je prendrai un nuage de lait, je vous prie. » (Astérix) 




More information about the inn-workers mailing list