X-Git-Url: http://developer.intra2net.com/git/?p=libt2n;a=blobdiff_plain;f=src%2Fsocket_server.cpp;h=1d18fd2025c4f3191001173bab55bd7c13d650c4;hp=7c6f244d74e47a5adaa0d4eb9911e6ccaf4a2880;hb=1fdd03d219ebc40bf0ec17fdfea4bf1a20666e3a;hpb=19facd8558fe2e32ce843860b40631ebe03ff3cf diff --git a/src/socket_server.cpp b/src/socket_server.cpp index 7c6f244..1d18fd2 100644 --- a/src/socket_server.cpp +++ b/src/socket_server.cpp @@ -28,6 +28,7 @@ on this file might be covered by the GNU General Public License. #include #include #include +#include #include #include #include @@ -164,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 @@ -189,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); @@ -277,8 +280,6 @@ bool socket_server::fill_connection_buffers() } catch (t2n_transfer_error &e) { i->second->close(); } - catch(...) - { throw; } } return data_found; @@ -288,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); } /**