diff options
author | Stefan Metzmacher <metze@samba.org> | 2009-03-16 15:55:39 +0100 |
---|---|---|
committer | Stefan Metzmacher <metze@samba.org> | 2009-03-18 07:00:40 +0100 |
commit | 450252d2a1981fb04eb62eb095c1b762a96f7727 (patch) | |
tree | 82a524fff29f3f29298390097d7e2eecb57ac52e /source3/smbd | |
parent | b659daf81f31678f7447545d015bd9d1db8811b9 (diff) | |
download | samba-450252d2a1981fb04eb62eb095c1b762a96f7727.tar.gz samba-450252d2a1981fb04eb62eb095c1b762a96f7727.tar.bz2 samba-450252d2a1981fb04eb62eb095c1b762a96f7727.zip |
s3:smbd: use tevent_loop_once() in the parent event loop
metze
Diffstat (limited to 'source3/smbd')
-rw-r--r-- | source3/smbd/server.c | 39 |
1 files changed, 5 insertions, 34 deletions
diff --git a/source3/smbd/server.c b/source3/smbd/server.c index 2400b5c104..d27f98281b 100644 --- a/source3/smbd/server.c +++ b/source3/smbd/server.c @@ -654,45 +654,16 @@ static void smbd_parent_loop(struct smbd_parent_context *parent) { /* now accept incoming connections - forking a new process for each incoming connection */ - DEBUG(2,("waiting for a connection\n")); + DEBUG(2,("waiting for connections\n")); while (1) { - struct timeval now, idle_timeout; - fd_set r_fds, w_fds; - int maxfd = 0; - int num; + int ret; TALLOC_CTX *frame = talloc_stackframe(); - if (run_events(smbd_event_context(), 0, NULL, NULL)) { - TALLOC_FREE(frame); - continue; - } - - idle_timeout = timeval_zero(); - - FD_ZERO(&w_fds); - FD_ZERO(&r_fds); - GetTimeOfDay(&now); - - event_add_to_select_args(smbd_event_context(), &now, - &r_fds, &w_fds, &idle_timeout, - &maxfd); - - num = sys_select(maxfd+1,&r_fds,&w_fds,NULL, - timeval_is_zero(&idle_timeout) ? - NULL : &idle_timeout); - - /* check if we need to reload services */ - check_reload(time(NULL)); - - if (run_events(smbd_event_context(), num, &r_fds, &w_fds)) { - TALLOC_FREE(frame); - continue; + ret = tevent_loop_once(smbd_event_context()); + if (ret != 0) { + exit_server_cleanly("tevent_loop_once() error"); } - /* socket error */ - if (num < 0) - exit_server_cleanly("socket error"); - TALLOC_FREE(frame); } /* end while 1 */ |