From f4893e7d33b7c9aaafba5ce8657972d3eb600257 Mon Sep 17 00:00:00 2001 From: Andrew Tridgell Date: Fri, 24 Sep 2010 12:07:16 -0700 Subject: ldb: added request location tracking this is used to help debug async ldb requests. The ldb request handle now contains a location string and the parent request pointer. This allows us to print a backtrace of ldb requests in the dsdb modules. --- source4/lib/ldb/include/ldb.h | 7 +++++++ source4/lib/ldb/include/ldb_private.h | 4 ++++ 2 files changed, 11 insertions(+) (limited to 'source4/lib/ldb/include') diff --git a/source4/lib/ldb/include/ldb.h b/source4/lib/ldb/include/ldb.h index 55a6fd1c37..4bc793b9cc 100644 --- a/source4/lib/ldb/include/ldb.h +++ b/source4/lib/ldb/include/ldb.h @@ -2132,4 +2132,11 @@ struct ldb_dn *ldb_dn_binary_from_ldb_val(TALLOC_CTX *mem_ctx, int ldb_dn_get_binary(struct ldb_dn *dn, struct ldb_val *val); int ldb_dn_set_binary(struct ldb_dn *dn, struct ldb_val *val); +/* debugging functions for ldb requests */ +void ldb_req_set_location(struct ldb_request *req, const char *location); +const char *ldb_req_location(struct ldb_request *req); + +/* set the location marker on a request handle - used for debugging */ +#define LDB_REQ_SET_LOCATION(req) ldb_req_set_location(req, __location__) + #endif diff --git a/source4/lib/ldb/include/ldb_private.h b/source4/lib/ldb/include/ldb_private.h index 6bbcfa280d..c8efb6bbc5 100644 --- a/source4/lib/ldb/include/ldb_private.h +++ b/source4/lib/ldb/include/ldb_private.h @@ -55,6 +55,10 @@ struct ldb_handle { struct ldb_context *ldb; unsigned flags; unsigned nesting; + + /* used for debugging */ + struct ldb_request *parent; + const char *location; }; /* basic module structure */ -- cgit