diff options
author | Andrew Bartlett <abartlet@samba.org> | 2004-09-11 15:05:49 +0000 |
---|---|---|
committer | Gerald (Jerry) Carter <jerry@samba.org> | 2007-10-10 12:58:39 -0500 |
commit | 4490c816a90871cd93b1a709bae91e5176e4f599 (patch) | |
tree | d8598582cfce464bbe031ba97920ae58b61818aa /source4/lib | |
parent | d987a32c8c95c745e059c5bd9c1530d29b19f2dc (diff) | |
download | samba-4490c816a90871cd93b1a709bae91e5176e4f599.tar.gz samba-4490c816a90871cd93b1a709bae91e5176e4f599.tar.bz2 samba-4490c816a90871cd93b1a709bae91e5176e4f599.zip |
r2283: Change from tridge (in his ntlm2 patch).
I think the idea here is to bail out correctly when we get signing
broken on TCP, rather than keeping on hammering the socket.
Andrew Bartlett
(This used to be commit 553b529a0991ccf2f1be14cc6a27695223f02e65)
Diffstat (limited to 'source4/lib')
-rw-r--r-- | source4/lib/events.c | 10 |
1 files changed, 7 insertions, 3 deletions
diff --git a/source4/lib/events.c b/source4/lib/events.c index 9affaf1246..06d956a014 100644 --- a/source4/lib/events.c +++ b/source4/lib/events.c @@ -310,7 +310,7 @@ void event_loop_exit(struct event_context *ev, int code) /* do a single event loop using the events defined in ev this function */ -void event_loop_once(struct event_context *ev) +int event_loop_once(struct event_context *ev) { time_t t; fd_set r_fds, w_fds; @@ -404,7 +404,7 @@ void event_loop_once(struct event_context *ev) the event, so this must be a bug. This is a fatal error. */ DEBUG(0,("EBADF on event_loop_once - exiting\n")); - return; + return -1; } if (selrtn > 0) { @@ -442,6 +442,8 @@ void event_loop_once(struct event_context *ev) } te = next; } + + return 0; } /* @@ -459,7 +461,9 @@ int event_loop_wait(struct event_context *ev) ev->exit.exit_now = False; while (ev->fd_events && !ev->exit.exit_now) { - event_loop_once(ev); + if (event_loop_once(ev) != 0) { + break; + } } return ev->exit.code; |