get_sockets_set added for external select() calls. Boost test case added to check...
[libt2n] / src / socket_server.cpp
index 18bb722..1d18fd2 100644 (file)
@@ -165,6 +165,7 @@ void socket_server::start_listening()
     /* clear & insert server sock into the fd_tab to prepare select */
     FD_ZERO(&connection_set);
     FD_SET (sock, &connection_set);
+    sockets_set.insert(sock);
 }
 
 /// handle a new connection from a client
@@ -190,6 +191,7 @@ void socket_server::new_connection()
     }
 
     FD_SET (newsock, &connection_set);
+    sockets_set.insert(newsock);
 
     socket_server_connection *nc=new socket_server_connection(newsock, get_type(), get_default_timeout());
     nc->set_socket_options(newsock);
@@ -287,6 +289,7 @@ bool socket_server::fill_connection_buffers()
 void socket_server::remove_connection_socket(int sock)
 {
     FD_CLR(sock, &connection_set);
+    sockets_set.erase(sock);
 }
 
 /**