2
Unix SMB/CIFS implementation.
4
interface functions for the sam database
6
Copyright (C) Andrew Tridgell 2004
8
This program is free software; you can redistribute it and/or modify
9
it under the terms of the GNU General Public License as published by
10
the Free Software Foundation; either version 3 of the License, or
11
(at your option) any later version.
13
This program is distributed in the hope that it will be useful,
14
but WITHOUT ANY WARRANTY; without even the implied warranty of
15
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16
GNU General Public License for more details.
18
You should have received a copy of the GNU General Public License
19
along with this program. If not, see <http://www.gnu.org/licenses/>.
25
struct auth_session_info;
26
struct dsdb_control_current_partition;
27
struct dsdb_extended_replicated_object;
28
struct dsdb_extended_replicated_objects;
29
struct loadparm_context;
30
struct tevent_context;
32
#include "librpc/gen_ndr/security.h"
33
#include "lib/ldb/include/ldb.h"
34
#include "lib/ldb-samba/ldif_handlers.h"
35
#include "librpc/gen_ndr/samr.h"
36
#include "librpc/gen_ndr/drsuapi.h"
37
#include "librpc/gen_ndr/drsblobs.h"
38
#include "dsdb/schema/schema.h"
39
#include "dsdb/samdb/samdb_proto.h"
40
#include "dsdb/common/proto.h"
41
#include "dsdb/common/flags.h"
43
#define DSDB_CONTROL_CURRENT_PARTITION_OID "1.3.6.1.4.1.7165.4.3.2"
44
struct dsdb_control_current_partition {
46
* this is the version of the dsdb_control_current_partition
47
* version 0: initial implementation
49
#define DSDB_CONTROL_CURRENT_PARTITION_VERSION 0
56
struct ldb_module *module;
59
#define DSDB_CONTROL_REPLICATED_UPDATE_OID "1.3.6.1.4.1.7165.4.3.3"
60
/* DSDB_CONTROL_REPLICATED_UPDATE_OID has NULL data */
62
#define DSDB_CONTROL_DN_STORAGE_FORMAT_OID "1.3.6.1.4.1.7165.4.3.4"
63
/* DSDB_CONTROL_DN_STORAGE_FORMAT_OID has NULL data and behaves very
64
* much like LDB_CONTROL_EXTENDED_DN_OID when the DB stores an
65
* extended DN, and otherwise returns normal DNs */
67
#define DSDB_EXTENDED_REPLICATED_OBJECTS_OID "1.3.6.1.4.1.7165.4.4.1"
68
struct dsdb_extended_replicated_object {
69
struct ldb_message *msg;
70
struct ldb_val guid_value;
71
const char *when_changed;
72
struct replPropertyMetaDataBlob *meta_data;
75
struct dsdb_extended_replicated_objects {
77
* this is the version of the dsdb_extended_replicated_objects
78
* version 0: initial implementation
80
#define DSDB_EXTENDED_REPLICATED_OBJECTS_VERSION 0
83
struct ldb_dn *partition_dn;
85
const struct repsFromTo1 *source_dsa;
86
const struct drsuapi_DsReplicaCursor2CtrEx *uptodateness_vector;
89
struct dsdb_extended_replicated_object *objects;
92
struct dsdb_naming_fsmo {
94
struct ldb_dn *master_dn;
97
struct dsdb_pdc_fsmo {
99
struct ldb_dn *master_dn;
103
* the schema_dn is passed as struct ldb_dn in
104
* req->op.extended.data
106
#define DSDB_EXTENDED_SCHEMA_UPDATE_NOW_OID "1.3.6.1.4.1.7165.4.4.2"
108
#define DSDB_OPENLDAP_DEREFERENCE_CONTROL "1.3.6.1.4.1.4203.666.5.16"
110
struct dsdb_openldap_dereference {
111
const char *source_attribute;
112
const char **dereference_attribute;
115
struct dsdb_openldap_dereference_control {
116
struct dsdb_openldap_dereference **dereference;
119
struct dsdb_openldap_dereference_result {
120
const char *source_attribute;
121
const char *dereferenced_dn;
123
struct ldb_message_element *attributes;
126
struct dsdb_openldap_dereference_result_control {
127
struct dsdb_openldap_dereference_result **attributes;
130
#endif /* __SAMDB_H__ */