s3:rpc_client: make use of smbXcli_session_application_key()
authorStefan Metzmacher <metze@samba.org>
Wed, 1 Aug 2012 08:18:22 +0000 (10:18 +0200)
committerStefan Metzmacher <metze@samba.org>
Wed, 1 Aug 2012 12:17:14 +0000 (14:17 +0200)
metze

source3/rpc_client/cli_pipe.c

index 8b9e513b000ce0ff6c068a652b79cb3a1e5067b4..bd4981316df12ba55230ffd0a3014553fcc20791 100644 (file)
@@ -2862,9 +2862,22 @@ NTSTATUS cli_rpc_pipe_open_noauth_transport(struct cli_state *cli,
 
        auth->user_name = talloc_strdup(auth, cli->user_name);
        auth->domain = talloc_strdup(auth, cli->domain);
-       auth->user_session_key = data_blob_talloc(auth,
-               cli->user_session_key.data,
-               cli->user_session_key.length);
+
+       if (transport == NCACN_NP) {
+               struct smbXcli_session *session;
+
+               if (smbXcli_conn_protocol(cli->conn) >= PROTOCOL_SMB2_02) {
+                       session = cli->smb2.session;
+               } else {
+                       session = cli->smb1.session;
+               }
+
+               status = smbXcli_session_application_key(session, auth,
+                                               &auth->user_session_key);
+               if (!NT_STATUS_IS_OK(status)) {
+                       auth->user_session_key = data_blob_null;
+               }
+       }
 
        if ((auth->user_name == NULL) || (auth->domain == NULL)) {
                TALLOC_FREE(result);