Line data Source code
1 : /*
2 : ldb database library
3 :
4 : Copyright (C) Simo Sorce 2004
5 :
6 : ** NOTE! The following LGPL license applies to the ldb
7 : ** library. This does NOT imply that all of Samba is released
8 : ** under the LGPL
9 :
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.
14 :
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.
19 :
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/>.
22 : */
23 :
24 : /*
25 : * Name: ldb
26 : *
27 : * Component: ldb skel module
28 : *
29 : * Description: example module
30 : *
31 : * Author: Simo Sorce
32 : */
33 :
34 : #include "replace.h"
35 : #include "system/filesys.h"
36 : #include "system/time.h"
37 : #include "ldb_module.h"
38 :
39 : struct private_data {
40 :
41 : char *some_private_data;
42 : };
43 :
44 : /* search */
45 0 : static int skel_search(struct ldb_module *module, struct ldb_request *req)
46 : {
47 0 : return ldb_next_request(module, req);
48 : }
49 :
50 : /* add */
51 0 : static int skel_add(struct ldb_module *module, struct ldb_request *req){
52 0 : return ldb_next_request(module, req);
53 : }
54 :
55 : /* modify */
56 0 : static int skel_modify(struct ldb_module *module, struct ldb_request *req)
57 : {
58 0 : return ldb_next_request(module, req);
59 : }
60 :
61 : /* delete */
62 0 : static int skel_delete(struct ldb_module *module, struct ldb_request *req)
63 : {
64 0 : return ldb_next_request(module, req);
65 : }
66 :
67 : /* rename */
68 0 : static int skel_rename(struct ldb_module *module, struct ldb_request *req)
69 : {
70 0 : return ldb_next_request(module, req);
71 : }
72 :
73 : /* start a transaction */
74 0 : static int skel_start_trans(struct ldb_module *module)
75 : {
76 0 : return ldb_next_start_trans(module);
77 : }
78 :
79 : /* end a transaction */
80 0 : static int skel_end_trans(struct ldb_module *module)
81 : {
82 0 : return ldb_next_end_trans(module);
83 : }
84 :
85 : /* delete a transaction */
86 0 : static int skel_del_trans(struct ldb_module *module)
87 : {
88 0 : return ldb_next_del_trans(module);
89 : }
90 :
91 0 : static int skel_destructor(struct ldb_module *ctx)
92 : {
93 : struct private_data *data;
94 :
95 0 : data = talloc_get_type(ldb_module_get_private(ctx), struct private_data);
96 :
97 : /* put your clean-up functions here */
98 0 : if (data->some_private_data) talloc_free(data->some_private_data);
99 :
100 0 : return 0;
101 : }
102 :
103 0 : static int skel_request(struct ldb_module *module, struct ldb_request *req)
104 : {
105 0 : return ldb_next_request(module, req);
106 : }
107 :
108 0 : static int skel_init(struct ldb_module *module)
109 : {
110 : struct ldb_context *ldb;
111 : struct private_data *data;
112 :
113 0 : ldb = ldb_module_get_ctx(module);
114 :
115 0 : data = talloc(module, struct private_data);
116 0 : if (data == NULL) {
117 0 : ldb_oom(ldb);
118 0 : return LDB_ERR_OPERATIONS_ERROR;
119 : }
120 :
121 0 : data->some_private_data = NULL;
122 0 : ldb_module_set_private(module, data);
123 :
124 0 : talloc_set_destructor (module, skel_destructor);
125 :
126 0 : return ldb_next_init(module);
127 : }
128 :
129 : static const struct ldb_module_ops ldb_skel_module_ops = {
130 : .name = "skel",
131 : .init_context = skel_init,
132 : .search = skel_search,
133 : .add = skel_add,
134 : .modify = skel_modify,
135 : .del = skel_delete,
136 : .rename = skel_rename,
137 : .request = skel_request,
138 : .start_transaction = skel_start_trans,
139 : .end_transaction = skel_end_trans,
140 : .del_transaction = skel_del_trans,
141 : };
142 :
143 4501 : int ldb_skel_init(const char *version)
144 : {
145 4501 : LDB_MODULE_CHECK_VERSION(version);
146 4501 : return ldb_register_module(&ldb_skel_module_ops);
147 : }
|