diff -r f1cff81e425a -r 3578977d29a3 src/server/daemon/protocol.c --- 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);