aboutsummaryrefslogtreecommitdiffstats
path: root/src/output/HttpdClient.cxx
diff options
context:
space:
mode:
authorMax Kellermann <max@duempel.org>2014-01-04 17:42:03 +0100
committerMax Kellermann <max@duempel.org>2014-01-04 17:42:03 +0100
commit68fcc195657fa31b47bc9504286a9b31feda92dc (patch)
tree223c2ef36aebe471b5600b52ed56ea567d007934 /src/output/HttpdClient.cxx
parent8e4efd071e8eef033d0a68f6cf60f3910599a1a9 (diff)
downloadmpd-68fcc195657fa31b47bc9504286a9b31feda92dc.tar.gz
mpd-68fcc195657fa31b47bc9504286a9b31feda92dc.tar.xz
mpd-68fcc195657fa31b47bc9504286a9b31feda92dc.zip
output/httpd: move queue size check to HttpdClient::PushPage()
Don't let the server care for client problems.
Diffstat (limited to 'src/output/HttpdClient.cxx')
-rw-r--r--src/output/HttpdClient.cxx6
1 files changed, 6 insertions, 0 deletions
diff --git a/src/output/HttpdClient.cxx b/src/output/HttpdClient.cxx
index d16f78942..c0b2429d2 100644
--- a/src/output/HttpdClient.cxx
+++ b/src/output/HttpdClient.cxx
@@ -387,6 +387,12 @@ HttpdClient::PushPage(Page *page)
/* the client is still writing the HTTP request */
return;
+ if (queue_size > 256 * 1024) {
+ FormatDebug(httpd_output_domain,
+ "client is too slow, flushing its queue");
+ ClearQueue();
+ }
+
page->Ref();
pages.push(page);
queue_size += page->size;