diff options
Diffstat (limited to 'src/providers')
-rw-r--r-- | src/providers/ipa/ipa_access.c | 30 | ||||
-rw-r--r-- | src/providers/ldap/sdap_async_accounts.c | 48 |
2 files changed, 16 insertions, 62 deletions
diff --git a/src/providers/ipa/ipa_access.c b/src/providers/ipa/ipa_access.c index 55a7133c..5cf9bf49 100644 --- a/src/providers/ipa/ipa_access.c +++ b/src/providers/ipa/ipa_access.c @@ -823,7 +823,6 @@ struct hbac_get_rules_state { static void hbac_get_rules_connect_done(struct tevent_req *subreq); static void hbac_rule_get_done(struct tevent_req *subreq); static void hbac_rule_sysdb_transaction_started(struct tevent_req *subreq); -static void hbac_rule_sysdb_delete_done(struct tevent_req *subreq); static void hbac_rule_store_prepare(struct tevent_req *req); static void hbac_rule_store_done(struct tevent_req *subreq); @@ -1112,14 +1111,14 @@ static void hbac_rule_sysdb_transaction_started(struct tevent_req *subreq) ret = ENOMEM; goto fail; } - subreq = sysdb_delete_recursive_send(state, state->ev, state->handle, - hbac_base_dn, true); - if (subreq == NULL) { + ret = sysdb_delete_recursive(state, state->sysdb, hbac_base_dn, true); + if (ret) { DEBUG(1, ("sysdb_delete_recursive_send failed.\n")); - ret = ENOMEM; goto fail; } - tevent_req_set_callback(subreq, hbac_rule_sysdb_delete_done, req); + + state->current_item = 0; + hbac_rule_store_prepare(req); return; fail: @@ -1127,25 +1126,6 @@ fail: return; } -static void hbac_rule_sysdb_delete_done(struct tevent_req *subreq) -{ - struct tevent_req *req = tevent_req_callback_data(subreq, - struct tevent_req); - struct hbac_get_rules_state *state = tevent_req_data(req, - struct hbac_get_rules_state); - int ret; - - ret = sysdb_delete_recursive_recv(subreq); - talloc_zfree(subreq); - if (ret != EOK) { - tevent_req_error(req, ret); - return; - } - - state->current_item = 0; - hbac_rule_store_prepare(req); -} - static void hbac_rule_store_prepare(struct tevent_req *req) { struct hbac_get_rules_state *state = tevent_req_data(req, diff --git a/src/providers/ldap/sdap_async_accounts.c b/src/providers/ldap/sdap_async_accounts.c index abebe288..56bd85fb 100644 --- a/src/providers/ldap/sdap_async_accounts.c +++ b/src/providers/ldap/sdap_async_accounts.c @@ -624,18 +624,6 @@ int sdap_get_users_recv(struct tevent_req *req, /* ==Group-Parsing Routines=============================================== */ -struct sdap_orig_entry_state { - int done; -}; - -static void sdap_find_entry_by_origDN_done(struct tevent_req *req) -{ - struct sdap_orig_entry_state *state = tevent_req_callback_data(req, - struct sdap_orig_entry_state); - state->done = 1; -} - -/* WARNING: this is a sync routine for now */ static int sdap_find_entry_by_origDN(TALLOC_CTX *memctx, struct tevent_context *ev, struct sysdb_handle *handle, @@ -643,49 +631,35 @@ static int sdap_find_entry_by_origDN(TALLOC_CTX *memctx, const char *orig_dn, char **localdn) { - struct tevent_req *req; - struct sdap_orig_entry_state *state; - static const char *attrs[] = { NULL }; + TALLOC_CTX *tmpctx; + const char *no_attrs[] = { NULL }; struct ldb_dn *base_dn; char *filter; struct ldb_message **msgs; size_t num_msgs; int ret; - state = talloc_zero(memctx, struct sdap_orig_entry_state); - if (!state) { - ret = ENOMEM; - goto done; + tmpctx = talloc_new(NULL); + if (!tmpctx) { + return ENOMEM; } - filter = talloc_asprintf(state, "%s=%s", SYSDB_ORIG_DN, orig_dn); + filter = talloc_asprintf(tmpctx, "%s=%s", SYSDB_ORIG_DN, orig_dn); if (!filter) { ret = ENOMEM; goto done; } base_dn = sysdb_domain_dn(sysdb_handle_get_ctx(handle), - state, domain->name); + tmpctx, domain->name); if (!base_dn) { ret = ENOMEM; goto done; } - req = sysdb_search_entry_send(state, ev, handle, base_dn, - LDB_SCOPE_SUBTREE, filter, attrs); - if (!req) { - ret = ENOMEM; - goto done; - } - tevent_req_set_callback(req, sdap_find_entry_by_origDN_done, state); - - /* WARNING: SYNC LOOP HERE */ - tevent_loop_allow_nesting(ev); - while (state->done == 0) { - tevent_loop_once(ev); - } - - ret = sysdb_search_entry_recv(req, state, &num_msgs, &msgs); + ret = sysdb_search_entry(tmpctx, sysdb_handle_get_ctx(handle), + base_dn, LDB_SCOPE_SUBTREE, filter, no_attrs, + &num_msgs, &msgs); if (ret) { goto done; } @@ -703,7 +677,7 @@ static int sdap_find_entry_by_origDN(TALLOC_CTX *memctx, ret = EOK; done: - talloc_zfree(state); + talloc_zfree(tmpctx); return ret; } |