summaryrefslogtreecommitdiff
path: root/source3/smbd/server.c
diff options
context:
space:
mode:
authorJeremy Allison <jra@samba.org>2004-11-19 19:32:31 +0000
committerGerald (Jerry) Carter <jerry@samba.org>2007-10-10 10:53:23 -0500
commita68172ce7cc6c3c9cb02c1b07add9ad1c9c50bbe (patch)
treee511ff86b065116ad32d12ba7a4fd14692dba6fa /source3/smbd/server.c
parent7c93bdcdf8334d4f2140405a982ea02943c5553c (diff)
downloadsamba-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/server.c')
-rw-r--r--source3/smbd/server.c9
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) {