Commit d81f1cc1 authored by Ian Craggs's avatar Ian Craggs

Clean up SSL pending reads when closing a socket

parent 1a3bfec1
...@@ -814,12 +814,19 @@ void SSLSocket_destroyContext(networkHandles* net) ...@@ -814,12 +814,19 @@ void SSLSocket_destroyContext(networkHandles* net)
FUNC_EXIT; FUNC_EXIT;
} }
static List pending_reads = {NULL, NULL, NULL, 0, 0};
int SSLSocket_close(networkHandles* net) int SSLSocket_close(networkHandles* net)
{ {
int rc = 1; int rc = 1;
FUNC_ENTRY; FUNC_ENTRY;
if (net->ssl) { /* clean up any pending reads for this socket */
if (pending_reads.count > 0 && ListFindItem(&pending_reads, &net->socket, intcompare))
ListRemoveItem(&pending_reads, &net->socket, intcompare);
if (net->ssl)
{
rc = SSL_shutdown(net->ssl); rc = SSL_shutdown(net->ssl);
SSL_free(net->ssl); SSL_free(net->ssl);
net->ssl = NULL; net->ssl = NULL;
...@@ -897,7 +904,6 @@ int SSLSocket_putdatas(SSL* ssl, int socket, char* buf0, size_t buf0len, int cou ...@@ -897,7 +904,6 @@ int SSLSocket_putdatas(SSL* ssl, int socket, char* buf0, size_t buf0len, int cou
return rc; return rc;
} }
static List pending_reads = {NULL, NULL, NULL, 0, 0};
void SSLSocket_addPendingRead(int sock) void SSLSocket_addPendingRead(int sock)
{ {
......
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