diff options
Diffstat (limited to 'source4/librpc/rpc/dcerpc_smb2.c')
-rw-r--r-- | source4/librpc/rpc/dcerpc_smb2.c | 12 |
1 files changed, 11 insertions, 1 deletions
diff --git a/source4/librpc/rpc/dcerpc_smb2.c b/source4/librpc/rpc/dcerpc_smb2.c index d2ab47898e..385cb00919 100644 --- a/source4/librpc/rpc/dcerpc_smb2.c +++ b/source4/librpc/rpc/dcerpc_smb2.c @@ -41,7 +41,17 @@ struct smb2_private { */ static void pipe_dead(struct dcerpc_connection *c, NTSTATUS status) { - c->transport.recv_data(c, NULL, status); + if (NT_STATUS_EQUAL(NT_STATUS_UNSUCCESSFUL, status)) { + status = NT_STATUS_UNEXPECTED_NETWORK_ERROR; + } + + if (NT_STATUS_EQUAL(NT_STATUS_OK, status)) { + status = NT_STATUS_END_OF_FILE; + } + + if (c->transport.recv_data) { + c->transport.recv_data(c, NULL, status); + } } |