Commit 2d867ce2 authored by Linus Nordberg's avatar Linus Nordberg

When timing out while reading from a TLS server, shutdown the socket properly.

Also signal the "client writer" (clientwr()).
Together, this should result in TLS connections being cleaned up properly.

Patch by Fabian Mauchle.
parent ae281959
...@@ -10,6 +10,8 @@ ...@@ -10,6 +10,8 @@
Mauchle. Mauchle.
- Stop freeing a shared piece of memory manifesting itself as a - Stop freeing a shared piece of memory manifesting itself as a
crash when using dynamic discovery. Patch by Fabian Mauchle. crash when using dynamic discovery. Patch by Fabian Mauchle.
- Closing and freeing TLS clients properly. Patch by Fabian
Mauchle.
2012-10-25 1.6.2 2012-10-25 1.6.2
Bug fixes (security): Bug fixes (security):
......
...@@ -290,8 +290,17 @@ void *tlsclientrd(void *arg) { ...@@ -290,8 +290,17 @@ void *tlsclientrd(void *arg) {
} }
} }
} }
debug(DBG_INFO, "tlsclientrd: exiting for %s", server->conf->name);
ERR_remove_state(0); ERR_remove_state(0);
SSL_shutdown(server->ssl);
shutdown(server->sock, SHUT_RDWR);
close(server->sock);
/* Wake up clientwr(). */
server->clientrdgone = 1; server->clientrdgone = 1;
pthread_mutex_lock(&server->newrq_mutex);
pthread_cond_signal(&server->newrq_cond);
pthread_mutex_unlock(&server->newrq_mutex);
return NULL; return NULL;
} }
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment