r7932: don't use the nbt called name as server name, for dcerpc_server_name()
authorStefan Metzmacher <metze@samba.org>
Sun, 26 Jun 2005 11:35:50 +0000 (11:35 +0000)
committerGerald (Jerry) Carter <jerry@samba.org>
Wed, 10 Oct 2007 18:18:52 +0000 (13:18 -0500)
in the ncacn_np trnaport

it's now supported to use the ip address in smbtorture for ncacn_np tests
that use dcerpc_server_name(),

and we can now pass the dns host name in the tree connect when we have the dns name
on the smbtorture command line

metze
(This used to be commit e29edbc7e62c738564ae842c9c01c969f5c70e5d)

source4/librpc/rpc/dcerpc_smb.c

index df421fb16d2bfca40098af86381c5c10f891082e..88ed1923ca61acfe1442ece82e38e98457aa8352 100644 (file)
@@ -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;