s4:dsdb/samdb/ldb_modules/schema.c - move "get_last_structural_class()" into "util.c"
authorMatthias Dieter Wallnöfer <mdw@samba.org>
Wed, 4 Apr 2012 20:24:16 +0000 (22:24 +0200)
committerAndrew Bartlett <abartlet@samba.org>
Wed, 11 Apr 2012 04:31:51 +0000 (06:31 +0200)
And remove this helper module - it does not have much sense keeping it.

Autobuild-User: Andrew Bartlett <abartlet@samba.org>
Autobuild-Date: Wed Apr 11 06:31:51 CEST 2012 on sn-devel-104

source4/dsdb/samdb/ldb_modules/acl.c
source4/dsdb/samdb/ldb_modules/descriptor.c
source4/dsdb/samdb/ldb_modules/objectclass.c
source4/dsdb/samdb/ldb_modules/schema.c [deleted file]
source4/dsdb/samdb/ldb_modules/util.c
source4/dsdb/samdb/ldb_modules/wscript_build

index bce878501a03c07b5c135d9dafca1e7b0973a9e5..843d17e5d1410b7a2b14109bcefd224c4ca9bdb9 100644 (file)
@@ -39,7 +39,6 @@
 #include "librpc/gen_ndr/ndr_security.h"
 #include "param/param.h"
 #include "dsdb/samdb/ldb_modules/util.h"
-#include "dsdb/samdb/ldb_modules/schema.h"
 #include "lib/util/tsort.h"
 #include "system/kerberos.h"
 #include "auth/kerberos/kerberos.h"
@@ -919,7 +918,7 @@ static const struct GUID *get_oc_guid_from_message(const struct dsdb_schema *sch
                return NULL;
        }
 
-       object_class = get_last_structural_class(schema, oc_el);
+       object_class = dsdb_get_last_structural_class(schema, oc_el);
        if (object_class == NULL) {
                return NULL;
        }
index 0a4b1da39f9626498c9df14a67ada2f9e6fd2db6..18245a0b79efb14ffb28c7671576e2073e8730e0 100644 (file)
@@ -39,7 +39,6 @@
 #include "librpc/ndr/libndr.h"
 #include "librpc/gen_ndr/ndr_security.h"
 #include "libcli/security/security.h"
-#include "dsdb/samdb/ldb_modules/schema.h"
 #include "auth/auth.h"
 #include "param/param.h"
 #include "dsdb/samdb/ldb_modules/util.h"
@@ -542,7 +541,8 @@ static int descriptor_add(struct ldb_module *module, struct ldb_request *req)
                return ldb_operr(ldb);
        }
 
-       objectclass = get_last_structural_class(schema, objectclass_element);
+       objectclass = dsdb_get_last_structural_class(schema,
+                                                    objectclass_element);
        if (objectclass == NULL) {
                return ldb_operr(ldb);
        }
@@ -660,7 +660,8 @@ static int descriptor_modify(struct ldb_module *module, struct ldb_request *req)
                return ldb_operr(ldb);
        }
 
-       objectclass = get_last_structural_class(schema, objectclass_element);
+       objectclass = dsdb_get_last_structural_class(schema,
+                                                    objectclass_element);
        if (objectclass == NULL) {
                return ldb_operr(ldb);
        }
index 033330c86c2859ff78789c2d6640ddd64b57a72c..d431367b5a0aafc81556b1e4c14debbabeff6313 100644 (file)
@@ -44,7 +44,6 @@
 #include "auth/auth.h"
 #include "param/param.h"
 #include "../libds/common/flags.h"
-#include "dsdb/samdb/ldb_modules/schema.h"
 #include "dsdb/samdb/ldb_modules/util.h"
 
 struct oc_context {
@@ -469,8 +468,8 @@ static int objectclass_do_add(struct oc_context *ac)
                 * Get the new top-most structural object class and check for
                 * unrelated structural classes
                 */
-               objectclass = get_last_structural_class(ac->schema,
-                                                       objectclass_element);
+               objectclass = dsdb_get_last_structural_class(ac->schema,
+                                                            objectclass_element);
                if (objectclass == NULL) {
                        ldb_asprintf_errstring(ldb,
                                               "Failed to find a structural class for %s",
@@ -954,7 +953,8 @@ static int objectclass_do_mod(struct oc_context *ac)
                 * Get the new top-most structural object class and check for
                 * unrelated structural classes
                 */
-               objectclass = get_last_structural_class(ac->schema, oc_el_entry);
+               objectclass = dsdb_get_last_structural_class(ac->schema,
+                                                            oc_el_entry);
                if (objectclass == NULL) {
                        ldb_set_errstring(ldb,
                                          "objectclass: cannot delete all structural objectclasses!");
@@ -1130,7 +1130,8 @@ static int objectclass_do_rename2(struct oc_context *ac)
                        /* existing entry without a valid object class? */
                        return ldb_operr(ldb);
                }
-               objectclass = get_last_structural_class(ac->schema, oc_el_entry);
+               objectclass = dsdb_get_last_structural_class(ac->schema,
+                                                            oc_el_entry);
                if (objectclass == NULL) {
                        /* existing entry without a valid object class? */
                        return ldb_operr(ldb);
diff --git a/source4/dsdb/samdb/ldb_modules/schema.c b/source4/dsdb/samdb/ldb_modules/schema.c
deleted file mode 100644 (file)
index 233816f..0000000
+++ /dev/null
@@ -1,62 +0,0 @@
-/* 
-   Unix SMB/CIFS implementation.
-   Samba utility functions
-
-   Copyright (C) Andrew Tridgell 2009
-   Copyright (C) Andrew Bartlett <abartlet@samba.org> 2009
-
-   This program is free software; you can redistribute it and/or modify
-   it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; either version 3 of the License, or
-   (at your option) any later version.
-
-   This program is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-   GNU General Public License for more details.
-
-   You should have received a copy of the GNU General Public License
-   along with this program.  If not, see <http://www.gnu.org/licenses/>.
-*/
-
-#include "includes.h"
-#include "ldb.h"
-#include "ldb_module.h"
-#include "librpc/ndr/libndr.h"
-#include "dsdb/samdb/ldb_modules/util.h"
-#include "dsdb/samdb/samdb.h"
-#include "dsdb/common/util.h"
-#include "libcli/security/security.h"
-#include "dsdb/samdb/ldb_modules/schema.h"
-
-/*
- * This function determines the (last) structural or 88 object class of a passed
- * "objectClass" attribute - per MS-ADTS 3.1.1.1.4 this is the last value.
- * Without schema this does not work and hence NULL is returned.
- */
-const struct dsdb_class *get_last_structural_class(const struct dsdb_schema *schema,
-                                                  const struct ldb_message_element *element)
-{
-       const struct dsdb_class *last_class;
-
-       if (schema == NULL) {
-               return NULL;
-       }
-
-       if (element->num_values == 0) {
-               return NULL;
-       }
-
-       last_class = dsdb_class_by_lDAPDisplayName_ldb_val(schema,
-                                                          &element->values[element->num_values-1]);
-       if (last_class == NULL) {
-               return NULL;
-       }
-       if (last_class->objectClassCategory > 1) {
-               return NULL;
-       }
-
-       return last_class;
-}
-
-
index 4e0001d17bc09e429e98fca5b00cd70037135352..0f1a61236f114fb118f11046834485b2dfc6dcef 100644 (file)
@@ -1362,3 +1362,33 @@ struct ldb_message_element *dsdb_get_single_valued_attr(const struct ldb_message
 
        return el;
 }
+
+/*
+ * This function determines the (last) structural or 88 object class of a passed
+ * "objectClass" attribute - per MS-ADTS 3.1.1.1.4 this is the last value.
+ * Without schema this does not work and hence NULL is returned.
+ */
+const struct dsdb_class *dsdb_get_last_structural_class(const struct dsdb_schema *schema,
+                                                       const struct ldb_message_element *element)
+{
+       const struct dsdb_class *last_class;
+
+       if (schema == NULL) {
+               return NULL;
+       }
+
+       if (element->num_values == 0) {
+               return NULL;
+       }
+
+       last_class = dsdb_class_by_lDAPDisplayName_ldb_val(schema,
+                                                          &element->values[element->num_values-1]);
+       if (last_class == NULL) {
+               return NULL;
+       }
+       if (last_class->objectClassCategory > 1) {
+               return NULL;
+       }
+
+       return last_class;
+}
index 348ed3cd3e5b736e8612ef78bc56d242b554783f..120e50270dbec061d897e16ea9977061de2469a6 100644 (file)
@@ -2,7 +2,7 @@
 
 bld.SAMBA_LIBRARY('dsdb-module',
        source=[],
-       deps='DSDB_MODULE_HELPERS DSDB_MODULE_HELPER_SCHEMA DSDB_MODULE_HELPER_RIDALLOC',
+       deps='DSDB_MODULE_HELPERS DSDB_MODULE_HELPER_RIDALLOC',
        private_library=True,
        grouping_library=True)
 
@@ -18,12 +18,6 @@ bld.SAMBA_SUBSYSTEM('DSDB_MODULE_HELPER_RIDALLOC',
        deps='MESSAGING',
        )
 
-bld.SAMBA_SUBSYSTEM('DSDB_MODULE_HELPER_SCHEMA',
-       source='schema.c',
-       autoproto='schema.h',
-       deps='SAMDB_SCHEMA'
-       )
-
 bld.SAMBA_MODULE('ldb_samba_dsdb',
        source='samba_dsdb.c',
        subsystem='ldb',
@@ -230,7 +224,7 @@ bld.SAMBA_MODULE('ldb_objectclass',
        init_function='ldb_objectclass_module_init',
        module_init_name='ldb_init_module',
        internal_module=False,
-       deps='talloc samdb DSDB_MODULE_HELPERS samba-util DSDB_MODULE_HELPER_SCHEMA'
+       deps='talloc samdb DSDB_MODULE_HELPERS samba-util'
        )
 
 
@@ -320,7 +314,7 @@ bld.SAMBA_MODULE('ldb_descriptor',
        init_function='ldb_descriptor_module_init',
        module_init_name='ldb_init_module',
        internal_module=False,
-       deps='talloc security NDR_SECURITY samdb DSDB_MODULE_HELPERS DSDB_MODULE_HELPER_SCHEMA'
+       deps='talloc security NDR_SECURITY samdb DSDB_MODULE_HELPERS'
        )
 
 
@@ -340,7 +334,7 @@ bld.SAMBA_MODULE('ldb_acl',
        init_function='ldb_acl_module_init',
        module_init_name='ldb_init_module',
        internal_module=False,
-       deps='talloc security samdb DSDB_MODULE_HELPERS DSDB_MODULE_HELPER_SCHEMA'
+       deps='talloc security samdb DSDB_MODULE_HELPERS'
        )
 
 
@@ -377,5 +371,5 @@ bld.SAMBA_MODULE('ldb_dirsync',
        init_function='ldb_dirsync_module_init',
        module_init_name='ldb_init_module',
        internal_module=False,
-       deps='talloc security samdb DSDB_MODULE_HELPERS DSDB_MODULE_HELPER_SCHEMA'
+       deps='talloc security samdb DSDB_MODULE_HELPERS'
        )