4
Copyright (C) Simo Sorce 2004
6
** NOTE! The following LGPL license applies to the ldb
7
** library. This does NOT imply that all of Samba is released
10
This library is free software; you can redistribute it and/or
11
modify it under the terms of the GNU Lesser General Public
12
License as published by the Free Software Foundation; either
13
version 3 of the License, or (at your option) any later version.
15
This library is distributed in the hope that it will be useful,
16
but WITHOUT ANY WARRANTY; without even the implied warranty of
17
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
18
Lesser General Public License for more details.
20
You should have received a copy of the GNU Lesser General Public
21
License along with this library; if not, see <http://www.gnu.org/licenses/>.
27
* Component: ldb skel module
29
* Description: example module
34
#include "ldb_module.h"
38
char *some_private_data;
42
static int skel_search(struct ldb_module *module, struct ldb_request *req)
44
return ldb_next_request(module, req);
48
static int skel_add(struct ldb_module *module, struct ldb_request *req){
49
return ldb_next_request(module, req);
53
static int skel_modify(struct ldb_module *module, struct ldb_request *req)
55
return ldb_next_request(module, req);
59
static int skel_delete(struct ldb_module *module, struct ldb_request *req)
61
return ldb_next_request(module, req);
65
static int skel_rename(struct ldb_module *module, struct ldb_request *req)
67
return ldb_next_request(module, req);
70
/* start a transaction */
71
static int skel_start_trans(struct ldb_module *module)
73
return ldb_next_start_trans(module);
76
/* end a transaction */
77
static int skel_end_trans(struct ldb_module *module)
79
return ldb_next_end_trans(module);
82
/* delete a transaction */
83
static int skel_del_trans(struct ldb_module *module)
85
return ldb_next_del_trans(module);
88
static int skel_destructor(struct ldb_module *ctx)
90
struct private_data *data;
92
data = talloc_get_type(ldb_module_get_private(ctx), struct private_data);
94
/* put your clean-up functions here */
95
if (data->some_private_data) talloc_free(data->some_private_data);
100
static int skel_request(struct ldb_module *module, struct ldb_request *req)
102
return ldb_next_request(module, req);
105
static int skel_init(struct ldb_module *module)
107
struct ldb_context *ldb;
108
struct private_data *data;
110
ldb = ldb_module_get_ctx(module);
112
data = talloc(module, struct private_data);
115
return LDB_ERR_OPERATIONS_ERROR;
118
data->some_private_data = NULL;
119
ldb_module_set_private(module, data);
121
talloc_set_destructor (module, skel_destructor);
123
return ldb_next_init(module);
126
const struct ldb_module_ops ldb_skel_module_ops = {
128
.init_context = skel_init,
129
.search = skel_search,
131
.modify = skel_modify,
133
.rename = skel_rename,
134
.request = skel_request,
135
.start_transaction = skel_start_trans,
136
.end_transaction = skel_end_trans,
137
.del_transaction = skel_del_trans,