Don't loop forever on authentication failure. If the first attempt to
authorsimon <simon@cda61777-01e9-0310-a592-d414129be87e>
Wed, 23 Nov 2011 19:48:30 +0000 (19:48 +0000)
committersimon <simon@cda61777-01e9-0310-a592-d414129be87e>
Wed, 23 Nov 2011 19:48:30 +0000 (19:48 +0000)
fetch the article doesn't succeed, we should try authenticating; but
if the second attempt fails, then authentication didn't work, so we
should give up rather than try it pointlessly again.

git-svn-id: svn://svn.tartarus.org/sgt/utils@9340 cda61777-01e9-0310-a592-d414129be87e

nntpid/nntpid

index 298dbf3..f1544bb 100755 (executable)
@@ -174,7 +174,12 @@ sub getline {
 
 sub docmd {
   my ($cmd) = @_;
-  while (1) {
+  # We go at most twice round the following loop. If the first attempt
+  # to fetch the article fails with a 480 response, we try again
+  # having authenticated first; but if the second attempt also fails
+  # with 480, then the authentication didn't work, so we should give
+  # up rather than try it pointlessly again.
+  for my $n (0,1) {
     &putline($cmd);
     $line = &getline;
     if ($code eq "480") { &auth; } else { last; }