~zulcss/samba/server-dailies-3.4

« back to all changes in this revision

Viewing changes to source4/dsdb/samdb/samdb.h

  • Committer: Chuck Short
  • Date: 2010-09-28 20:38:39 UTC
  • Revision ID: zulcss@ubuntu.com-20100928203839-pgjulytsi9ue63x1
Initial version

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
/* 
 
2
   Unix SMB/CIFS implementation.
 
3
 
 
4
   interface functions for the sam database
 
5
 
 
6
   Copyright (C) Andrew Tridgell 2004
 
7
   
 
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.
 
12
   
 
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.
 
17
   
 
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/>.
 
20
*/
 
21
 
 
22
#ifndef __SAMDB_H__
 
23
#define __SAMDB_H__
 
24
 
 
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;
 
31
 
 
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"
 
42
 
 
43
#define DSDB_CONTROL_CURRENT_PARTITION_OID "1.3.6.1.4.1.7165.4.3.2"
 
44
struct dsdb_control_current_partition {
 
45
        /* 
 
46
         * this is the version of the dsdb_control_current_partition
 
47
         * version 0: initial implementation
 
48
         */
 
49
#define DSDB_CONTROL_CURRENT_PARTITION_VERSION 0
 
50
        uint32_t version;
 
51
 
 
52
        struct ldb_dn *dn;
 
53
 
 
54
        const char *backend;
 
55
 
 
56
        struct ldb_module *module;
 
57
};
 
58
 
 
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 */
 
61
 
 
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 */
 
66
 
 
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;
 
73
};
 
74
 
 
75
struct dsdb_extended_replicated_objects {
 
76
        /* 
 
77
         * this is the version of the dsdb_extended_replicated_objects
 
78
         * version 0: initial implementation
 
79
         */
 
80
#define DSDB_EXTENDED_REPLICATED_OBJECTS_VERSION 0
 
81
        uint32_t version;
 
82
 
 
83
        struct ldb_dn *partition_dn;
 
84
 
 
85
        const struct repsFromTo1 *source_dsa;
 
86
        const struct drsuapi_DsReplicaCursor2CtrEx *uptodateness_vector;
 
87
 
 
88
        uint32_t num_objects;
 
89
        struct dsdb_extended_replicated_object *objects;
 
90
};
 
91
 
 
92
struct dsdb_naming_fsmo {
 
93
        bool we_are_master;
 
94
        struct ldb_dn *master_dn;
 
95
};
 
96
 
 
97
struct dsdb_pdc_fsmo {
 
98
        bool we_are_master;
 
99
        struct ldb_dn *master_dn;
 
100
};
 
101
 
 
102
/*
 
103
 * the schema_dn is passed as struct ldb_dn in
 
104
 * req->op.extended.data
 
105
 */
 
106
#define DSDB_EXTENDED_SCHEMA_UPDATE_NOW_OID "1.3.6.1.4.1.7165.4.4.2"
 
107
 
 
108
#define DSDB_OPENLDAP_DEREFERENCE_CONTROL "1.3.6.1.4.1.4203.666.5.16"
 
109
 
 
110
struct dsdb_openldap_dereference {
 
111
        const char *source_attribute;
 
112
        const char **dereference_attribute;
 
113
};
 
114
 
 
115
struct dsdb_openldap_dereference_control {
 
116
        struct dsdb_openldap_dereference **dereference;
 
117
};
 
118
 
 
119
struct dsdb_openldap_dereference_result {
 
120
        const char *source_attribute;
 
121
        const char *dereferenced_dn;
 
122
        int num_attributes;
 
123
        struct ldb_message_element *attributes;
 
124
};
 
125
 
 
126
struct dsdb_openldap_dereference_result_control {
 
127
        struct dsdb_openldap_dereference_result **attributes;
 
128
};
 
129
 
 
130
#endif /* __SAMDB_H__ */