diff --git a/a8/udplistener.cc b/a8/udplistener.cc index 6d086ba..cf72dbc 100644 --- a/a8/udplistener.cc +++ b/a8/udplistener.cc @@ -31,6 +31,13 @@ namespace a8 volatile bool shutdown = false; + virtual ~UdpListenerImpl() + { + if (IsActive()) { + SetActive(false); + } + } + bool IsActive() { return listen_socket != -1; @@ -90,7 +97,8 @@ namespace a8 void ActiveStop() { - if(listen_socket != -1){ + if (listen_socket != -1) { + ::shutdown(listen_socket, SHUT_RD); ::close(listen_socket); listen_socket = -1; }