Skip to main content
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDidier Brachet2016-04-05 08:43:10 +0000
committerDidier Brachet2016-04-05 08:43:10 +0000
commite2ef2abc26afe636b9adffba7001c7020b7942ed (patch)
tree736ff7c01bc5e06544d514b0de3d3d33d6a6b3b4
parenta27bce825497b5267c2af5631cca6b8ef62cdbfe (diff)
downloadorg.eclipse.tcf.agent-e2ef2abc26afe636b9adffba7001c7020b7942ed.tar.gz
org.eclipse.tcf.agent-e2ef2abc26afe636b9adffba7001c7020b7942ed.tar.xz
org.eclipse.tcf.agent-e2ef2abc26afe636b9adffba7001c7020b7942ed.zip
TCF Agent: Cleanup shutdown of TCF TCP server
Cleanup of TCF TCP server shutdown: - Fixed memory leak - shutdown server socket to unblock accept thread
-rw-r--r--agent/tcf/framework/channel_tcp.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/agent/tcf/framework/channel_tcp.c b/agent/tcf/framework/channel_tcp.c
index 01d9eec2..095a477e 100644
--- a/agent/tcf/framework/channel_tcp.c
+++ b/agent/tcf/framework/channel_tcp.c
@@ -1049,6 +1049,7 @@ static void tcp_server_accept_done(void * x) {
if (si->sock < 0) {
/* Server closed. */
+ loc_free(si->addr_buf);
loc_free(si);
return;
}
@@ -1082,6 +1083,7 @@ static void server_close(ChannelServer * serv) {
shutdown_set_stopped(&channel_shutdown);
list_remove(&s->servlink);
peer_server_free(s->serv.ps);
+ shutdown(s->sock, SHUT_RDWR);
closesocket(s->sock);
s->sock = -1;
/* TODO: free server struct */

Back to the top