s4-dsdb: Add context structure for dsdb_syntax conversion functions
authorKamen Mazdrashki <kamenim@samba.org>
Tue, 17 Aug 2010 00:21:46 +0000 (03:21 +0300)
committerKamen Mazdrashki <kamenim@samba.org>
Thu, 19 Aug 2010 00:34:01 +0000 (03:34 +0300)
This structure is intended to hold context-dependent data.

Syntax-conversion and object-conversion functions need
that data to convert objects and attributes from drs-to-ldb
and ldb-to-drs correctly.

For instance: ATTID value depends on whether we are converting
object from partition different that Schema partition.

source4/dsdb/schema/schema.h
source4/dsdb/schema/schema_syntax.c

index 34423be8090155a33a65d168c7d7ec134f2c0781..2168202d1ffbde01a56a2d0c04c745939459d231 100644 (file)
@@ -28,6 +28,12 @@ struct dsdb_attribute;
 struct dsdb_class;
 struct dsdb_schema;
 
+struct dsdb_syntax_ctx {
+       struct ldb_context *ldb;
+       const struct dsdb_schema *schema;
+};
+
+
 struct dsdb_syntax {
        const char *name;
        const char *ldap_oid;
index 193d62dfcca3bcf11e7275c8cfb142abb80e0071..a6593b4f785d7ea9b8bd11f8d59e7348900c4acd 100644 (file)
 #include "../lib/util/charset/charset.h"
 #include "librpc/ndr/libndr.h"
 
+/**
+ * Initialize dsdb_syntax_ctx with default values
+ * for common cases.
+ */
+void dsdb_syntax_ctx_init(struct dsdb_syntax_ctx *ctx,
+                         struct ldb_context *ldb,
+                         const struct dsdb_schema *schema)
+{
+       ctx->ldb        = ldb;
+       ctx->schema     = schema;
+}
+
+
 static WERROR dsdb_syntax_FOOBAR_drsuapi_to_ldb(struct ldb_context *ldb, 
                                                const struct dsdb_schema *schema,
                                                const struct dsdb_attribute *attr,