From 6173e3e51219d976858ef38a2c8a86598147314e Mon Sep 17 00:00:00 2001 From: "hyuna0213.jo" Date: Fri, 8 Apr 2016 10:17:29 +0900 Subject: [PATCH] changed code to close the socket generated when initializing. changed code to close the socket generated when initializing. Change-Id: Ib3f45bfb6f49f14b04088cfcff936e68d7ddb88c Signed-off-by: hyuna0213.jo Reviewed-on: https://gerrit.iotivity.org/gerrit/7707 Tested-by: jenkins-iotivity Reviewed-by: Jon A. Cruz (cherry picked from commit dacd2c619da1a042806ca601af6576c8c573381c) Reviewed-on: https://gerrit.iotivity.org/gerrit/7729 --- resource/csdk/connectivity/inc/caipinterface.h | 5 +++ .../csdk/connectivity/src/ip_adapter/caipadapter.c | 1 + .../csdk/connectivity/src/ip_adapter/caipserver.c | 51 ++++++++++++++++++++++ .../connectivity/src/tcp_adapter/catcpserver.c | 2 +- 4 files changed, 58 insertions(+), 1 deletion(-) diff --git a/resource/csdk/connectivity/inc/caipinterface.h b/resource/csdk/connectivity/inc/caipinterface.h index ff344f0..2caf5b1 100644 --- a/resource/csdk/connectivity/inc/caipinterface.h +++ b/resource/csdk/connectivity/inc/caipinterface.h @@ -94,6 +94,11 @@ CAResult_t CAIPStartServer(const ca_thread_pool_t threadPool); #endif /** + * Close IP socket. + */ +void CADeInitializeIPGlobals(); + +/** * Stop IP server. */ void CAIPStopServer(); diff --git a/resource/csdk/connectivity/src/ip_adapter/caipadapter.c b/resource/csdk/connectivity/src/ip_adapter/caipadapter.c index 9fd3a4f..308ec6d 100644 --- a/resource/csdk/connectivity/src/ip_adapter/caipadapter.c +++ b/resource/csdk/connectivity/src/ip_adapter/caipadapter.c @@ -409,6 +409,7 @@ void CATerminateIP() CAIPSetPacketReceiveCallback(NULL); #ifndef SINGLE_THREAD + CADeInitializeIPGlobals(); CAIPDeinitializeQueueHandles(); #endif } diff --git a/resource/csdk/connectivity/src/ip_adapter/caipserver.c b/resource/csdk/connectivity/src/ip_adapter/caipserver.c index c0a571e..c49b064 100644 --- a/resource/csdk/connectivity/src/ip_adapter/caipserver.c +++ b/resource/csdk/connectivity/src/ip_adapter/caipserver.c @@ -119,6 +119,57 @@ static CAResult_t CAReceiveMessage(int fd, CATransportFlags_t flags); flags = FLAGS; \ } +void CADeInitializeIPGlobals() +{ + if (caglobals.ip.u6.fd != -1) + { + close(caglobals.ip.u6.fd); + caglobals.ip.u6.fd = -1; + } + + if (caglobals.ip.u6s.fd != -1) + { + close(caglobals.ip.u6s.fd); + caglobals.ip.u6s.fd = -1; + } + + if (caglobals.ip.u4.fd != -1) + { + close(caglobals.ip.u4.fd); + caglobals.ip.u4.fd = -1; + } + + if (caglobals.ip.u4s.fd != -1) + { + close(caglobals.ip.u4s.fd); + caglobals.ip.u4s.fd = -1; + } + + if (caglobals.ip.m6.fd != -1) + { + close(caglobals.ip.m6.fd); + caglobals.ip.m6.fd = -1; + } + + if (caglobals.ip.m6s.fd != -1) + { + close(caglobals.ip.m6s.fd); + caglobals.ip.m6s.fd = -1; + } + + if (caglobals.ip.m4.fd != -1) + { + close(caglobals.ip.m4.fd); + caglobals.ip.m4.fd = -1; + } + + if (caglobals.ip.m4s.fd != -1) + { + close(caglobals.ip.m4s.fd); + caglobals.ip.m4s.fd = -1; + } +} + static void CAReceiveHandler(void *data) { (void)data; diff --git a/resource/csdk/connectivity/src/tcp_adapter/catcpserver.c b/resource/csdk/connectivity/src/tcp_adapter/catcpserver.c index bb6f9c1..5334502 100644 --- a/resource/csdk/connectivity/src/tcp_adapter/catcpserver.c +++ b/resource/csdk/connectivity/src/tcp_adapter/catcpserver.c @@ -1,4 +1,4 @@ -/* ****************************************************************j +/* **************************************************************** * * Copyright 2015 Samsung Electronics All Rights Reserved. * -- 2.7.4