diff options
author | Stefan Metzmacher <metze@samba.org> | 2004-09-20 10:40:11 +0000 |
---|---|---|
committer | Gerald (Jerry) Carter <jerry@samba.org> | 2007-10-10 12:58:54 -0500 |
commit | 6b9b169c2746c0223f249700d7ff8a70feb8da62 (patch) | |
tree | f7064839446cccbbf5aa5a026677dc9be0145d21 /source4/librpc/rpc | |
parent | 8f85b3f77132279d8e79ff9a8a213515a3845fe0 (diff) | |
download | samba-6b9b169c2746c0223f249700d7ff8a70feb8da62.tar.gz samba-6b9b169c2746c0223f249700d7ff8a70feb8da62.tar.bz2 samba-6b9b169c2746c0223f249700d7ff8a70feb8da62.zip |
r2443: check return code of event_loop_once() to catch thet cases where the server
closes the connetion and we got EBADF from select() and event_loop_once() fails
metze
(This used to be commit 9c0e50a6f3d628156b4543d5ded89e06be696f64)
Diffstat (limited to 'source4/librpc/rpc')
-rw-r--r-- | source4/librpc/rpc/dcerpc.c | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/source4/librpc/rpc/dcerpc.c b/source4/librpc/rpc/dcerpc.c index a4f93973f7..99051e75b6 100644 --- a/source4/librpc/rpc/dcerpc.c +++ b/source4/librpc/rpc/dcerpc.c @@ -436,7 +436,9 @@ static NTSTATUS full_request(struct dcerpc_pipe *p, while (NT_STATUS_IS_OK(state->status) && state->reply_blob) { struct event_context *ctx = p->transport.event_context(p); - event_loop_once(ctx); + if (event_loop_once(ctx) != 0) { + return NT_STATUS_CONNECTION_DISCONNECTED; + } } return state->status; @@ -882,7 +884,9 @@ NTSTATUS dcerpc_request_recv(struct rpc_request *req, while (req->state == RPC_REQUEST_PENDING) { struct event_context *ctx = dcerpc_event_context(req->p); - event_loop_once(ctx); + if (event_loop_once(ctx) != 0) { + return NT_STATUS_CONNECTION_DISCONNECTED; + } } *stub_data = req->payload; status = req->status; |