efl_net_server_fd: close socket on destructor.
authorGustavo Sverzut Barbieri <barbieri@profusion.mobi>
Sun, 23 Oct 2016 00:26:02 +0000 (22:26 -0200)
committerGustavo Sverzut Barbieri <barbieri@profusion.mobi>
Sun, 23 Oct 2016 00:26:02 +0000 (22:26 -0200)
src/lib/ecore_con/efl_net_server_fd.c

index 0cc8beb..b4c6dac 100644 (file)
@@ -99,6 +99,14 @@ _efl_net_server_fd_efl_object_constructor(Eo *o, Efl_Net_Server_Fd_Data *pd EINA
 EOLIAN static void
 _efl_net_server_fd_efl_object_destructor(Eo *o, Efl_Net_Server_Fd_Data *pd)
 {
+   SOCKET fd = efl_loop_fd_get(o);
+
+   if (fd != INVALID_SOCKET)
+     {
+        efl_loop_fd_set(o, INVALID_SOCKET);
+        closesocket(fd);
+     }
+
    efl_destructor(efl_super(o, MY_CLASS));
 
    eina_stringshare_replace(&pd->address, NULL);