]> git.ipfire.org Git - thirdparty/samba.git/commitdiff
Refactoring: Change calling conventions for cli_rpc_pipe_open_ntlmssp_auth_schannel
authorVolker Lendecke <vl@samba.org>
Sun, 20 Jul 2008 09:04:31 +0000 (11:04 +0200)
committerVolker Lendecke <vl@samba.org>
Sun, 20 Jul 2008 15:37:13 +0000 (17:37 +0200)
Pass in ndr_syntax_id instead of pipe_idx, return NTSTATUS

source/include/proto.h
source/rpc_client/cli_pipe.c

index 98b21669848025a1e1b81f71e5706f1e78d0d50c..bdbbdd7f5105a4e2b63d1789cc9c783c46385fbe 100644 (file)
@@ -7128,13 +7128,13 @@ NTSTATUS cli_rpc_pipe_open_schannel_with_key(struct cli_state *cli,
                                             const char *domain,
                                             const struct dcinfo *pdc,
                                             struct rpc_pipe_client **presult);
-struct rpc_pipe_client *cli_rpc_pipe_open_ntlmssp_auth_schannel(struct cli_state *cli,
-                                                int pipe_idx,
-                                               enum pipe_auth_level auth_level,
-                                                const char *domain,
-                                               const char *username,
-                                               const char *password,
-                                               NTSTATUS *perr);
+NTSTATUS cli_rpc_pipe_open_ntlmssp_auth_schannel(struct cli_state *cli,
+                                                const struct ndr_syntax_id *interface,
+                                                enum pipe_auth_level auth_level,
+                                                const char *domain,
+                                                const char *username,
+                                                const char *password,
+                                                struct rpc_pipe_client **presult);
 struct rpc_pipe_client *cli_rpc_pipe_open_schannel(struct cli_state *cli,
                                                 int pipe_idx,
                                                enum pipe_auth_level auth_level,
index abafa0ff2626c4959680ce5f8933b950c7ec0f1e..5441ab8807c2a1a51113ee8e211f9bce42697a21 100644 (file)
@@ -3328,35 +3328,39 @@ static NTSTATUS get_schannel_session_key_auth_ntlmssp(struct cli_state *cli,
  uses an ntlmssp bind to get the session key.
  ****************************************************************************/
 
-struct rpc_pipe_client *cli_rpc_pipe_open_ntlmssp_auth_schannel(struct cli_state *cli,
-                                                int pipe_idx,
-                                               enum pipe_auth_level auth_level,
-                                                const char *domain,
-                                               const char *username,
-                                               const char *password,
-                                               NTSTATUS *perr)
+NTSTATUS cli_rpc_pipe_open_ntlmssp_auth_schannel(struct cli_state *cli,
+                                                const struct ndr_syntax_id *interface,
+                                                enum pipe_auth_level auth_level,
+                                                const char *domain,
+                                                const char *username,
+                                                const char *password,
+                                                struct rpc_pipe_client **presult)
 {
        uint32_t neg_flags = NETLOGON_NEG_AUTH2_ADS_FLAGS;
        struct rpc_pipe_client *netlogon_pipe = NULL;
        struct rpc_pipe_client *result = NULL;
+       NTSTATUS status;
 
-       *perr = get_schannel_session_key_auth_ntlmssp(
+       status = get_schannel_session_key_auth_ntlmssp(
                cli, domain, username, password, &neg_flags, &netlogon_pipe);
-       if (!NT_STATUS_IS_OK(*perr)) {
+       if (!NT_STATUS_IS_OK(status)) {
                DEBUG(0,("cli_rpc_pipe_open_ntlmssp_auth_schannel: failed to get schannel session "
                        "key from server %s for domain %s.\n",
                        cli->desthost, domain ));
-               return NULL;
+               return status;
        }
 
-       *perr = cli_rpc_pipe_open_schannel_with_key(
-               cli, cli_get_iface(pipe_idx), auth_level,
-               domain, netlogon_pipe->dc, &result);
+       status = cli_rpc_pipe_open_schannel_with_key(
+               cli, interface, auth_level, domain, netlogon_pipe->dc,
+               &result);
 
        /* Now we've bound using the session key we can close the netlog pipe. */
        TALLOC_FREE(netlogon_pipe);
 
-       return result;
+       if (NT_STATUS_IS_OK(status)) {
+               *presult = result;
+       }
+       return status;
 }
 
 /****************************************************************************