45 lines
1.1 KiB
Diff
45 lines
1.1 KiB
Diff
autofs-5.0.5 - fix timeout in connect_nb()
|
|
|
|
From: Ian Kent <raven@themaw.net>
|
|
|
|
When changing the timed wait from using select(2) to poll(2) in
|
|
connect_nb(), to overcome the 1024 file handle limit of select(),
|
|
the wait timeout was not converted from seconds to milliseconds.
|
|
---
|
|
|
|
CHANGELOG | 1 +
|
|
lib/rpc_subs.c | 7 +++++++
|
|
2 files changed, 8 insertions(+), 0 deletions(-)
|
|
|
|
|
|
diff --git a/CHANGELOG b/CHANGELOG
|
|
index ccf2d32..dd093e2 100644
|
|
--- a/CHANGELOG
|
|
+++ b/CHANGELOG
|
|
@@ -11,6 +11,7 @@
|
|
- add "preen" fsck for ext4 mounts.
|
|
- don't use master_lex_destroy() to clear parse buffer.
|
|
- make documentation for set-log-priority clearer.
|
|
+- fix timeout in connect_nb().
|
|
|
|
03/09/2009 autofs-5.0.5
|
|
-----------------------
|
|
diff --git a/lib/rpc_subs.c b/lib/rpc_subs.c
|
|
index cafc775..628f0fc 100644
|
|
--- a/lib/rpc_subs.c
|
|
+++ b/lib/rpc_subs.c
|
|
@@ -161,6 +161,13 @@ static int connect_nb(int fd, struct sockaddr *addr, socklen_t len, struct timev
|
|
if (ret == 0)
|
|
goto done;
|
|
|
|
+ if (timeout != -1) {
|
|
+ if (timeout >= (INT_MAX - 1)/1000)
|
|
+ timeout = INT_MAX - 1;
|
|
+ else
|
|
+ timeout = timeout * 1000;
|
|
+ }
|
|
+
|
|
pfd[0].fd = fd;
|
|
pfd[0].events = POLLOUT;
|
|
|