return;
}
-bool socket_server::fill_buffer(long long usec_timeout)
+/** @brief look for new connections and new data in any of the existing connections
+ @param usec_timeout wait until new data is found, max timeout usecs.
+ -1: wait endless
+ 0: return instantly
+ @param usec_timeout_remaining if non-NULL the function will write the
+ not used time to the given target
+ @retval true if new data was found (does not mean that the received data
+ is a complete packet though)
+*/
+bool socket_server::fill_buffer(long long usec_timeout,long long* usec_timeout_remaining)
{
fd_set used_fdset=connection_set;
int ret=select (FD_SETSIZE, &used_fdset, NULL, NULL, timeout_ptr);
+ // return the timeout we did not use
+ if (usec_timeout > 0 && usec_timeout_remaining != NULL)
+ *usec_timeout_remaining=(tval.tv_sec*1000000)+tval.tv_usec;
+
if (ret < 0)
{
if (errno == EINTR)