diff options
author | Volker Lendecke <vl@samba.org> | 2009-05-23 16:10:54 +0200 |
---|---|---|
committer | Volker Lendecke <vl@samba.org> | 2009-05-24 13:47:29 +0200 |
commit | a8e02b591b0c82c1f75f4f51bc683d9775f13d54 (patch) | |
tree | 25628a860b58c1dfad40028a83e2a148fcaa568f /source3 | |
parent | 1a69ba894514dd4eaba9fa015bdf930a5b620fea (diff) | |
download | samba-a8e02b591b0c82c1f75f4f51bc683d9775f13d54.tar.gz samba-a8e02b591b0c82c1f75f4f51bc683d9775f13d54.tar.bz2 samba-a8e02b591b0c82c1f75f4f51bc683d9775f13d54.zip |
Add "err_on_readability" to writev_send
A socket where the other side has closed only becomes readable. To catch
errors early when sitting in a pure writev, we need to also test for
readability.
Diffstat (limited to 'source3')
-rw-r--r-- | source3/lib/wb_reqtrans.c | 4 | ||||
-rw-r--r-- | source3/libsmb/async_smb.c | 4 | ||||
-rw-r--r-- | source3/rpc_server/srv_pipe_hnd.c | 2 |
3 files changed, 5 insertions, 5 deletions
diff --git a/source3/lib/wb_reqtrans.c b/source3/lib/wb_reqtrans.c index df92ecf8b0..3fdf62a108 100644 --- a/source3/lib/wb_reqtrans.c +++ b/source3/lib/wb_reqtrans.c @@ -152,7 +152,7 @@ struct tevent_req *wb_req_write_send(TALLOC_CTX *mem_ctx, count = 2; } - subreq = writev_send(state, ev, queue, fd, state->iov, count); + subreq = writev_send(state, ev, queue, fd, true, state->iov, count); if (tevent_req_nomem(subreq, req)) { return tevent_req_post(req, ev); } @@ -309,7 +309,7 @@ struct tevent_req *wb_resp_write_send(TALLOC_CTX *mem_ctx, count = 2; } - subreq = writev_send(state, ev, queue, fd, state->iov, count); + subreq = writev_send(state, ev, queue, fd, true, state->iov, count); if (tevent_req_nomem(subreq, req)) { return tevent_req_post(req, ev); } diff --git a/source3/libsmb/async_smb.c b/source3/libsmb/async_smb.c index 12bc0a6fb3..6edfe514b8 100644 --- a/source3/libsmb/async_smb.c +++ b/source3/libsmb/async_smb.c @@ -680,10 +680,10 @@ static NTSTATUS cli_smb_req_iov_send(struct tevent_req *req, iov[0].iov_base = (void *)buf; iov[0].iov_len = talloc_get_size(buf); subreq = writev_send(state, state->ev, state->cli->outgoing, - state->cli->fd, iov, 1); + state->cli->fd, false, iov, 1); } else { subreq = writev_send(state, state->ev, state->cli->outgoing, - state->cli->fd, iov, iov_count); + state->cli->fd, false, iov, iov_count); } if (subreq == NULL) { return NT_STATUS_NO_MEMORY; diff --git a/source3/rpc_server/srv_pipe_hnd.c b/source3/rpc_server/srv_pipe_hnd.c index f2441619ac..a17adfb7a0 100644 --- a/source3/rpc_server/srv_pipe_hnd.c +++ b/source3/rpc_server/srv_pipe_hnd.c @@ -1221,7 +1221,7 @@ struct tevent_req *np_write_send(TALLOC_CTX *mem_ctx, struct event_context *ev, state->iov.iov_len = len; subreq = writev_send(state, ev, p->write_queue, p->fd, - &state->iov, 1); + false, &state->iov, 1); if (subreq == NULL) { goto fail; } |