diff options
author | Jeremy Allison <jra@samba.org> | 2004-11-19 19:32:31 +0000 |
---|---|---|
committer | Gerald (Jerry) Carter <jerry@samba.org> | 2007-10-10 10:53:23 -0500 |
commit | a68172ce7cc6c3c9cb02c1b07add9ad1c9c50bbe (patch) | |
tree | e511ff86b065116ad32d12ba7a4fd14692dba6fa /source3/smbd | |
parent | 7c93bdcdf8334d4f2140405a982ea02943c5553c (diff) | |
download | samba-a68172ce7cc6c3c9cb02c1b07add9ad1c9c50bbe.tar.gz samba-a68172ce7cc6c3c9cb02c1b07add9ad1c9c50bbe.tar.bz2 samba-a68172ce7cc6c3c9cb02c1b07add9ad1c9c50bbe.zip |
r3877: Final (I hope :-) fix for #2050 from Lars Müller for select maxfd's.
Jeremy.
(This used to be commit 65fc39fc388244923d1e36076b5a4116aa434be5)
Diffstat (limited to 'source3/smbd')
-rw-r--r-- | source3/smbd/server.c | 9 |
1 files changed, 4 insertions, 5 deletions
diff --git a/source3/smbd/server.c b/source3/smbd/server.c index 5f2713bb83..156755a5b8 100644 --- a/source3/smbd/server.c +++ b/source3/smbd/server.c @@ -186,7 +186,7 @@ static BOOL open_sockets_smbd(BOOL is_daemon, BOOL interactive, const char *smb_ int fd_listenset[FD_SETSIZE]; fd_set listen_set; int s; - int max_fd = 0; + int maxfd = 0; int i; char *ports; @@ -249,9 +249,6 @@ static BOOL open_sockets_smbd(BOOL is_daemon, BOOL interactive, const char *smb_ if(s == -1) return False; - if (max_fd < s) - max_fd = s; - /* ready to listen */ set_socket_options(s,"SO_KEEPALIVE"); set_socket_options(s,user_socket_options); @@ -265,6 +262,7 @@ static BOOL open_sockets_smbd(BOOL is_daemon, BOOL interactive, const char *smb_ return False; } FD_SET(s,&listen_set); + maxfd = MAX( maxfd, s); num_sockets++; if (num_sockets >= FD_SETSIZE) { @@ -307,6 +305,7 @@ static BOOL open_sockets_smbd(BOOL is_daemon, BOOL interactive, const char *smb_ fd_listenset[num_sockets] = s; FD_SET(s,&listen_set); + maxfd = MAX( maxfd, s); num_sockets++; @@ -341,7 +340,7 @@ static BOOL open_sockets_smbd(BOOL is_daemon, BOOL interactive, const char *smb_ memcpy((char *)&lfds, (char *)&listen_set, sizeof(listen_set)); - num = sys_select(max_fd+1,&lfds,NULL,NULL,NULL); + num = sys_select(maxfd+1,&lfds,NULL,NULL,NULL); if (num == -1 && errno == EINTR) { if (got_sig_term) { |