aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--libslirp.h1
-rw-r--r--slirp.c7
2 files changed, 8 insertions, 0 deletions
diff --git a/libslirp.h b/libslirp.h
index 6ee804d..3f8a9be 100644
--- a/libslirp.h
+++ b/libslirp.h
@@ -15,6 +15,7 @@ Slirp *slirp_init(int restricted, struct in_addr vnetwork,
struct in_addr vnameserver, void *opaque);
void slirp_cleanup(Slirp *slirp);
+void slirp_update_timeout(uint32_t *timeout);
void slirp_select_fill(int *pnfds, fd_set *readfds, fd_set *writefds,
fd_set *xfds);
diff --git a/slirp.c b/slirp.c
index aec7250..b61af4e 100644
--- a/slirp.c
+++ b/slirp.c
@@ -261,6 +261,13 @@ void slirp_cleanup(Slirp *slirp)
if (nfds < (x)) \
nfds = (x)
+void slirp_update_timeout(uint32_t *timeout)
+{
+ if (!QTAILQ_EMPTY(&slirp_instances)) {
+ *timeout = MIN(1000, *timeout);
+ }
+}
+
void slirp_select_fill(int *pnfds, fd_set *readfds, fd_set *writefds,
fd_set *xfds)
{