From a45891b9734bb428dd749e4a2b87f7fc28e6eb9d Mon Sep 17 00:00:00 2001 From: Eric Wong Date: Sat, 12 Mar 2016 00:20:12 +0000 Subject: 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. --- lib/PublicInbox/HTTP.pm | 7 +++++++ 1 file changed, 7 insertions(+) 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) = @_; -- cgit v1.2.3-24-ge0c7