From 20351819f5964943e705d9fcfddd05772e2495de Mon Sep 17 00:00:00 2001 From: Fabian Keil Date: Mon, 29 Oct 2012 12:04:42 +0000 Subject: [PATCH] Do not keep the client connection open if it has to be closed to mark the end of the response --- jcc.c | 6 ++++-- parsers.c | 6 ++++-- 2 files changed, 8 insertions(+), 4 deletions(-) diff --git a/jcc.c b/jcc.c index f29dea19..169d689e 100644 --- a/jcc.c +++ b/jcc.c @@ -1,4 +1,4 @@ -const char jcc_rcs[] = "$Id: jcc.c,v 1.410 2012/10/29 12:00:15 fabiankeil Exp $"; +const char jcc_rcs[] = "$Id: jcc.c,v 1.411 2012/10/29 12:00:50 fabiankeil Exp $"; /********************************************************************* * * File : $Source: /cvsroot/ijbswa/current/jcc.c,v $ @@ -2631,7 +2631,9 @@ static void serve(struct client_state *csp) & RUNTIME_FEATURE_CONNECTION_KEEP_ALIVE) && !(csp->flags & CSP_FLAG_SERVER_SOCKET_TAINTED) && (csp->cfd != JB_INVALID_SOCKET) - && (csp->flags & CSP_FLAG_CLIENT_CONNECTION_KEEP_ALIVE); + && (csp->flags & CSP_FLAG_CLIENT_CONNECTION_KEEP_ALIVE) + && ((csp->flags & CSP_FLAG_SERVER_CONTENT_LENGTH_SET) + || (csp->flags & CSP_FLAG_CHUNKED)); if (!(csp->flags & CSP_FLAG_CRUNCHED) && (csp->server_connection.sfd != JB_INVALID_SOCKET)) diff --git a/parsers.c b/parsers.c index f0219eee..3d607da7 100644 --- a/parsers.c +++ b/parsers.c @@ -1,4 +1,4 @@ -const char parsers_rcs[] = "$Id: parsers.c,v 1.258 2012/10/21 12:58:03 fabiankeil Exp $"; +const char parsers_rcs[] = "$Id: parsers.c,v 1.259 2012/10/23 10:18:19 fabiankeil Exp $"; /********************************************************************* * * File : $Source: /cvsroot/ijbswa/current/parsers.c,v $ @@ -3704,7 +3704,9 @@ static jb_err server_proxy_connection_adder(struct client_state *csp) if ((csp->flags & CSP_FLAG_CLIENT_CONNECTION_KEEP_ALIVE) && !(csp->flags & CSP_FLAG_SERVER_SOCKET_TAINTED) - && !(csp->flags & CSP_FLAG_SERVER_PROXY_CONNECTION_HEADER_SET)) + && !(csp->flags & CSP_FLAG_SERVER_PROXY_CONNECTION_HEADER_SET) + && ((csp->flags & CSP_FLAG_SERVER_CONTENT_LENGTH_SET) + || (csp->flags & CSP_FLAG_CHUNKED))) { log_error(LOG_LEVEL_HEADER, "Adding: %s", proxy_connection_header); err = enlist(csp->headers, proxy_connection_header); -- 2.39.2