X-Git-Url: http://developer.intra2net.com/git/?p=libt2n;a=blobdiff_plain;f=src%2Fsocket_server.cpp;fp=src%2Fsocket_server.cpp;h=87025d8718197f60e5b7511b1e989ad9c39f3ab0;hp=cbaaff6704258eba904766e173f8891f3993e39d;hb=9424729586fdb0aabb671d2f1266bdb07e0bed38;hpb=07e98688a1a8c3e915ce923f79261a88251a9edd diff --git a/src/socket_server.cpp b/src/socket_server.cpp index cbaaff6..87025d8 100644 --- a/src/socket_server.cpp +++ b/src/socket_server.cpp @@ -43,12 +43,22 @@ using namespace std; namespace libt2n { +/** @brief create a new tcp-based server + @param port tcp port you want to listen on + @param ip the local ip you want to listen on. "0.0.0.0" means all local ips (default). +*/ socket_server::socket_server(int port, const std::string& ip) : server(), socket_handler(0,tcp_s) { // TODO } +/** @brief create a new unix-socked-based server + @param path path of the socket + @param filemode permissions you want to open the socket with + @param user local username for the socket + @param group local groupname for the socket +*/ socket_server::socket_server(const std::string& path, mode_t filemode, const std::string& user, const std::string& group) : server(), socket_handler(0,unix_s) { @@ -174,7 +184,7 @@ void socket_server::new_connection() return; } -void socket_server::fill_buffer(long long usec_timeout) +bool socket_server::fill_buffer(long long usec_timeout) { fd_set used_fdset=connection_set; @@ -222,18 +232,23 @@ void socket_server::fill_buffer(long long usec_timeout) } // check all connections for pending data - fill_connection_buffers(); + return fill_connection_buffers(); } - return; + return false; } -void socket_server::fill_connection_buffers() +bool socket_server::fill_connection_buffers() { + bool data_found; + std::map::iterator ie=connections.end(); for(std::map::iterator i=connections.begin(); i != ie; i++) if (!i->second->server_connection::is_closed()) - i->second->fill_buffer(0); + if (i->second->fill_buffer(0)) + data_found=true; + + return data_found; } void socket_server::remove_connection_socket(int sock)