X-Git-Url: http://developer.intra2net.com/git/?p=libt2n;a=blobdiff_plain;f=src%2Fsocket_server.cpp;h=d6ca43960e569ea8ae1a3304a488674249e6d90b;hp=18bb722e6caa2e9a066da3a786e71f6106a72d20;hb=6f59dcf596103d0bc69be841627cd9926faa4139;hpb=673142e5d06e88b5fe4c9f6d839fa1658c850a07 diff --git a/src/socket_server.cpp b/src/socket_server.cpp index 18bb722..d6ca439 100644 --- a/src/socket_server.cpp +++ b/src/socket_server.cpp @@ -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); } /** @@ -321,4 +324,11 @@ void socket_server_connection::close() } } +bool socket_server_connection::fill_buffer(long long usec_timeout,long long* usec_timeout_remaining) +{ + bool new_data = socket_handler::fill_buffer(buffer,usec_timeout,usec_timeout_remaining); + if (new_data) + reset_timeout(); + return new_data; +} }