projects
/
privoxy.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Update cgi_send_banner()'s comment header
[privoxy.git]
/
jcc.c
diff --git
a/jcc.c
b/jcc.c
index
ab4956f
..
d82407c
100644
(file)
--- a/
jcc.c
+++ b/
jcc.c
@@
-1553,7
+1553,8
@@
static jb_err receive_chunked_client_request_body(struct client_state *csp)
len = read_socket(csp->cfd, buf, sizeof(buf) - 1);
if (len <= 0)
{
len = read_socket(csp->cfd, buf, sizeof(buf) - 1);
if (len <= 0)
{
- log_error(LOG_LEVEL_ERROR, "Read the client body failed: %E");
+ log_error(LOG_LEVEL_ERROR,
+ "Reading the client body failed: %E");
break;
}
if (add_to_iob(csp->client_iob, csp->config->buffer_limit, buf, len))
break;
}
if (add_to_iob(csp->client_iob, csp->config->buffer_limit, buf, len))
@@
-2906,6
+2907,7
@@
static void continue_https_chat(struct client_state *csp)
if (JB_ERR_OK != process_encrypted_request(csp))
{
if (JB_ERR_OK != process_encrypted_request(csp))
{
+ csp->flags &= ~CSP_FLAG_CLIENT_CONNECTION_KEEP_ALIVE;
return;
}
return;
}
@@
-3940,8
+3942,8
@@
static void handle_established_connection(struct client_state *csp)
if ((ssl_send_data_delayed(&(csp->ssl_client_attr),
(const unsigned char *)hdr, strlen(hdr),
get_write_delay(csp)) < 0)
if ((ssl_send_data_delayed(&(csp->ssl_client_attr),
(const unsigned char *)hdr, strlen(hdr),
get_write_delay(csp)) < 0)
- || (len = ssl_flush_socket(&(csp->ssl_client_attr),
- csp->iob) < 0))
+ || (
(
len = ssl_flush_socket(&(csp->ssl_client_attr),
+ csp->iob)
)
< 0))
{
log_error(LOG_LEVEL_CONNECT, "Write header to client failed");
{
log_error(LOG_LEVEL_CONNECT, "Write header to client failed");
@@
-6183,11
+6185,6
@@
static void listen_loop(void)
/* NOTREACHED unless FEATURE_GRACEFUL_TERMINATION is defined */
/* NOTREACHED unless FEATURE_GRACEFUL_TERMINATION is defined */
-#ifdef FEATURE_HTTPS_INSPECTION
- /* Clean up. Aim: free all memory (no leaks) */
- ssl_release();
-#endif
-
#ifdef FEATURE_GRACEFUL_TERMINATION
log_error(LOG_LEVEL_INFO, "Graceful termination requested.");
#ifdef FEATURE_GRACEFUL_TERMINATION
log_error(LOG_LEVEL_INFO, "Graceful termination requested.");
@@
-6210,7
+6207,8
@@
static void listen_loop(void)
if (i <= 0)
{
if (i <= 0)
{
- log_error(LOG_LEVEL_ERROR, "Graceful termination failed - still some live clients after 1 minute wait.");
+ log_error(LOG_LEVEL_ERROR, "Graceful termination failed "
+ "- still some live clients after 1 minute wait.");
}
}
sweep();
}
}
sweep();
@@
-6220,6
+6218,17
@@
static void listen_loop(void)
freez(basedir);
#endif
freez(basedir);
#endif
+#ifdef FEATURE_HTTPS_INSPECTION
+ /*
+ * Only release TLS backed resources if there
+ * are no active connections left.
+ */
+ if (clients->next == NULL)
+ {
+ ssl_release();
+ }
+#endif
+
log_error(LOG_LEVEL_INFO, "Exiting gracefully.");
#if defined(_WIN32) && !defined(_WIN_CONSOLE)
log_error(LOG_LEVEL_INFO, "Exiting gracefully.");
#if defined(_WIN32) && !defined(_WIN_CONSOLE)