From a87dea2a0894015cf4a3140995791f5468c40038 Mon Sep 17 00:00:00 2001 From: Andrew Bartlett Date: Tue, 10 Jul 2007 11:37:30 +0000 Subject: r23810: Make things static, and remove unsued code. This includes some of the original ildap ldap client API. ldb provides a much easier abstraction on this to use, and doesn't use these functions. Andrew Bartlett (This used to be commit dc27a7e41c297472675e8c251bb14327a1af3902) --- source4/winbind/wb_async_helpers.c | 231 ------------------------------------- 1 file changed, 231 deletions(-) (limited to 'source4/winbind/wb_async_helpers.c') diff --git a/source4/winbind/wb_async_helpers.c b/source4/winbind/wb_async_helpers.c index 21b00adf60..662dd111dd 100644 --- a/source4/winbind/wb_async_helpers.c +++ b/source4/winbind/wb_async_helpers.c @@ -35,213 +35,6 @@ #include "winbind/wb_helper.h" -struct get_schannel_creds_state { - struct cli_credentials *wks_creds; - struct dcerpc_pipe *p; - struct netr_ServerReqChallenge r; - - struct creds_CredentialState *creds_state; - struct netr_Credential netr_cred; - uint32_t negotiate_flags; - struct netr_ServerAuthenticate2 a; -}; - -static void get_schannel_creds_recv_anonbind(struct composite_context *creq); -static void get_schannel_creds_recv_auth(struct rpc_request *req); -static void get_schannel_creds_recv_chal(struct rpc_request *req); -static void get_schannel_creds_recv_pipe(struct composite_context *ctx); - -struct composite_context *wb_get_schannel_creds_send(TALLOC_CTX *mem_ctx, - struct cli_credentials *wks_creds, - struct smbcli_tree *tree, - struct event_context *ev) -{ - struct composite_context *c, *creq; - struct get_schannel_creds_state *state; - - c = composite_create(mem_ctx, ev); - if (c == NULL) goto failed; - - state = talloc(c, struct get_schannel_creds_state); - if (state == NULL) { - c->status = NT_STATUS_NO_MEMORY; - goto failed; - } - - c->private_data = state; - - state->wks_creds = wks_creds; - - state->p = dcerpc_pipe_init(state, ev); - if (state->p == NULL) { - c->status = NT_STATUS_NO_MEMORY; - goto failed; - } - - creq = dcerpc_pipe_open_smb_send(state->p, tree, "\\netlogon"); - if (creq == NULL) { - c->status = NT_STATUS_NO_MEMORY; - goto failed; - } - - creq->async.fn = get_schannel_creds_recv_pipe; - creq->async.private_data = c; - - return c; - - failed: - composite_error(c, c->status); - return c; -} - -static void get_schannel_creds_recv_pipe(struct composite_context *creq) -{ - struct composite_context *c = - talloc_get_type(creq->async.private_data, - struct composite_context); - struct get_schannel_creds_state *state = - talloc_get_type(c->private_data, - struct get_schannel_creds_state); - - c->status = dcerpc_pipe_open_smb_recv(creq); - if (!composite_is_ok(c)) return; - - creq = dcerpc_bind_auth_none_send(state, state->p, - &dcerpc_table_netlogon); - composite_continue(c, creq, get_schannel_creds_recv_anonbind, c); -} - -static void get_schannel_creds_recv_anonbind(struct composite_context *creq) -{ - struct composite_context *c = - talloc_get_type(creq->async.private_data, - struct composite_context); - struct get_schannel_creds_state *state = - talloc_get_type(c->private_data, - struct get_schannel_creds_state); - struct rpc_request *req; - - c->status = dcerpc_bind_auth_none_recv(creq); - if (!composite_is_ok(c)) return; - - state->r.in.computer_name = - cli_credentials_get_workstation(state->wks_creds); - state->r.in.server_name = - talloc_asprintf(state, "\\\\%s", - dcerpc_server_name(state->p)); - if (composite_nomem(state->r.in.server_name, c)) return; - - state->r.in.credentials = talloc(state, struct netr_Credential); - if (composite_nomem(state->r.in.credentials, c)) return; - - state->r.out.credentials = talloc(state, struct netr_Credential); - if (composite_nomem(state->r.out.credentials, c)) return; - - generate_random_buffer(state->r.in.credentials->data, - sizeof(state->r.in.credentials->data)); - - req = dcerpc_netr_ServerReqChallenge_send(state->p, state, &state->r); - composite_continue_rpc(c, req, get_schannel_creds_recv_chal, c); -} - -static void get_schannel_creds_recv_chal(struct rpc_request *req) -{ - struct composite_context *c = - talloc_get_type(req->async.private_data, - struct composite_context); - struct get_schannel_creds_state *state = - talloc_get_type(c->private_data, - struct get_schannel_creds_state); - const struct samr_Password *mach_pwd; - - c->status = dcerpc_ndr_request_recv(req); - if (!composite_is_ok(c)) return; - c->status = state->r.out.result; - if (!composite_is_ok(c)) return; - - state->creds_state = talloc(state, struct creds_CredentialState); - if (composite_nomem(state->creds_state, c)) return; - - mach_pwd = cli_credentials_get_nt_hash(state->wks_creds, state); - if (composite_nomem(mach_pwd, c)) return; - - state->negotiate_flags = NETLOGON_NEG_AUTH2_FLAGS; - - creds_client_init(state->creds_state, state->r.in.credentials, - state->r.out.credentials, mach_pwd, - &state->netr_cred, state->negotiate_flags); - - state->a.in.server_name = - talloc_reference(state, state->r.in.server_name); - state->a.in.account_name = - cli_credentials_get_username(state->wks_creds); - state->a.in.secure_channel_type = - cli_credentials_get_secure_channel_type(state->wks_creds); - state->a.in.computer_name = - cli_credentials_get_workstation(state->wks_creds); - state->a.in.negotiate_flags = &state->negotiate_flags; - state->a.out.negotiate_flags = &state->negotiate_flags; - state->a.in.credentials = &state->netr_cred; - state->a.out.credentials = &state->netr_cred; - - req = dcerpc_netr_ServerAuthenticate2_send(state->p, state, &state->a); - composite_continue_rpc(c, req, get_schannel_creds_recv_auth, c); -} - -static void get_schannel_creds_recv_auth(struct rpc_request *req) -{ - struct composite_context *c = - talloc_get_type(req->async.private_data, - struct composite_context); - struct get_schannel_creds_state *state = - talloc_get_type(c->private_data, - struct get_schannel_creds_state); - - c->status = dcerpc_ndr_request_recv(req); - if (!composite_is_ok(c)) return; - c->status = state->a.out.result; - if (!composite_is_ok(c)) return; - - if (!creds_client_check(state->creds_state, - state->a.out.credentials)) { - DEBUG(5, ("Server got us invalid creds\n")); - composite_error(c, NT_STATUS_UNSUCCESSFUL); - return; - } - - cli_credentials_set_netlogon_creds(state->wks_creds, - state->creds_state); - - composite_done(c); -} - -NTSTATUS wb_get_schannel_creds_recv(struct composite_context *c, - TALLOC_CTX *mem_ctx, - struct dcerpc_pipe **netlogon_pipe) -{ - NTSTATUS status = composite_wait(c); - if (NT_STATUS_IS_OK(status)) { - struct get_schannel_creds_state *state = - talloc_get_type(c->private_data, - struct get_schannel_creds_state); - *netlogon_pipe = talloc_steal(mem_ctx, state->p); - } - talloc_free(c); - return status; -} - -NTSTATUS wb_get_schannel_creds(TALLOC_CTX *mem_ctx, - struct cli_credentials *wks_creds, - struct smbcli_tree *tree, - struct event_context *event_ctx, - struct dcerpc_pipe **netlogon_pipe) -{ - struct composite_context *c = - wb_get_schannel_creds_send(mem_ctx, wks_creds, tree, - event_ctx); - return wb_get_schannel_creds_recv(c, mem_ctx, netlogon_pipe); -} - struct lsa_lookupsids_state { struct composite_context *ctx; int num_sids; @@ -384,19 +177,6 @@ NTSTATUS wb_lsa_lookupsids_recv(struct composite_context *c, return status; } -NTSTATUS wb_lsa_lookupsids(TALLOC_CTX *mem_ctx, - struct dcerpc_pipe *lsa_pipe, - struct policy_handle *handle, - int num_sids, const struct dom_sid **sids, - struct wb_sid_object ***names) -{ - struct composite_context *c = - wb_lsa_lookupsids_send(mem_ctx, lsa_pipe, handle, - num_sids, sids); - return wb_lsa_lookupnames_recv(c, mem_ctx, names); -} - - struct lsa_lookupnames_state { struct composite_context *ctx; @@ -526,17 +306,6 @@ NTSTATUS wb_lsa_lookupnames_recv(struct composite_context *c, return status; } -NTSTATUS wb_lsa_lookupnames(TALLOC_CTX *mem_ctx, - struct dcerpc_pipe *lsa_pipe, - struct policy_handle *handle, - int num_names, const char **names, - struct wb_sid_object ***sids) -{ - struct composite_context *c = - wb_lsa_lookupnames_send(mem_ctx, lsa_pipe, handle, - num_names, names); - return wb_lsa_lookupnames_recv(c, mem_ctx, sids); -} #if 0 -- cgit