]> Sergey Matveev's repositories - public-inbox.git/commitdiff
http: move empty string check into write callback
authorEric Wong <e@80x24.org>
Tue, 3 May 2016 02:52:23 +0000 (02:52 +0000)
committerEric Wong <e@80x24.org>
Tue, 3 May 2016 09:12:37 +0000 (09:12 +0000)
This empty string check is for middlewares such as Deflater
which may write empty strings, not for direct real callers of
Danga::Socket who (presumably) know what they're doing.

lib/PublicInbox/HTTP.pm

index 3286e79c59ecc426af38ef1ffe4e87d19cad2955..bbcb0898612c905f4df1094ce8057c4b4547b832 100644 (file)
@@ -189,7 +189,9 @@ sub response_header_write {
 sub response_write {
        my ($self, $env, $res) = @_;
        my $alive = response_header_write($self, $env, $res);
-       my $write = sub { $self->write($_[0]) };
+
+       # middlewares such as Deflater may write empty strings
+       my $write = sub { $self->write($_[0]) if $_[0] ne '' };
        my $close = sub {
                if ($alive) {
                        $self->event_write; # watch for readability if done
@@ -390,13 +392,6 @@ sub close {
        $self->SUPER::close(@_);
 }
 
-sub write ($$) : method {
-       my PublicInbox::HTTP $self = $_[0];
-       return 1 if (defined($_[1]) && ref($_[1]) eq '' && $_[1] eq '');
-
-       $self->SUPER::write($_[1]);
-}
-
 # for graceful shutdown in PublicInbox::Daemon:
 sub busy () {
        my ($self) = @_;