summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/http.cc6
1 files changed, 6 insertions, 0 deletions
diff --git a/src/http.cc b/src/http.cc
index 21de28d..c88aa6d 100644
--- a/src/http.cc
+++ b/src/http.cc
@@ -794,6 +794,12 @@ class ServerImpl : public Server {
}
client.resp = delegate_.handle(request);
client.in->consume(end + 4);
+ // If client requests close, do so.
+ if (request.header_contains("connection", "close")) {
+ if (shutdown(client.fd.get(), SHUT_RD) == 0) {
+ client.read_closed_ = true;
+ }
+ }
return true;
}