s4-param Refactor secrets code to not require an event context.
authorAndrew Bartlett <abartlet@samba.org>
Mon, 11 Oct 2010 05:43:07 +0000 (16:43 +1100)
committerAndrew Bartlett <abartlet@samba.org>
Mon, 11 Oct 2010 13:02:15 +0000 (13:02 +0000)
A new event context is constructed by LDB when required for secrets.ldb
This will be essentially unused, as LDB on TDB will only trigger 'fake'
events, and blocks on transactions and lock operations anyway.

Andrew Bartlett

source4/auth/credentials/credentials_secrets.c
source4/param/provision.c
source4/param/secrets.c
source4/param/secrets.h
source4/rpc_server/lsa/dcesrv_lsa.c
source4/winbind/wb_server.c

index d68ed33a31804bc617a7e47e30f5184553644dfd..9ffc39c0c3c7f2bf4dee0505affdc9580cf6bf71 100644 (file)
@@ -74,7 +74,7 @@ _PUBLIC_ NTSTATUS cli_credentials_set_secrets(struct cli_credentials *cred,
 
        if (!ldb) {
                /* Local secrets are stored in secrets.ldb */
-               ldb = secrets_db_connect(mem_ctx, event_ctx, lp_ctx);
+               ldb = secrets_db_connect(mem_ctx, lp_ctx);
                if (!ldb) {
                        /* set anonymous as the fallback, if the machine account won't work */
                        cli_credentials_set_anonymous(cred);
index fd97f69cb35d3653804b39ec17973c5360d86729..71405507ba87be2d1b080347ae786bd9468be8d9 100644 (file)
@@ -233,7 +233,7 @@ NTSTATUS provision_store_self_join(TALLOC_CTX *mem_ctx, struct loadparm_context
        }
 
        /* Open the secrets database */
-       ldb = secrets_db_connect(tmp_mem, event_ctx, lp_ctx);
+       ldb = secrets_db_connect(tmp_mem, lp_ctx);
        if (!ldb) {
                *error_string
                        = talloc_asprintf(mem_ctx, 
index c894358e2dc1dd8100d79d463fb4867802869c47..d87264a96097d3bd50f016a6d9551c145c552c97 100644 (file)
@@ -86,10 +86,9 @@ struct tdb_wrap *secrets_init(TALLOC_CTX *mem_ctx, struct loadparm_context *lp_c
   connect to the secrets ldb
 */
 struct ldb_context *secrets_db_connect(TALLOC_CTX *mem_ctx,
-                                       struct tevent_context *ev_ctx,
                                        struct loadparm_context *lp_ctx)
 {
-       return ldb_wrap_connect(mem_ctx, ev_ctx, lp_ctx, lpcfg_secrets_url(lp_ctx),
+       return ldb_wrap_connect(mem_ctx, NULL, lp_ctx, lpcfg_secrets_url(lp_ctx),
                               NULL, NULL, 0);
 }
 
@@ -98,7 +97,6 @@ struct ldb_context *secrets_db_connect(TALLOC_CTX *mem_ctx,
  * @return pointer to a SID object if the SID could be obtained, NULL otherwise
  */
 struct dom_sid *secrets_get_domain_sid(TALLOC_CTX *mem_ctx,
-                                      struct tevent_context *ev_ctx,
                                       struct loadparm_context *lp_ctx,
                                       const char *domain,
                                       enum netr_SchannelType *sec_channel_type,
@@ -114,7 +112,7 @@ struct dom_sid *secrets_get_domain_sid(TALLOC_CTX *mem_ctx,
 
        *errstring = NULL;
 
-       ldb = secrets_db_connect(mem_ctx, ev_ctx, lp_ctx);
+       ldb = secrets_db_connect(mem_ctx, lp_ctx);
        if (ldb == NULL) {
                DEBUG(5, ("secrets_db_connect failed\n"));
                return NULL;
index 49fe8c31c7c4a8f87fb7111544cd4724bb93d7e5..d9e0f53f0faddb4b479a49b65ba17f916c87ef20 100644 (file)
@@ -43,9 +43,8 @@ struct ldb_message;
 struct ldb_context;
 
 struct tdb_wrap *secrets_init(TALLOC_CTX *mem_ctx, struct loadparm_context *lp_ctx);
-struct ldb_context *secrets_db_connect(TALLOC_CTX *mem_ctx, struct tevent_context *ev_ctx, struct loadparm_context *lp_ctx);
+struct ldb_context *secrets_db_connect(TALLOC_CTX *mem_ctx, struct loadparm_context *lp_ctx);
 struct dom_sid *secrets_get_domain_sid(TALLOC_CTX *mem_ctx,
-                                      struct tevent_context *ev_ctx,
                                       struct loadparm_context *lp_ctx,
                                       const char *domain,
                                       enum netr_SchannelType *sec_channel_type,
index a3cedbba4d5b6fb3806ccdeccedf414f12650ef1..8a50588f58d0ee34e6a47b136be2a47d9cf9a10c 100644 (file)
@@ -2923,7 +2923,7 @@ static NTSTATUS dcesrv_lsa_CreateSecret(struct dcesrv_call_state *dce_call, TALL
                }
 
                secret_state->sam_ldb = talloc_reference(secret_state, 
-                                                        secrets_db_connect(mem_ctx, dce_call->event_ctx, dce_call->conn->dce_ctx->lp_ctx));
+                                                        secrets_db_connect(mem_ctx, dce_call->conn->dce_ctx->lp_ctx));
                /* search for the secret record */
                ret = gendb_search(secret_state->sam_ldb, mem_ctx,
                                   ldb_dn_new(mem_ctx, secret_state->sam_ldb, "cn=LSA Secrets"),
@@ -3046,7 +3046,7 @@ static NTSTATUS dcesrv_lsa_OpenSecret(struct dcesrv_call_state *dce_call, TALLOC
        } else {
                secret_state->global = false;
                secret_state->sam_ldb = talloc_reference(secret_state, 
-                                secrets_db_connect(mem_ctx, dce_call->event_ctx, dce_call->conn->dce_ctx->lp_ctx));
+                                                        secrets_db_connect(mem_ctx, dce_call->conn->dce_ctx->lp_ctx));
 
                name = r->in.name.string;
                if (strlen(name) < 1) {
index 96dab0acd525438c5d0d2c5057a56ce242147571..184b1162c121d25046950f5757c942d5aabc977a 100644 (file)
@@ -237,7 +237,6 @@ static void winbind_task_init(struct task_server *task)
        switch (lpcfg_server_role(service->task->lp_ctx)) {
        case ROLE_STANDALONE:
                primary_sid = secrets_get_domain_sid(service,
-                                                    service->task->event_ctx,
                                                     service->task->lp_ctx,
                                                     lpcfg_netbios_name(service->task->lp_ctx),
                                                     &service->sec_channel_type,
@@ -253,7 +252,6 @@ static void winbind_task_init(struct task_server *task)
                break;
        case ROLE_DOMAIN_MEMBER:
                primary_sid = secrets_get_domain_sid(service,
-                                                    service->task->event_ctx,
                                                     service->task->lp_ctx,
                                                     lpcfg_workgroup(service->task->lp_ctx),
                                                     &service->sec_channel_type,
@@ -268,7 +266,6 @@ static void winbind_task_init(struct task_server *task)
                break;
        case ROLE_DOMAIN_CONTROLLER:
                primary_sid = secrets_get_domain_sid(service,
-                                                    service->task->event_ctx,
                                                     service->task->lp_ctx,
                                                     lpcfg_workgroup(service->task->lp_ctx),
                                                     &service->sec_channel_type,