diff options
Diffstat (limited to 'source4')
-rw-r--r-- | source4/librpc/rpc/dcerpc_smb.c | 17 |
1 files changed, 8 insertions, 9 deletions
diff --git a/source4/librpc/rpc/dcerpc_smb.c b/source4/librpc/rpc/dcerpc_smb.c index df421fb16d..88ed1923ca 100644 --- a/source4/librpc/rpc/dcerpc_smb.c +++ b/source4/librpc/rpc/dcerpc_smb.c @@ -29,6 +29,7 @@ struct smb_private { uint16_t fnum; struct smbcli_tree *tree; + const char *server_name; }; @@ -340,7 +341,7 @@ static NTSTATUS smb_shutdown_pipe(struct dcerpc_connection *c) static const char *smb_peer_name(struct dcerpc_connection *c) { struct smb_private *smb = c->transport.private; - return smb->tree->session->transport->called.name; + return smb->server_name; } /* @@ -404,9 +405,7 @@ NTSTATUS dcerpc_pipe_open_smb(struct dcerpc_connection *c, talloc_free(pipe_name_talloc); - if (!NT_STATUS_IS_OK(status)) { - return status; - } + NT_STATUS_NOT_OK_RETURN(status); /* fill in the transport methods @@ -424,12 +423,12 @@ NTSTATUS dcerpc_pipe_open_smb(struct dcerpc_connection *c, c->security_state.session_key = smb_session_key; smb = talloc(c, struct smb_private); - if (smb == NULL) { - return NT_STATUS_NO_MEMORY; - } + NT_STATUS_HAVE_NO_MEMORY(smb); - smb->fnum = io.ntcreatex.out.fnum; - smb->tree = tree; + smb->fnum = io.ntcreatex.out.fnum; + smb->tree = tree; + smb->server_name= strupper_talloc(smb, tree->session->transport->socket->hostname); + NT_STATUS_HAVE_NO_MEMORY(smb->server_name); c->transport.private = smb; |