root/source4/dsdb/samdb/samdb.h

/* [<][>][^][v][top][bottom][index][help] */

INCLUDED FROM


   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__ */

/* [<][>][^][v][top][bottom][index][help] */