Samba4/LDB/Module

From SambaWiki

Structures

ldb_module_ops

struct ldb_module_ops {
    const char *name;
    int (*init_context) (struct ldb_module *);
    int (*search)(struct ldb_module *, struct ldb_request *); /* search */
    int (*add)(struct ldb_module *, struct ldb_request *); /* add */
    int (*modify)(struct ldb_module *, struct ldb_request *); /* modify */
    int (*del)(struct ldb_module *, struct ldb_request *); /* delete */
    int (*rename)(struct ldb_module *, struct ldb_request *); /* rename */
    int (*request)(struct ldb_module *, struct ldb_request *); /* match any other operation */
    int (*extended)(struct ldb_module *, struct ldb_request *); /* extended operations */
    int (*start_transaction)(struct ldb_module *);
    int (*prepare_commit)(struct ldb_module *);
    int (*end_transaction)(struct ldb_module *);
    int (*del_transaction)(struct ldb_module *);
    int (*sequence_number)(struct ldb_module *, struct ldb_request *);
    void *private_data;
};

ldb_module

struct ldb_module {
    struct ldb_module *prev, *next;
    struct ldb_context *ldb;
    void *private_data;
    const struct ldb_module_ops *ops;
};

Operations

ldb_module_new()

struct ldb_module *ldb_module_new(TALLOC_CTX *memctx,
    struct ldb_context *ldb,
    const char *module_name,
    const struct ldb_module_ops *ops);

ldb_module_get_name()

const char * ldb_module_get_name(struct ldb_module *module);

ldb_module_get_ctx()

struct ldb_context *ldb_module_get_ctx(struct ldb_module *module);

ldb_module_get_private()

void *ldb_module_get_private(struct ldb_module *module);

ldb_module_set_private()

void ldb_module_set_private(struct ldb_module *module, void *private_data);

ldb_next_request()

int ldb_next_request(struct ldb_module *module, struct ldb_request *request);

ldb_next_start_trans()

int ldb_next_start_trans(struct ldb_module *module);

ldb_next_end_trans()

int ldb_next_end_trans(struct ldb_module *module);

ldb_next_del_trans()

int ldb_next_del_trans(struct ldb_module *module);

ldb_next_prepare_commit()

int ldb_next_prepare_commit(struct ldb_module *module);

ldb_next_init()

int ldb_next_init(struct ldb_module *module);

ldb_default_modules_dir()

const char *ldb_default_modules_dir(void);

ldb_register_module()

int ldb_register_module(const struct ldb_module_ops *);

ldb_module_send_entry()

int ldb_module_send_entry(struct ldb_request *req,
   struct ldb_message *msg,
   struct ldb_control **ctrls);

ldb_module_send_referral()

int ldb_module_send_referral(struct ldb_request *req, char *ref);

ldb_module_done()

int ldb_module_done(struct ldb_request *req,
    struct ldb_control **ctrls,
    struct ldb_extended *response,
    int error);

ldb_mod_register_control()

int ldb_mod_register_control(struct ldb_module *module, const char *oid);