req->controls,
ac, acl_search_callback,
req);
+ LDB_REQ_SET_LOCATION(down_req);
if (ret != LDB_SUCCESS) {
return ret;
}
#include "includes.h"
#include "ldb_module.h"
#include "dsdb/samdb/samdb.h"
+#include "dsdb/samdb/ldb_modules/util.h"
/**
* Make a and 'and' or 'or' tree from the two supplied elements
req->controls,
ac, anr_search_callback,
req);
+ LDB_REQ_SET_LOCATION(down_req);
if (ret != LDB_SUCCESS) {
return ldb_operr(ldb);
}
req->controls,
ac, descriptor_search_callback,
ac->req);
+ LDB_REQ_SET_LOCATION(down_req);
if (ret != LDB_SUCCESS) {
return ret;
}
ac->req->controls,
ac, extended_final_callback,
ac->req);
+ LDB_REQ_SET_LOCATION(down_req);
break;
case LDB_ADD:
{
ac->req->controls,
ac, extended_final_callback,
ac->req);
+ LDB_REQ_SET_LOCATION(down_req);
break;
}
case LDB_MODIFY:
req->controls,
ac, callback,
req);
+ LDB_REQ_SET_LOCATION(down_req);
if (ret != LDB_SUCCESS) {
return ret;
}
req->controls,
req, dsdb_next_callback,
req);
+ LDB_REQ_SET_LOCATION(new_req);
break;
case LDB_ADD:
ret = ldb_build_add_req(&new_req, ldb_module_get_ctx(module), req,
req->controls,
req, dsdb_next_callback,
req);
+ LDB_REQ_SET_LOCATION(new_req);
break;
case LDB_MODIFY:
ret = ldb_build_mod_req(&new_req, ldb_module_get_ctx(module), req,
req->controls,
req, dsdb_next_callback,
req);
+ LDB_REQ_SET_LOCATION(new_req);
break;
case LDB_DELETE:
ret = ldb_build_del_req(&new_req, ldb_module_get_ctx(module), req,
req->controls,
req, dsdb_next_callback,
req);
+ LDB_REQ_SET_LOCATION(new_req);
break;
case LDB_RENAME:
ret = ldb_build_rename_req(&new_req, ldb_module_get_ctx(module), req,
req->controls,
req, dsdb_next_callback,
req);
+ LDB_REQ_SET_LOCATION(new_req);
break;
case LDB_EXTENDED:
ret = ldb_build_extended_req(&new_req, ldb_module_get_ctx(module),
req->controls,
req, dsdb_next_callback,
req);
+ LDB_REQ_SET_LOCATION(new_req);
break;
default:
ldb_set_errstring(ldb_module_get_ctx(module),
#include "dsdb/samdb/samdb.h"
#include "librpc/ndr/libndr.h"
#include "dsdb/samdb/ldb_modules/password_modules.h"
+#include "dsdb/samdb/ldb_modules/util.h"
#define PASSWORD_GUID_ATTR "masterGUID"
req->controls,
ac, lpdb_remote_search_callback,
req);
+ LDB_REQ_SET_LOCATION(remote_req);
if (ret != LDB_SUCCESS) {
return ret;
}
#include "dsdb/samdb/samdb.h"
#include "util.h"
#include "libcli/security/security.h"
+#include "lib/ldb/include/ldb_private.h"
/*
search for attrs on one DN, in the modules below
talloc_free(tmp_ctx);
return result;
}
+
+/*
+ show the chain of requests, useful for debugging async requests
+ */
+void dsdb_req_chain_debug(struct ldb_request *req, int level)
+{
+ char *ret;
+ int i=0;
+
+ while (req && req->handle) {
+ DEBUG(level,("req[%u] %p : %s\n", i++, req, ldb_req_location(req)));
+ req = req->handle->parent;
+ }
+}