From 5ad64e2c9afcbff8b745220d55091097f3b95e33 Mon Sep 17 00:00:00 2001 From: Kaleb Himes Date: Tue, 3 Jun 2014 08:57:56 -0600 Subject: [PATCH] added additional memory free --- .../server-dtls-threaded.c | 23 +++++++++++-------- 1 file changed, 13 insertions(+), 10 deletions(-) diff --git a/project1/dtls_secured_multithreaded/server-dtls-threaded.c b/project1/dtls_secured_multithreaded/server-dtls-threaded.c index 81c72668..06ffeb31 100644 --- a/project1/dtls_secured_multithreaded/server-dtls-threaded.c +++ b/project1/dtls_secured_multithreaded/server-dtls-threaded.c @@ -61,6 +61,10 @@ void AwaitDGram() socklen_t clilen; /* length of address' */ while (cleanup != 1) { + if (cleanup == 1){ + CyaSSL_Cleanup(); + CyaSSL_CTX_free(ctx); + } if ( (listenfd = socket(AF_INET, SOCK_DGRAM, 0) ) < 0 ) { printf("Cannot create socket.\n"); cleanup = 1; @@ -113,20 +117,18 @@ void AwaitDGram() else if (connfd > 0) { - pthread_t threadID; + pthread_t threadID; - if (pthread_create(&threadID, NULL, - ThreadControl, (void *)&connfd) < 0) { - printf("pthread_create failed.\n"); - } - printf("Connection being re-routed to Thread Control.\n"); + if (pthread_create(&threadID, NULL, + ThreadControl, (void *)&connfd) < 0) { + printf("pthread_create failed.\n"); + } + printf("Connection being re-routed to Thread Control.\n"); } else { printf("Recvfrom failed.\n"); cleanup = 1; } - pthread_t threadID = pthread_self(); - pthread_join(threadID, (void*)&connfd); sleep(1); continue; @@ -247,7 +249,7 @@ void* ThreadControl(void* openSock) CyaSSL_set_fd(ssl, 0); CyaSSL_shutdown(ssl); CyaSSL_free(ssl); - + printf("Returning to idle state\n"); int dummy; @@ -302,9 +304,10 @@ int main(int argc, char** argv) printf("Loaded server keys\n"); AwaitDGram(); - if (cleanup == 1){ + if (cleanup == 1) { CyaSSL_Cleanup(); CyaSSL_CTX_free(ctx); } + return(0); }