diff options
Diffstat (limited to 'source3')
-rw-r--r-- | source3/rpc_client/rpc_transport_tstream.c | 18 |
1 files changed, 15 insertions, 3 deletions
diff --git a/source3/rpc_client/rpc_transport_tstream.c b/source3/rpc_client/rpc_transport_tstream.c index 01e7a5edc8..11cd8d44eb 100644 --- a/source3/rpc_client/rpc_transport_tstream.c +++ b/source3/rpc_client/rpc_transport_tstream.c @@ -186,7 +186,11 @@ static struct tevent_req *rpc_tstream_read_send(TALLOC_CTX *mem_ctx, return NULL; } if (!rpc_tstream_is_connected(transp)) { - tevent_req_nterror(req, NT_STATUS_CONNECTION_DISCONNECTED); + NTSTATUS status = NT_STATUS_CONNECTION_DISCONNECTED; + if (tstream_is_cli_np(transp->stream)) { + status = NT_STATUS_PIPE_DISCONNECTED; + } + tevent_req_nterror(req, status); return tevent_req_post(req, ev); } state->transp = transp; @@ -270,7 +274,11 @@ static struct tevent_req *rpc_tstream_write_send(TALLOC_CTX *mem_ctx, return NULL; } if (!rpc_tstream_is_connected(transp)) { - tevent_req_nterror(req, NT_STATUS_CONNECTION_DISCONNECTED); + NTSTATUS status = NT_STATUS_CONNECTION_DISCONNECTED; + if (tstream_is_cli_np(transp->stream)) { + status = NT_STATUS_PIPE_DISCONNECTED; + } + tevent_req_nterror(req, status); return tevent_req_post(req, ev); } state->ev = ev; @@ -366,7 +374,11 @@ static struct tevent_req *rpc_tstream_trans_send(TALLOC_CTX *mem_ctx, } if (!rpc_tstream_is_connected(transp)) { - tevent_req_nterror(req, NT_STATUS_CONNECTION_DISCONNECTED); + NTSTATUS status = NT_STATUS_CONNECTION_DISCONNECTED; + if (tstream_is_cli_np(transp->stream)) { + status = NT_STATUS_PIPE_DISCONNECTED; + } + tevent_req_nterror(req, status); return tevent_req_post(req, ev); } state->ev = ev; |