From: Eric Wong Date: Sat, 12 Mar 2016 00:20:12 +0000 (+0000) Subject: http: prevent zero-byte writes X-Git-Tag: v1.0.0~635 X-Git-Url: http://www.git.stargrave.org/?p=public-inbox.git;a=commitdiff_plain;h=a45891b9734bb428dd749e4a2b87f7fc28e6eb9d http: prevent zero-byte writes Plack::Middleware::Deflater (and perhaps other middleware) triggers zero-byte writes which wastes syscalls when they get passed to Danga::Socket. This may also trigger problems when we introduce TLS support in the future. --- diff --git a/lib/PublicInbox/HTTP.pm b/lib/PublicInbox/HTTP.pm index 0675f6a6..28883114 100644 --- a/lib/PublicInbox/HTTP.pm +++ b/lib/PublicInbox/HTTP.pm @@ -371,6 +371,13 @@ sub quit { sub event_hup { $_[0]->close } sub event_err { $_[0]->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) = @_;