src/server/daemon/protocol.c

changeset 78
3578977d29a3
parent 77
f1cff81e425a
child 80
0de4a90979e1
--- a/src/server/daemon/protocol.c	Tue Jun 25 15:45:13 2013 +0200
+++ b/src/server/daemon/protocol.c	Tue Jun 25 22:18:59 2013 +0200
@@ -339,7 +339,15 @@
     add_http_response_header(out, rq);
     
     // add connection header
-    sbuf_write(out, "Connection: close\r\n", 19);
+    char *conn_str = pblock_findkeyval(pb_key_connection, rq->headers);
+    if(conn_str && !strcasecmp(conn_str, "keep-alive")) {
+        sbuf_write(out, "Connection: keep-alive\r\n", 24);
+        pblock_kvinsert(pb_key_connection, "keep-alive", 10, rq->srvhdrs);
+        rq->rq_attr.keep_alive = 1;
+    } else {
+        sbuf_write(out, "Connection: close\r\n", 19);
+        pblock_kvinsert(pb_key_connection, "close", 5, rq->srvhdrs);
+    }
 
     // response header end
     sbuf_write(out, "\r\n", 2);

mercurial