r20188: move back to an default attribute handler and not use the '*' attribute
authorStefan Metzmacher <metze@samba.org>
Fri, 15 Dec 2006 18:56:56 +0000 (18:56 +0000)
committerGerald (Jerry) Carter <jerry@samba.org>
Wed, 10 Oct 2007 19:29:19 +0000 (14:29 -0500)
to not conflict with the one that maybe added via the @ATTRIBUTES object

this is just to make the test-tdb-feature.sh torture test happy

There's still a bug when a attribute is registered multiple time
without removing old ldb_schema_attribute instances. But this bug
was there before my changes too and was just triggered by my changes

metze
(This used to be commit 70c4a367433f8c54bdd940eb0a6a24ab976a4063)

source4/lib/ldb/common/ldb_attributes.c

index f884c1d5c6037beadc9b864bad7ccbfa652e261d..0cd92576dc0ed296ca1db223c04c62a207218c03 100644 (file)
@@ -86,6 +86,20 @@ int ldb_schema_attribute_add_with_syntax(struct ldb_context *ldb,
        return 0;
 }
 
+static const struct ldb_schema_syntax ldb_syntax_default = {
+       .name            = LDB_SYNTAX_OCTET_STRING,
+       .ldif_read_fn    = ldb_handler_copy,
+       .ldif_write_fn   = ldb_handler_copy,
+       .canonicalise_fn = ldb_handler_copy,
+       .comparison_fn   = ldb_comparison_binary
+};
+
+static const struct ldb_schema_attribute ldb_attribute_default = {
+       .name   = NULL,
+       .flags  = 0,
+       .syntax = &ldb_syntax_default
+};
+
 /*
   return the attribute handlers for a given attribute
 */
@@ -93,7 +107,7 @@ const struct ldb_schema_attribute *ldb_schema_attribute_by_name(struct ldb_conte
                                                                const char *name)
 {
        int i, e, b = 0, r;
-       const struct ldb_schema_attribute *def = NULL;
+       const struct ldb_schema_attribute *def = &ldb_attribute_default;
 
        /* as handlers are sorted, '*' must be the first if present */
        if (strcmp(ldb->schema.attributes[0].name, "*") == 0) {
@@ -171,7 +185,6 @@ int ldb_setup_wellknown_attributes(struct ldb_context *ldb)
                const char *attr;
                const char *syntax;
        } wellknown[] = {
-               { "*", LDB_SYNTAX_OCTET_STRING },
                { "dn", LDB_SYNTAX_DN },
                { "distinguishedName", LDB_SYNTAX_DN },
                { "cn", LDB_SYNTAX_DIRECTORY_STRING },