summaryrefslogtreecommitdiff
path: root/source3/lib/select.c
diff options
context:
space:
mode:
authorJeremy Allison <jra@samba.org>2002-05-22 23:34:47 +0000
committerJeremy Allison <jra@samba.org>2002-05-22 23:34:47 +0000
commita3c98a841bcedf72ce513917707b5799c37abb95 (patch)
treee8e703d58f0537c8a12c410ba655a48ced04a8fd /source3/lib/select.c
parent8955286b321db3b3283e99706cf294f191cdcc78 (diff)
downloadsamba-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/select.c')
-rw-r--r--source3/lib/select.c10
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)