Fix the wbinfo test on the LDAP backend.
authorAndrew Bartlett <abartlet@samba.org>
Sat, 28 Jun 2008 08:04:35 +0000 (18:04 +1000)
committerAndrew Bartlett <abartlet@samba.org>
Sat, 28 Jun 2008 08:10:59 +0000 (18:10 +1000)
The problem was that we would do a blocking wait for the LDAP server,
which was also blocking on us returning (because we were in single
process mode).

The LDAP connection being made here is useless anyway, and will need
to be an async ldb_connect() before anybody reintroucues it (nobody in
their right mind would program a winbindd backend on pure LDAP, when
the ldb abstraction is available).

Andrew Bartlett

source/winbind/wb_init_domain.c
source/winbind/wb_server.h

index 8b82ab711e366fb86dfdb0cd8402f863308cc826..c6dee825a904b481bdfede3025149234914c33fe 100644 (file)
@@ -76,7 +76,6 @@ static void init_domain_recv_netlogonpipe(struct composite_context *ctx);
 static void init_domain_recv_lsa_pipe(struct composite_context *ctx);
 static void init_domain_recv_lsa_policy(struct rpc_request *req);
 static void init_domain_recv_queryinfo(struct rpc_request *req);
-static void init_domain_recv_ldapconn(struct composite_context *ctx);
 static void init_domain_recv_samr(struct composite_context *ctx);
 
 static struct dcerpc_binding *init_domain_binding(struct init_domain_state *state, 
@@ -401,37 +400,6 @@ static void init_domain_recv_samr(struct composite_context *ctx)
        state->domain->libnet_ctx->samr.name = state->domain->info->name;
        state->domain->libnet_ctx->samr.sid = state->domain->info->sid;
 
-       state->domain->ldap_conn =
-               ldap4_new_connection(state->domain, state->domain->libnet_ctx->lp_ctx, state->ctx->event_ctx);
-       composite_nomem(state->domain->ldap_conn, state->ctx);
-
-       ldap_url = talloc_asprintf(state, "ldap://%s/",
-                                  state->domain->dc_address);
-       composite_nomem(ldap_url, state->ctx);
-
-       ctx = ldap_connect_send(state->domain->ldap_conn, ldap_url);
-       composite_continue(state->ctx, ctx, init_domain_recv_ldapconn, state);
-}
-
-static void init_domain_recv_ldapconn(struct composite_context *ctx)
-{
-       struct init_domain_state *state =
-               talloc_get_type(ctx->async.private_data,
-                               struct init_domain_state);
-
-       state->ctx->status = ldap_connect_recv(ctx);
-       if (NT_STATUS_IS_OK(state->ctx->status)) {
-               state->domain->ldap_conn->host =
-                       talloc_strdup(state->domain->ldap_conn,
-                                     state->domain->dc_name);
-               state->ctx->status =
-                       ldap_bind_sasl(state->domain->ldap_conn,
-                                      state->domain->libnet_ctx->cred,
-                                      state->domain->libnet_ctx->lp_ctx);
-               DEBUG(0, ("ldap_bind returned %s\n",
-                         nt_errstr(state->ctx->status)));
-       }
-
        composite_done(state->ctx);
 }
 
index ce972932f5378135b6569e98c1b44ab3ddcf58c6..5a7ba7b4012e4a5872ba4f1a8e816585d504632b 100644 (file)
@@ -69,8 +69,6 @@ struct wbsrv_domain {
 
        struct dcerpc_binding *samr_binding;
 
-       struct ldap_connection *ldap_conn;
-
        struct dcerpc_pipe *netlogon_pipe;
        struct dcerpc_binding *netlogon_binding;
 };