summaryrefslogtreecommitdiff
path: root/source4/dsdb/samdb/ldb_modules/update_keytab.c
diff options
context:
space:
mode:
Diffstat (limited to 'source4/dsdb/samdb/ldb_modules/update_keytab.c')
-rw-r--r--source4/dsdb/samdb/ldb_modules/update_keytab.c13
1 files changed, 9 insertions, 4 deletions
diff --git a/source4/dsdb/samdb/ldb_modules/update_keytab.c b/source4/dsdb/samdb/ldb_modules/update_keytab.c
index 6a9245f89e..81d672b5ec 100644
--- a/source4/dsdb/samdb/ldb_modules/update_keytab.c
+++ b/source4/dsdb/samdb/ldb_modules/update_keytab.c
@@ -34,6 +34,7 @@
#include "auth/credentials/credentials_krb5.h"
#include "system/kerberos.h"
#include "auth/kerberos/kerberos.h"
+#include "util.h"
struct dn_list {
struct ldb_message *msg;
@@ -78,7 +79,9 @@ static struct update_kt_ctx *update_kt_ctx_init(struct ldb_module *module,
* Just hope we are lucky and nothing breaks (using the tdb backend masks a lot
* of async issues). -SSS
*/
-static int add_modified(struct ldb_module *module, struct ldb_dn *dn, bool do_delete) {
+static int add_modified(struct ldb_module *module, struct ldb_dn *dn, bool do_delete,
+ struct ldb_request *parent)
+{
struct ldb_context *ldb = ldb_module_get_ctx(module);
struct update_kt_private *data = talloc_get_type(ldb_module_get_private(module), struct update_kt_private);
struct dn_list *item;
@@ -92,8 +95,10 @@ static int add_modified(struct ldb_module *module, struct ldb_dn *dn, bool do_de
return ldb_oom(ldb);
}
- ret = ldb_search(ldb, data, &res,
- dn, LDB_SCOPE_BASE, NULL, "%s", filter);
+ ret = dsdb_module_search(module, data, &res,
+ dn, LDB_SCOPE_BASE, NULL,
+ DSDB_FLAG_NEXT_MODULE, parent,
+ "%s", filter);
talloc_free(filter);
if (ret != LDB_SUCCESS) {
return ret;
@@ -214,7 +219,7 @@ static int ukt_search_modified_callback(struct ldb_request *req,
if (ac->found) {
/* do the dirty sync job here :/ */
- ret = add_modified(ac->module, ac->dn, ac->do_delete);
+ ret = add_modified(ac->module, ac->dn, ac->do_delete, ac->req);
}
if (ac->do_delete) {