about summary refs log tree commit homepage
path: root/lib/PublicInbox/NNTP.pm
diff options
context:
space:
mode:
authorEric Wong <e@80x24.org>2015-09-24 03:37:19 +0000
committerEric Wong <e@80x24.org>2015-09-24 06:58:32 +0000
commit889663221bdd796d67e9c536108b3094305f8e80 (patch)
tree390e9fc9c274e346d3707354a68b59f45c6ac327 /lib/PublicInbox/NNTP.pm
parent812b9991ac21cbba7d9e60cb5a9e06a9fb69351d (diff)
downloadpublic-inbox-889663221bdd796d67e9c536108b3094305f8e80.tar.gz
Oops :x
Diffstat (limited to 'lib/PublicInbox/NNTP.pm')
-rw-r--r--lib/PublicInbox/NNTP.pm12
1 files changed, 4 insertions, 8 deletions
diff --git a/lib/PublicInbox/NNTP.pm b/lib/PublicInbox/NNTP.pm
index 52d6a64c..6c661a1b 100644
--- a/lib/PublicInbox/NNTP.pm
+++ b/lib/PublicInbox/NNTP.pm
@@ -879,22 +879,18 @@ sub event_write {
 sub event_read {
         my ($self) = @_;
         use constant LINE_MAX => 512; # RFC 977 section 2.3
-        my $line;
         my $r = 1;
-again:
+
+        my $buf = $self->read(LINE_MAX) or return $self->close;
+        $self->{rbuf} .= $$buf;
         while ($r > 0 && $self->{rbuf} =~ s/\A\s*([^\r\n]+)\r?\n//) {
-                $line = $1;
+                my $line = $1;
                 my $t0 = now();
                 $r = eval { $self->process_line($line) };
                 my $d = $self->{long_res} ?
                         ' deferred['.fileno($self->{sock}).']' : '';
                 out($self, "$line - %0.6f$d", now() - $t0);
         }
-        unless (defined $line) {
-                my $buf = $self->read(LINE_MAX) or return $self->close;
-                $self->{rbuf} .= $$buf;
-                goto again;
-        }
 
         return $self->close if $r < 0;
         my $len = length($self->{rbuf});