From ce44148b662558922523465f29d372912b7c6a61 Mon Sep 17 00:00:00 2001
From: Eric Wong <e@80x24.org>
Date: Tue, 3 May 2016 02:52:23 +0000
Subject: [PATCH] http: move empty string check into write callback

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 | 11 +++--------
 1 file changed, 3 insertions(+), 8 deletions(-)

diff --git a/lib/PublicInbox/HTTP.pm b/lib/PublicInbox/HTTP.pm
index 3286e79c..bbcb0898 100644
--- a/lib/PublicInbox/HTTP.pm
+++ b/lib/PublicInbox/HTTP.pm
@@ -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) = @_;
-- 
2.51.0