diff options
author | Didier Brachet | 2016-04-05 08:43:10 +0000 |
---|---|---|
committer | Didier Brachet | 2016-04-05 08:43:10 +0000 |
commit | e2ef2abc26afe636b9adffba7001c7020b7942ed (patch) | |
tree | 736ff7c01bc5e06544d514b0de3d3d33d6a6b3b4 | |
parent | a27bce825497b5267c2af5631cca6b8ef62cdbfe (diff) | |
download | org.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.c | 2 |
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 */ |