s4-dsdb: added DSDB_FLAG_TOP_MODULE
authorAndrew Tridgell <tridge@samba.org>
Thu, 7 Jan 2010 07:15:34 +0000 (18:15 +1100)
committerAndrew Tridgell <tridge@samba.org>
Fri, 8 Jan 2010 02:03:05 +0000 (13:03 +1100)
This is used when you want the dsdb_module_*() functions to go to the
top of the stack.

source4/dsdb/samdb/ldb_modules/util.c
source4/dsdb/samdb/ldb_modules/util.h

index 12972eb1855f0227f5d3eab408954f32b0b33044..b4f81978d3a9100c525989cefe66354494e7fe9f 100644 (file)
@@ -214,6 +214,8 @@ int dsdb_module_search(struct ldb_module *module,
        if (dsdb_flags & DSDB_FLAG_OWN_MODULE) {
                const struct ldb_module_ops *ops = ldb_module_get_ops(module);
                ret = ops->search(module, req);
+       } else if (dsdb_flags & DSDB_FLAG_TOP_MODULE) {
+               ret = ldb_request(ldb_module_get_ctx(module), req);
        } else {
                ret = ldb_next_request(module, req);
        }
@@ -332,6 +334,8 @@ int dsdb_module_modify(struct ldb_module *module,
        if (dsdb_flags & DSDB_FLAG_OWN_MODULE) {
                const struct ldb_module_ops *ops = ldb_module_get_ops(module);
                ret = ops->modify(module, mod_req);
+       } else if (dsdb_flags & DSDB_FLAG_TOP_MODULE) {
+               ret = ldb_request(ldb_module_get_ctx(module), mod_req);
        } else {
                ret = ldb_next_request(module, mod_req);
        }
@@ -380,6 +384,8 @@ int dsdb_module_rename(struct ldb_module *module,
        if (dsdb_flags & DSDB_FLAG_OWN_MODULE) {
                const struct ldb_module_ops *ops = ldb_module_get_ops(module);
                ret = ops->rename(module, req);
+       } else if (dsdb_flags & DSDB_FLAG_TOP_MODULE) {
+               ret = ldb_request(ldb_module_get_ctx(module), req);
        } else {
                ret = ldb_next_request(module, req);
        }
@@ -425,6 +431,8 @@ int dsdb_module_add(struct ldb_module *module,
        if (dsdb_flags & DSDB_FLAG_OWN_MODULE) {
                const struct ldb_module_ops *ops = ldb_module_get_ops(module);
                ret = ops->add(module, req);
+       } else if (dsdb_flags & DSDB_FLAG_TOP_MODULE) {
+               ret = ldb_request(ldb_module_get_ctx(module), req);
        } else {
                ret = ldb_next_request(module, req);
        }
index add39e110aafe3934709f4fd93afefd7f6eb4076..608d2c26cb03f2f95a9789fc341d931866673e5e 100644 (file)
@@ -32,3 +32,4 @@ struct dsdb_attribute;
 #define DSDB_SEARCH_SHOW_EXTENDED_DN          0x0010
 #define DSDB_MODIFY_RELAX                    0x0020
 #define DSDB_FLAG_OWN_MODULE                 0x0040
+#define DSDB_FLAG_TOP_MODULE                 0x0080