diff options
author | Jeremy Allison <jra@samba.org> | 2002-05-22 23:34:47 +0000 |
---|---|---|
committer | Jeremy Allison <jra@samba.org> | 2002-05-22 23:34:47 +0000 |
commit | a3c98a841bcedf72ce513917707b5799c37abb95 (patch) | |
tree | e8e703d58f0537c8a12c410ba655a48ced04a8fd /source3/lib | |
parent | 8955286b321db3b3283e99706cf294f191cdcc78 (diff) | |
download | samba-a3c98a841bcedf72ce513917707b5799c37abb95.tar.gz samba-a3c98a841bcedf72ce513917707b5799c37abb95.tar.bz2 samba-a3c98a841bcedf72ce513917707b5799c37abb95.zip |
Merge of bugfixes from 2.2.
Jeremy.
(This used to be commit 5c8351228c55f2403214351f6fd16fe231aee917)
Diffstat (limited to 'source3/lib')
-rw-r--r-- | source3/lib/select.c | 10 |
1 files changed, 8 insertions, 2 deletions
diff --git a/source3/lib/select.c b/source3/lib/select.c index 550941ba77..efcf63becc 100644 --- a/source3/lib/select.c +++ b/source3/lib/select.c @@ -1,5 +1,6 @@ /* - Unix SMB/CIFS implementation. + Unix SMB/Netbios implementation. + Version 3.0 Samba select/poll implementation Copyright (C) Andrew Tridgell 1992-1998 @@ -133,10 +134,12 @@ int sys_select_intr(int maxfd, fd_set *readfds, fd_set *writefds, fd_set *errorf { int ret; fd_set *readfds2, readfds_buf, *writefds2, writefds_buf, *errorfds2, errorfds_buf; + struct timeval tval2, *ptval; readfds2 = (readfds ? &readfds_buf : NULL); writefds2 = (writefds ? &writefds_buf : NULL); errorfds2 = (errorfds ? &errorfds_buf : NULL); + ptval = (tval ? &tval2 : NULL); do { if (readfds) @@ -145,7 +148,10 @@ int sys_select_intr(int maxfd, fd_set *readfds, fd_set *writefds, fd_set *errorf writefds_buf = *writefds; if (errorfds) errorfds_buf = *errorfds; - ret = sys_select(maxfd, readfds2, writefds2, errorfds2, tval); + if (tval) + tval2 = *tval; + + ret = sys_select(maxfd, readfds2, writefds2, errorfds2, ptval); } while (ret == -1 && errno == EINTR); if (readfds) |