From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.2 (2011-06-06) on dcvr.yhbt.net X-Spam-Level: X-Spam-ASN: X-Spam-Status: No, score=-2.9 required=3.0 tests=ALL_TRUSTED,AWL,BAYES_00 shortcircuit=no autolearn=unavailable version=3.3.2 X-Original-To: meta@public-inbox.org Received: from localhost (dcvr.yhbt.net [127.0.0.1]) by dcvr.yhbt.net (Postfix) with ESMTP id 7ECAD63381A for ; Sat, 12 Mar 2016 00:20:12 +0000 (UTC) From: Eric Wong To: meta@public-inbox.org Subject: [PATCH] http: prevent zero-byte writes Date: Sat, 12 Mar 2016 00:20:12 +0000 Message-Id: <20160312002012.31893-1-e@80x24.org> List-Id: 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 0675f6a..2888311 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) = @_; -- EW