diff options
author | Günther Deschner <gd@samba.org> | 2009-09-10 22:23:21 +0200 |
---|---|---|
committer | Karolin Seeger <kseeger@samba.org> | 2009-10-20 15:00:21 +0200 |
commit | 6d17737ab3e82e870d5017d2f2d52a267515ad67 (patch) | |
tree | 01df705b9df890ab31cc57accab79ccfc40bb26a | |
parent | 38c3ff566c046366c826a14936e8ac9a02b58bb8 (diff) | |
download | samba-6d17737ab3e82e870d5017d2f2d52a267515ad67.tar.gz |
s3-rpc_client: add dcerpc_transport_t to cli_rpc_pipe_open_spnego_ntlmssp and cli_rpc_pipe_open_ntlmssp.
Guenther
(cherry picked from commit 032e01e7c13724d057b5744d7d79613449c2f24f)
(cherry picked from commit cd8874214dba810e60faca155611dbcf2f1351f7)
-rw-r--r-- | source3/include/proto.h | 2 | ||||
-rw-r--r-- | source3/libsmb/passchange.c | 1 | ||||
-rw-r--r-- | source3/rpc_client/cli_pipe.c | 10 | ||||
-rw-r--r-- | source3/rpcclient/rpcclient.c | 2 | ||||
-rw-r--r-- | source3/utils/net.h | 1 | ||||
-rw-r--r-- | source3/utils/net_rpc.c | 2 | ||||
-rw-r--r-- | source3/utils/net_rpc_samsync.c | 2 | ||||
-rw-r--r-- | source3/winbindd/winbindd_cm.c | 3 |
8 files changed, 19 insertions, 4 deletions
diff --git a/source3/include/proto.h b/source3/include/proto.h index 910b49ec9ec..96c1d930160 100644 --- a/source3/include/proto.h +++ b/source3/include/proto.h @@ -5295,6 +5295,7 @@ NTSTATUS cli_rpc_pipe_open_noauth_transport(struct cli_state *cli, struct rpc_pipe_client **presult); NTSTATUS cli_rpc_pipe_open_ntlmssp(struct cli_state *cli, const struct ndr_syntax_id *interface, + enum dcerpc_transport_t transport, enum pipe_auth_level auth_level, const char *domain, const char *username, @@ -5302,6 +5303,7 @@ NTSTATUS cli_rpc_pipe_open_ntlmssp(struct cli_state *cli, struct rpc_pipe_client **presult); NTSTATUS cli_rpc_pipe_open_spnego_ntlmssp(struct cli_state *cli, const struct ndr_syntax_id *interface, + enum dcerpc_transport_t transport, enum pipe_auth_level auth_level, const char *domain, const char *username, diff --git a/source3/libsmb/passchange.c b/source3/libsmb/passchange.c index f3cb9d69d6e..d73b34ccbb1 100644 --- a/source3/libsmb/passchange.c +++ b/source3/libsmb/passchange.c @@ -176,6 +176,7 @@ NTSTATUS remote_password_change(const char *remote_machine, const char *user_nam if (!pass_must_change) { result = cli_rpc_pipe_open_ntlmssp(cli, &ndr_table_samr.syntax_id, + NCACN_NP, PIPE_AUTH_LEVEL_PRIVACY, domain, user, old_passwd, diff --git a/source3/rpc_client/cli_pipe.c b/source3/rpc_client/cli_pipe.c index 75ce7cb32bc..5b8a2d42646 100644 --- a/source3/rpc_client/cli_pipe.c +++ b/source3/rpc_client/cli_pipe.c @@ -3701,6 +3701,7 @@ NTSTATUS cli_rpc_pipe_open_noauth(struct cli_state *cli, static NTSTATUS cli_rpc_pipe_open_ntlmssp_internal(struct cli_state *cli, const struct ndr_syntax_id *interface, + enum dcerpc_transport_t transport, enum pipe_auth_type auth_type, enum pipe_auth_level auth_level, const char *domain, @@ -3712,7 +3713,7 @@ static NTSTATUS cli_rpc_pipe_open_ntlmssp_internal(struct cli_state *cli, struct cli_pipe_auth_data *auth; NTSTATUS status; - status = cli_rpc_pipe_open(cli, NCACN_NP, interface, &result); + status = cli_rpc_pipe_open(cli, transport, interface, &result); if (!NT_STATUS_IS_OK(status)) { return status; } @@ -3754,6 +3755,7 @@ static NTSTATUS cli_rpc_pipe_open_ntlmssp_internal(struct cli_state *cli, NTSTATUS cli_rpc_pipe_open_ntlmssp(struct cli_state *cli, const struct ndr_syntax_id *interface, + enum dcerpc_transport_t transport, enum pipe_auth_level auth_level, const char *domain, const char *username, @@ -3762,6 +3764,7 @@ NTSTATUS cli_rpc_pipe_open_ntlmssp(struct cli_state *cli, { return cli_rpc_pipe_open_ntlmssp_internal(cli, interface, + transport, PIPE_AUTH_TYPE_NTLMSSP, auth_level, domain, @@ -3777,6 +3780,7 @@ NTSTATUS cli_rpc_pipe_open_ntlmssp(struct cli_state *cli, NTSTATUS cli_rpc_pipe_open_spnego_ntlmssp(struct cli_state *cli, const struct ndr_syntax_id *interface, + enum dcerpc_transport_t transport, enum pipe_auth_level auth_level, const char *domain, const char *username, @@ -3785,6 +3789,7 @@ NTSTATUS cli_rpc_pipe_open_spnego_ntlmssp(struct cli_state *cli, { return cli_rpc_pipe_open_ntlmssp_internal(cli, interface, + transport, PIPE_AUTH_TYPE_SPNEGO_NTLMSSP, auth_level, domain, @@ -3951,7 +3956,8 @@ static NTSTATUS get_schannel_session_key_auth_ntlmssp(struct cli_state *cli, NTSTATUS status; status = cli_rpc_pipe_open_spnego_ntlmssp( - cli, &ndr_table_netlogon.syntax_id, PIPE_AUTH_LEVEL_PRIVACY, + cli, &ndr_table_netlogon.syntax_id, NCACN_NP, + PIPE_AUTH_LEVEL_PRIVACY, domain, username, password, &netlogon_pipe); if (!NT_STATUS_IS_OK(status)) { return status; diff --git a/source3/rpcclient/rpcclient.c b/source3/rpcclient/rpcclient.c index 82de6034442..ae2a820a340 100644 --- a/source3/rpcclient/rpcclient.c +++ b/source3/rpcclient/rpcclient.c @@ -594,6 +594,7 @@ static NTSTATUS do_cmd(struct cli_state *cli, case PIPE_AUTH_TYPE_SPNEGO_NTLMSSP: ntresult = cli_rpc_pipe_open_spnego_ntlmssp( cli, cmd_entry->interface, + NCACN_NP, pipe_default_auth_level, lp_workgroup(), get_cmdline_auth_info_username(auth_info), @@ -603,6 +604,7 @@ static NTSTATUS do_cmd(struct cli_state *cli, case PIPE_AUTH_TYPE_NTLMSSP: ntresult = cli_rpc_pipe_open_ntlmssp( cli, cmd_entry->interface, + NCACN_NP, pipe_default_auth_level, lp_workgroup(), get_cmdline_auth_info_username(auth_info), diff --git a/source3/utils/net.h b/source3/utils/net.h index d88f962d41e..86e8b1ca15b 100644 --- a/source3/utils/net.h +++ b/source3/utils/net.h @@ -157,6 +157,7 @@ enum netdom_domain_t { ND_TYPE_NT4, ND_TYPE_AD }; #define NET_FLAGS_NO_PIPE 0x00000020 /* don't open an RPC pipe */ #define NET_FLAGS_SIGN 0x00000040 /* sign RPC connection */ #define NET_FLAGS_SEAL 0x00000080 /* seal RPC connection */ +#define NET_FLAGS_TCP 0x00000100 /* use ncacn_ip_tcp */ /* net share operation modes */ #define NET_MODE_SHARE_MIGRATE 1 diff --git a/source3/utils/net_rpc.c b/source3/utils/net_rpc.c index 3a1aeb021df..168659a4dbf 100644 --- a/source3/utils/net_rpc.c +++ b/source3/utils/net_rpc.c @@ -169,6 +169,8 @@ int run_rpc_command(struct net_context *c, if (conn_flags & NET_FLAGS_SEAL) { nt_status = cli_rpc_pipe_open_ntlmssp( cli, interface, + (conn_flags & NET_FLAGS_TCP) ? + NCACN_IP_TCP : NCACN_NP, PIPE_AUTH_LEVEL_PRIVACY, lp_workgroup(), c->opt_user_name, c->opt_password, &pipe_hnd); diff --git a/source3/utils/net_rpc_samsync.c b/source3/utils/net_rpc_samsync.c index 309be171ccf..0c7f9a829ad 100644 --- a/source3/utils/net_rpc_samsync.c +++ b/source3/utils/net_rpc_samsync.c @@ -499,7 +499,7 @@ int rpc_vampire_keytab(struct net_context *c, int argc, const char **argv) return -1; } else { ret = run_rpc_command(c, cli, &ndr_table_drsuapi.syntax_id, - NET_FLAGS_SEAL, + NET_FLAGS_SEAL | NET_FLAGS_TCP, rpc_vampire_keytab_ds_internals, argc, argv); if (ret != 0 && dc_info.is_mixed_mode) { printf("Fallback to NT4 vampire on Mixed-Mode AD Domain\n"); diff --git a/source3/winbindd/winbindd_cm.c b/source3/winbindd/winbindd_cm.c index 4571f22d346..ac22ed43367 100644 --- a/source3/winbindd/winbindd_cm.c +++ b/source3/winbindd/winbindd_cm.c @@ -2045,6 +2045,7 @@ NTSTATUS cm_connect_sam(struct winbindd_domain *domain, TALLOC_CTX *mem_ctx, authenticated SAMR pipe with sign & seal. */ result = cli_rpc_pipe_open_spnego_ntlmssp(conn->cli, &ndr_table_samr.syntax_id, + NCACN_NP, PIPE_AUTH_LEVEL_PRIVACY, domain_name, machine_account, @@ -2183,7 +2184,7 @@ NTSTATUS cm_connect_lsa(struct winbindd_domain *domain, TALLOC_CTX *mem_ctx, /* We have an authenticated connection. Use a NTLMSSP SPNEGO * authenticated LSA pipe with sign & seal. */ result = cli_rpc_pipe_open_spnego_ntlmssp - (conn->cli, &ndr_table_lsarpc.syntax_id, + (conn->cli, &ndr_table_lsarpc.syntax_id, NCACN_NP, PIPE_AUTH_LEVEL_PRIVACY, conn->cli->domain, conn->cli->user_name, conn->cli->password, &conn->lsa_pipe); |