forked from wolfSSL/wolfssl
added deallocator for DtlsPools
This commit is contained in:
@ -2013,10 +2013,7 @@ void SSL_ResourceFree(WOLFSSL* ssl)
|
|||||||
if (ssl->buffers.outputBuffer.dynamicFlag)
|
if (ssl->buffers.outputBuffer.dynamicFlag)
|
||||||
ShrinkOutputBuffer(ssl);
|
ShrinkOutputBuffer(ssl);
|
||||||
#ifdef WOLFSSL_DTLS
|
#ifdef WOLFSSL_DTLS
|
||||||
if (ssl->dtls_pool != NULL) {
|
DtlsPoolDelete(ssl);
|
||||||
DtlsPoolReset(ssl);
|
|
||||||
XFREE(ssl->dtls_pool, ssl->heap, DYNAMIC_TYPE_NONE);
|
|
||||||
}
|
|
||||||
if (ssl->dtls_msg_list != NULL) {
|
if (ssl->dtls_msg_list != NULL) {
|
||||||
DtlsMsgListDelete(ssl->dtls_msg_list, ssl->heap);
|
DtlsMsgListDelete(ssl->dtls_msg_list, ssl->heap);
|
||||||
ssl->dtls_msg_list = NULL;
|
ssl->dtls_msg_list = NULL;
|
||||||
@ -2132,10 +2129,10 @@ void FreeHandshakeResources(WOLFSSL* ssl)
|
|||||||
|
|
||||||
#ifdef WOLFSSL_DTLS
|
#ifdef WOLFSSL_DTLS
|
||||||
/* DTLS_POOL */
|
/* DTLS_POOL */
|
||||||
if (ssl->options.dtls && ssl->dtls_pool != NULL) {
|
if (ssl->options.dtls) {
|
||||||
DtlsPoolReset(ssl);
|
DtlsPoolDelete(ssl);
|
||||||
XFREE(ssl->dtls_pool, ssl->heap, DYNAMIC_TYPE_DTLS_POOL);
|
DtlsMsgListDelete(ssl->dtls_msg_list, ssl->heap);
|
||||||
ssl->dtls_pool = NULL;
|
ssl->dtls_msg_list = NULL;
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
@ -2296,6 +2293,16 @@ void DtlsPoolReset(WOLFSSL* ssl)
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
void DtlsPoolDelete(WOLFSSL* ssl)
|
||||||
|
{
|
||||||
|
if (ssl->dtls_pool != NULL) {
|
||||||
|
DtlsPoolReset(ssl);
|
||||||
|
XFREE(ssl->dtls_pool, ssl->heap, DYNAMIC_TYPE_DTLS_POOL);
|
||||||
|
ssl->dtls_pool = NULL;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
int DtlsPoolTimeout(WOLFSSL* ssl)
|
int DtlsPoolTimeout(WOLFSSL* ssl)
|
||||||
{
|
{
|
||||||
int result = -1;
|
int result = -1;
|
||||||
|
@ -2671,6 +2671,7 @@ WOLFSSL_LOCAL int GrowInputBuffer(WOLFSSL* ssl, int size, int usedLength);
|
|||||||
WOLFSSL_LOCAL int DtlsPoolTimeout(WOLFSSL*);
|
WOLFSSL_LOCAL int DtlsPoolTimeout(WOLFSSL*);
|
||||||
WOLFSSL_LOCAL int DtlsPoolSend(WOLFSSL*);
|
WOLFSSL_LOCAL int DtlsPoolSend(WOLFSSL*);
|
||||||
WOLFSSL_LOCAL void DtlsPoolReset(WOLFSSL*);
|
WOLFSSL_LOCAL void DtlsPoolReset(WOLFSSL*);
|
||||||
|
WOLFSSL_LOCAL void DtlsPoolDelete(WOLFSSL*);
|
||||||
|
|
||||||
WOLFSSL_LOCAL DtlsMsg* DtlsMsgNew(word32, void*);
|
WOLFSSL_LOCAL DtlsMsg* DtlsMsgNew(word32, void*);
|
||||||
WOLFSSL_LOCAL void DtlsMsgDelete(DtlsMsg*, void*);
|
WOLFSSL_LOCAL void DtlsMsgDelete(DtlsMsg*, void*);
|
||||||
|
Reference in New Issue
Block a user