projects
/
privoxy.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
listen_loop(): Delay the call to ssl_release()
[privoxy.git]
/
jcc.c
diff --git
a/jcc.c
b/jcc.c
index
5f0b69e
..
310fb1e
100644
(file)
--- a/
jcc.c
+++ b/
jcc.c
@@
-376,7
+376,8
@@
static void sig_handler(int the_signal)
* We shouldn't be here, unless we catch signals
* in main() that we can't handle here!
*/
* We shouldn't be here, unless we catch signals
* in main() that we can't handle here!
*/
- log_error(LOG_LEVEL_FATAL, "sig_handler: exiting on unexpected signal %d", the_signal);
+ log_error(LOG_LEVEL_FATAL,
+ "sig_handler: exiting on unexpected signal %d", the_signal);
}
return;
}
return;
@@
-1860,7
+1861,7
@@
static jb_err receive_client_request(struct client_state *csp)
* elsewhere failed or Privoxy is configured
* to only accept proxy requests.
*
* elsewhere failed or Privoxy is configured
* to only accept proxy requests.
*
- * An error response has already been sen
d
+ * An error response has already been sen
t
* and we're done here.
*/
return JB_ERR_PARSE;
* and we're done here.
*/
return JB_ERR_PARSE;
@@
-6182,11
+6183,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.");
@@
-6219,6
+6215,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)