diff options
author | Andrew Bartlett <abartlet@samba.org> | 2012-01-02 15:21:05 +1100 |
---|---|---|
committer | Stefan Metzmacher <metze@samba.org> | 2012-01-11 09:09:43 +0100 |
commit | 49bafcfa48f2d440101c0634d934528cbee69bf1 (patch) | |
tree | 275af36879d8b53a07bd832abcc664343187dcfe | |
parent | 50a939ad8580c24fc42be50cda531874bfd66efd (diff) | |
download | samba-49bafcfa48f2d440101c0634d934528cbee69bf1.tar.gz samba-49bafcfa48f2d440101c0634d934528cbee69bf1.tar.xz samba-49bafcfa48f2d440101c0634d934528cbee69bf1.zip |
s3-librpc Supply target service and server to spnego_generic_init_client()
Signed-off-by: Stefan Metzmacher <metze@samba.org>
-rw-r--r-- | source3/librpc/crypto/cli_spnego.c | 14 | ||||
-rw-r--r-- | source3/librpc/crypto/spnego.h | 2 | ||||
-rw-r--r-- | source3/rpc_client/cli_pipe.c | 3 |
3 files changed, 19 insertions, 0 deletions
diff --git a/source3/librpc/crypto/cli_spnego.c b/source3/librpc/crypto/cli_spnego.c index f64a537e202..98251c776ec 100644 --- a/source3/librpc/crypto/cli_spnego.c +++ b/source3/librpc/crypto/cli_spnego.c @@ -88,6 +88,8 @@ NTSTATUS spnego_generic_init_client(TALLOC_CTX *mem_ctx, const char *oid, bool do_sign, bool do_seal, bool is_dcerpc, + const char *server, + const char *target_service, const char *domain, const char *username, const char *password, @@ -148,6 +150,18 @@ NTSTATUS spnego_generic_init_client(TALLOC_CTX *mem_ctx, GENSEC_FEATURE_DCE_STYLE); } + status = gensec_set_target_service(auth_generic_state->gensec_security, target_service); + if (!NT_STATUS_IS_OK(status)) { + TALLOC_FREE(sp_ctx); + return status; + } + + status = gensec_set_target_hostname(auth_generic_state->gensec_security, server); + if (!NT_STATUS_IS_OK(status)) { + TALLOC_FREE(sp_ctx); + return status; + } + status = auth_generic_client_start(auth_generic_state, oid); if (!NT_STATUS_IS_OK(status)) { TALLOC_FREE(sp_ctx); diff --git a/source3/librpc/crypto/spnego.h b/source3/librpc/crypto/spnego.h index 7e0f1590ab6..a31f997ab6d 100644 --- a/source3/librpc/crypto/spnego.h +++ b/source3/librpc/crypto/spnego.h @@ -65,6 +65,8 @@ NTSTATUS spnego_generic_init_client(TALLOC_CTX *mem_ctx, const char *oid, bool do_sign, bool do_seal, bool is_dcerpc, + const char *server, + const char *target_service, const char *domain, const char *username, const char *password, diff --git a/source3/rpc_client/cli_pipe.c b/source3/rpc_client/cli_pipe.c index 49053c980ec..ca8655cab1a 100644 --- a/source3/rpc_client/cli_pipe.c +++ b/source3/rpc_client/cli_pipe.c @@ -3143,6 +3143,8 @@ NTSTATUS cli_rpc_pipe_open_spnego_ntlmssp(struct cli_state *cli, struct pipe_auth_data *auth; struct spnego_context *spnego_ctx; NTSTATUS status; + const char *server = NULL; + const char *target_service = "cifs"; /* TODO: Determine target service from the bindings or interface table */ status = cli_rpc_pipe_open(cli, transport, interface, &result); if (!NT_STATUS_IS_OK(status)) { @@ -3182,6 +3184,7 @@ NTSTATUS cli_rpc_pipe_open_spnego_ntlmssp(struct cli_state *cli, (auth->auth_level == DCERPC_AUTH_LEVEL_PRIVACY), true, + server, target_service, domain, username, password, &spnego_ctx); if (!NT_STATUS_IS_OK(status)) { |