The branch, master has been updated
       via  2bff55f dsdb/modules: Split up helpers a bit to prevent recursive 
dependencies.
       via  4280527 torture_auth: Add missing dependency on gensec_ntlmssp.
       via  ea6a3f5 wafsamba: Support setting pyembed on libraries.
       via  ffd7cee torture: Link against rpc server itself, not service 
module. (against which we can't link).
       via  ea8fc87 ldap_server: Add missing dependency on gensec_server_start.
       via  6c410dd kdc: Add missing dependency on samba_gensec_server.
       via  57bf052 smb_server: Split core out of service, since the service 
can be built as a .so against which we can't link.
       via  b0963b7 smb2: Add missing dependency on NDR_DFSBLOBS.
       via  d0c7ae5 librpc: Remove unnecessary dependency on 
libsamba-hostconfig.
       via  3b19993 dsdb/schema: Move some dsdb_dn functions that are 
schema-specific.
       via  41e55d7 ntvfs_ipc: add missing dependency on dcerpc_common.
       via  2c9ebb7 libsecurity-common: Add missing dependency on libndr.
       via  dc47e8d libcli-auth: Remove unnecessary dependency on 
libsamba-hostconfig.
       via  1f73f3b dsdb modules: Split ridalloc out of common helpers, because 
of dependency loops.
      from  7552dd8 rpc_ndr_netlogon: Add missing dependency on tevent.

http://gitweb.samba.org/?p=samba.git;a=shortlog;h=master


- Log -----------------------------------------------------------------
commit 2bff55f5deede15d09d2f685f5391e579ad36831
Author: Jelmer Vernooij <jel...@samba.org>
Date:   Mon Oct 11 01:03:42 2010 +0200

    dsdb/modules: Split up helpers a bit to prevent recursive dependencies.
    
    Autobuild-User: Jelmer Vernooij <jel...@samba.org>
    Autobuild-Date: Sun Oct 10 23:47:54 UTC 2010 on sn-devel-104

commit 4280527b6abb0070ad4f62338e9eea2c1ad991a7
Author: Jelmer Vernooij <jel...@samba.org>
Date:   Mon Oct 11 00:58:28 2010 +0200

    torture_auth: Add missing dependency on gensec_ntlmssp.

commit ea6a3f5c485ebc82c6c7cfd6b2a3451a75676cfb
Author: Jelmer Vernooij <jel...@samba.org>
Date:   Sun Oct 10 21:22:02 2010 +0200

    wafsamba: Support setting pyembed on libraries.

commit ffd7cee150527fbbfe29b5f9d30c1aec2137e392
Author: Jelmer Vernooij <jel...@samba.org>
Date:   Mon Oct 11 00:49:13 2010 +0200

    torture: Link against rpc server itself, not service module. (against which 
we can't link).

commit ea8fc8727b02004b90db46d444bcefbc4c622c70
Author: Jelmer Vernooij <jel...@samba.org>
Date:   Mon Oct 11 00:47:18 2010 +0200

    ldap_server: Add missing dependency on gensec_server_start.

commit 6c410dd6150206bf5f052bd6501f989e61a16583
Author: Jelmer Vernooij <jel...@samba.org>
Date:   Mon Oct 11 00:46:37 2010 +0200

    kdc: Add missing dependency on samba_gensec_server.

commit 57bf052e683e6ebc99dd85e3d1a6cf62d2fb89ea
Author: Jelmer Vernooij <jel...@samba.org>
Date:   Mon Oct 11 00:41:22 2010 +0200

    smb_server: Split core out of service, since the service can be built as a 
.so against which we can't link.

commit b0963b7b31fad5a057d2517b2e9f39db5efbd772
Author: Jelmer Vernooij <jel...@samba.org>
Date:   Sun Oct 10 19:15:41 2010 +0200

    smb2: Add missing dependency on NDR_DFSBLOBS.

commit d0c7ae5cd5f4495dd7ba1de8e8cd9e09aa7f5d11
Author: Jelmer Vernooij <jel...@samba.org>
Date:   Sun Oct 10 23:00:32 2010 +0200

    librpc: Remove unnecessary dependency on libsamba-hostconfig.

commit 3b199935615eb50ff039e89b9d3cfcebde2b4844
Author: Jelmer Vernooij <jel...@samba.org>
Date:   Sun Oct 10 21:37:58 2010 +0200

    dsdb/schema: Move some dsdb_dn functions that are schema-specific.

commit 41e55d78944a04b0fa8b351ff4a25c78bc9499a3
Author: Jelmer Vernooij <jel...@samba.org>
Date:   Sun Oct 10 22:57:40 2010 +0200

    ntvfs_ipc: add missing dependency on dcerpc_common.

commit 2c9ebb764657b3fea9161190cf924ff638eab9b2
Author: Jelmer Vernooij <jel...@samba.org>
Date:   Sun Oct 10 22:56:58 2010 +0200

    libsecurity-common: Add missing dependency on libndr.

commit dc47e8dc52964447aab80fb58a42c4f33aeaef33
Author: Jelmer Vernooij <jel...@samba.org>
Date:   Sun Oct 10 22:56:38 2010 +0200

    libcli-auth: Remove unnecessary dependency on libsamba-hostconfig.

commit 1f73f3b1ca561f8cad680459e0ef418d90b2e955
Author: Jelmer Vernooij <jel...@samba.org>
Date:   Mon Oct 11 00:29:18 2010 +0200

    dsdb modules: Split ridalloc out of common helpers, because of dependency 
loops.

-----------------------------------------------------------------------

Summary of changes:
 buildtools/wafsamba/wafsamba.py                 |   12 +-
 lib/crypto/wscript_build                        |    2 +-
 libcli/auth/wscript_build                       |    4 +-
 libcli/security/wscript_build                   |    2 +-
 source4/dsdb/common/dsdb_dn.c                   |   78 ----
 source4/dsdb/samdb/ldb_modules/acl.c            |    1 +
 source4/dsdb/samdb/ldb_modules/acl_util.c       |   61 ---
 source4/dsdb/samdb/ldb_modules/descriptor.c     |    1 +
 source4/dsdb/samdb/ldb_modules/objectclass.c    |    1 +
 source4/dsdb/samdb/ldb_modules/samldb.c         |    1 +
 source4/dsdb/samdb/ldb_modules/schema.c         |  120 ++++++
 source4/dsdb/samdb/ldb_modules/subtree_delete.c |    1 +
 source4/dsdb/samdb/ldb_modules/util.c           |   27 --
 source4/dsdb/samdb/ldb_modules/wscript_build    |   27 +-
 source4/dsdb/schema/dsdb_dn.c                   |  102 +++++
 source4/dsdb/schema/schema.h                    |    1 +
 source4/dsdb/wscript_build                      |    5 +-
 source4/kdc/wscript_build                       |    2 +-
 source4/ldap_server/wscript_build               |    2 +-
 source4/librpc/wscript_build                    |    8 +-
 source4/ntvfs/wscript_build                     |    2 +-
 source4/rpc_server/dcerpc_server.c              |  450 +++++++++++++++++++++++
 source4/rpc_server/dcerpc_server.h              |    5 +
 source4/rpc_server/service_rpc.c                |  440 ----------------------
 source4/rpc_server/wscript_build                |   10 +-
 source4/smb_server/service_smb.c                |   81 ++++
 source4/smb_server/smb2/wscript_build           |    2 +-
 source4/smb_server/smb_server.c                 |   44 ---
 source4/smb_server/wscript_build                |    4 +-
 source4/smbd/service_stream.h                   |    2 +
 source4/torture/wscript_build                   |    7 +-
 31 files changed, 819 insertions(+), 686 deletions(-)
 create mode 100644 source4/dsdb/samdb/ldb_modules/schema.c
 create mode 100644 source4/dsdb/schema/dsdb_dn.c
 create mode 100644 source4/smb_server/service_smb.c


Changeset truncated at 500 lines:

diff --git a/buildtools/wafsamba/wafsamba.py b/buildtools/wafsamba/wafsamba.py
index 02bb966..414fdc6 100644
--- a/buildtools/wafsamba/wafsamba.py
+++ b/buildtools/wafsamba/wafsamba.py
@@ -322,7 +322,9 @@ def SAMBA_MODULE(bld, modname, source,
                  internal_module=True,
                  local_include=True,
                  vars=None,
-                 enabled=True):
+                 enabled=True,
+                 pyembed=True,
+                 ):
     '''define a Samba module.'''
 
     source = bld.EXPAND_VARIABLES(source, vars=vars)
@@ -378,7 +380,8 @@ def SAMBA_MODULE(bld, modname, source,
                           local_include=local_include,
                           vars=vars,
                           link_name=build_link_name,
-                          install_path="${MODULESDIR}/%s" % subsystem
+                          install_path="${MODULESDIR}/%s" % subsystem,
+                          pyembed=pyembed,
                           )
 
 Build.BuildContext.SAMBA_MODULE = SAMBA_MODULE
@@ -406,7 +409,8 @@ def SAMBA_SUBSYSTEM(bld, modname, source,
                     use_global_deps=True,
                     vars=None,
                     hide_symbols=False,
-                    pyembed=False):
+                    pyembed=False,
+                    pyext=False):
     '''define a Samba subsystem'''
 
     if not enabled:
@@ -431,6 +435,8 @@ def SAMBA_SUBSYSTEM(bld, modname, source,
     features = 'cc'
     if pyembed:
         features += ' pyembed'
+    if pyext:
+        features += ' pyext'
 
     t = bld(
         features       = features,
diff --git a/lib/crypto/wscript_build b/lib/crypto/wscript_build
index 1b6a03d..7bc4eb7 100644
--- a/lib/crypto/wscript_build
+++ b/lib/crypto/wscript_build
@@ -2,7 +2,7 @@
 
 bld.SAMBA_SUBSYSTEM('LIBCRYPTO',
        source='crc32.c md5.c hmacmd5.c md4.c arcfour.c sha256.c hmacsha256.c 
aes.c rijndael-alg-fst.c',
-        deps='talloc'
+       deps='talloc'
        )
 
 
diff --git a/libcli/auth/wscript_build b/libcli/auth/wscript_build
index 3608231..2bfb92a 100644
--- a/libcli/auth/wscript_build
+++ b/libcli/auth/wscript_build
@@ -8,13 +8,13 @@ bld.SAMBA_SUBSYSTEM('ntlm_check',
 
 bld.SAMBA_SUBSYSTEM('MSRPC_PARSE',
        source='msrpc_parse.c',
-        deps='talloc'
+       deps='talloc'
        )
 
 
 bld.SAMBA_SUBSYSTEM('LIBCLI_AUTH',
        source='credentials.c session.c smbencrypt.c smbdes.c',
-       public_deps='MSRPC_PARSE LIBSAMBA-HOSTCONFIG',
+       public_deps='MSRPC_PARSE',
        public_headers='credentials.h:domain_credentials.h'
        )
 
diff --git a/libcli/security/wscript_build b/libcli/security/wscript_build
index 49682e2..8efb751 100644
--- a/libcli/security/wscript_build
+++ b/libcli/security/wscript_build
@@ -3,6 +3,6 @@
 
 bld.SAMBA_SUBSYSTEM('LIBSECURITY_COMMON',
        source='dom_sid.c display_sec.c secace.c secacl.c security_descriptor.c 
sddl.c privileges.c',
-       deps='talloc'
+       deps='talloc LIBNDR'
        )
 
diff --git a/source4/dsdb/common/dsdb_dn.c b/source4/dsdb/common/dsdb_dn.c
index 85ba9b7..3e0f465 100644
--- a/source4/dsdb/common/dsdb_dn.c
+++ b/source4/dsdb/common/dsdb_dn.c
@@ -328,84 +328,6 @@ int dsdb_dn_string_comparison(struct ldb_context *ldb, 
void *mem_ctx,
        return ldb_any_comparison(ldb, mem_ctx, dsdb_dn_string_canonicalise, 
v1, v2);
 }
 
-
-/*
-   convert a dsdb_dn to a linked attribute data blob
-*/
-WERROR dsdb_dn_la_to_blob(struct ldb_context *sam_ctx,
-                         const struct dsdb_attribute *schema_attrib,
-                         const struct dsdb_schema *schema,
-                         TALLOC_CTX *mem_ctx,
-                         struct dsdb_dn *dsdb_dn, DATA_BLOB **blob)
-{
-       struct ldb_val v;
-       WERROR werr;
-       struct ldb_message_element val_el;
-       struct drsuapi_DsReplicaAttribute drs;
-       struct dsdb_syntax_ctx syntax_ctx;
-
-       /* use default syntax conversion context */
-       dsdb_syntax_ctx_init(&syntax_ctx, sam_ctx, schema);
-
-       /* we need a message_element with just one value in it */
-       v = data_blob_string_const(dsdb_dn_get_extended_linearized(mem_ctx, 
dsdb_dn, 1));
-
-       val_el.name = schema_attrib->lDAPDisplayName;
-       val_el.values = &v;
-       val_el.num_values = 1;
-
-       werr = schema_attrib->syntax->ldb_to_drsuapi(&syntax_ctx, 
schema_attrib, &val_el, mem_ctx, &drs);
-       W_ERROR_NOT_OK_RETURN(werr);
-
-       if (drs.value_ctr.num_values != 1) {
-               DEBUG(1,(__location__ ": Failed to build DRS blob for linked 
attribute %s\n",
-                        schema_attrib->lDAPDisplayName));
-               return WERR_DS_DRA_INTERNAL_ERROR;
-       }
-
-       *blob = drs.value_ctr.values[0].blob;
-       return WERR_OK;
-}
-
-/*
-  convert a data blob to a dsdb_dn
- */
-WERROR dsdb_dn_la_from_blob(struct ldb_context *sam_ctx,
-                           const struct dsdb_attribute *schema_attrib,
-                           const struct dsdb_schema *schema,
-                           TALLOC_CTX *mem_ctx,
-                           DATA_BLOB *blob,
-                           struct dsdb_dn **dsdb_dn)
-{
-       WERROR werr;
-       struct ldb_message_element new_el;
-       struct drsuapi_DsReplicaAttribute drs;
-       struct drsuapi_DsAttributeValue val;
-       struct dsdb_syntax_ctx syntax_ctx;
-
-       /* use default syntax conversion context */
-       dsdb_syntax_ctx_init(&syntax_ctx, sam_ctx, schema);
-
-       drs.value_ctr.num_values = 1;
-       drs.value_ctr.values = &val;
-       val.blob = blob;
-
-       werr = schema_attrib->syntax->drsuapi_to_ldb(&syntax_ctx, 
schema_attrib, &drs, mem_ctx, &new_el);
-       W_ERROR_NOT_OK_RETURN(werr);
-
-       if (new_el.num_values != 1) {
-               return WERR_INTERNAL_ERROR;
-       }
-
-       *dsdb_dn = dsdb_dn_parse(mem_ctx, sam_ctx, &new_el.values[0], 
schema_attrib->syntax->ldap_oid);
-       if (!*dsdb_dn) {
-               return WERR_INTERNAL_ERROR;
-       }
-
-       return WERR_OK;
-}
-
-
 /*
   format a drsuapi_DsReplicaObjectIdentifier naming context as a string
  */
diff --git a/source4/dsdb/samdb/ldb_modules/acl.c 
b/source4/dsdb/samdb/ldb_modules/acl.c
index 149c6b1..660b4df 100644
--- a/source4/dsdb/samdb/ldb_modules/acl.c
+++ b/source4/dsdb/samdb/ldb_modules/acl.c
@@ -39,6 +39,7 @@
 #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"
 
 struct extended_access_check_attribute {
diff --git a/source4/dsdb/samdb/ldb_modules/acl_util.c 
b/source4/dsdb/samdb/ldb_modules/acl_util.c
index 6c41602..1a84704 100644
--- a/source4/dsdb/samdb/ldb_modules/acl_util.c
+++ b/source4/dsdb/samdb/ldb_modules/acl_util.c
@@ -178,67 +178,6 @@ fail:
        return ldb_operr(ldb_module_get_ctx(module));
 }
 
-int acl_check_access_on_class(struct ldb_module *module,
-                             const struct dsdb_schema *schema,
-                             TALLOC_CTX *mem_ctx,
-                             struct security_descriptor *sd,
-                             struct dom_sid *rp_sid,
-                             uint32_t access,
-                             const char *class_name)
-{
-       int ret;
-       NTSTATUS status;
-       uint32_t access_granted;
-       struct object_tree *root = NULL;
-       struct object_tree *new_node = NULL;
-       const struct GUID *guid;
-       TALLOC_CTX *tmp_ctx = talloc_new(mem_ctx);
-       struct security_token *token = acl_user_token(module);
-       if (class_name) {
-               guid = class_schemaid_guid_by_lDAPDisplayName(schema, 
class_name);
-               if (!guid) {
-                       DEBUG(10, ("acl_search: cannot find class %s\n",
-                                  class_name));
-                       goto fail;
-               }
-               if (!insert_in_object_tree(tmp_ctx,
-                                          guid, access,
-                                          &root, &new_node)) {
-                       DEBUG(10, ("acl_search: cannot add to object tree 
guid\n"));
-                       goto fail;
-               }
-       }
-       status = sec_access_check_ds(sd, token,
-                                    access,
-                                    &access_granted,
-                                    root,
-                                    rp_sid);
-       if (!NT_STATUS_IS_OK(status)) {
-               ret = LDB_ERR_INSUFFICIENT_ACCESS_RIGHTS;
-       }
-       else {
-               ret = LDB_SUCCESS;
-       }
-       return ret;
-fail:
-       return ldb_operr(ldb_module_get_ctx(module));
-}
-
-const struct GUID *get_oc_guid_from_message(struct ldb_module *module,
-                                                  const struct dsdb_schema 
*schema,
-                                                  struct ldb_message *msg)
-{
-       struct ldb_message_element *oc_el;
-
-       oc_el = ldb_msg_find_element(msg, "objectClass");
-       if (!oc_el) {
-               return NULL;
-       }
-
-       return class_schemaid_guid_by_lDAPDisplayName(schema,
-                                                     (char 
*)oc_el->values[oc_el->num_values-1].data);
-}
-
 
 /* checks for validated writes */
 int acl_check_extended_right(TALLOC_CTX *mem_ctx,
diff --git a/source4/dsdb/samdb/ldb_modules/descriptor.c 
b/source4/dsdb/samdb/ldb_modules/descriptor.c
index 959a7d8..c94d6bd 100644
--- a/source4/dsdb/samdb/ldb_modules/descriptor.c
+++ b/source4/dsdb/samdb/ldb_modules/descriptor.c
@@ -39,6 +39,7 @@
 #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 "util.h"
diff --git a/source4/dsdb/samdb/ldb_modules/objectclass.c 
b/source4/dsdb/samdb/ldb_modules/objectclass.c
index fa95626..940290b 100644
--- a/source4/dsdb/samdb/ldb_modules/objectclass.c
+++ b/source4/dsdb/samdb/ldb_modules/objectclass.c
@@ -45,6 +45,7 @@
 #include "auth/auth.h"
 #include "param/param.h"
 #include "../libds/common/flags.h"
+#include "dsdb/samdb/ldb_modules/schema.h"
 #include "util.h"
 
 struct oc_context {
diff --git a/source4/dsdb/samdb/ldb_modules/samldb.c 
b/source4/dsdb/samdb/ldb_modules/samldb.c
index c67f2d0..bf804fd 100644
--- a/source4/dsdb/samdb/ldb_modules/samldb.c
+++ b/source4/dsdb/samdb/ldb_modules/samldb.c
@@ -34,6 +34,7 @@
 #include "ldb_module.h"
 #include "dsdb/samdb/samdb.h"
 #include "dsdb/samdb/ldb_modules/util.h"
+#include "dsdb/samdb/ldb_modules/ridalloc.h"
 #include "libcli/security/security.h"
 #include "librpc/gen_ndr/ndr_security.h"
 #include "../lib/util/util_ldb.h"
diff --git a/source4/dsdb/samdb/ldb_modules/schema.c 
b/source4/dsdb/samdb/ldb_modules/schema.c
new file mode 100644
index 0000000..77bf9dc
--- /dev/null
+++ b/source4/dsdb/samdb/ldb_modules/schema.c
@@ -0,0 +1,120 @@
+/* 
+   Unix SMB/CIFS implementation.
+   Samba utility functions
+
+   Copyright (C) Andrew Tridgell 2009
+   Copyright (C) Andrew Bartlett <abart...@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 "util.h"
+#include "libcli/security/security.h"
+#include "lib/ldb/include/ldb_private.h"
+
+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 = NULL;
+       unsigned int i;
+
+       for (i = 0; i < element->num_values; i++){
+               const struct dsdb_class *tmp_class = 
dsdb_class_by_lDAPDisplayName_ldb_val(schema, &element->values[i]);
+
+               if(tmp_class == NULL) {
+                       continue;
+               }
+
+               if(tmp_class->objectClassCategory > 1) {
+                       continue;
+               }
+
+               if (!last_class) {
+                       last_class = tmp_class;
+               } else {
+                       if (tmp_class->subClass_order > 
last_class->subClass_order)
+                               last_class = tmp_class;
+               }
+       }
+
+       return last_class;
+}
+
+int acl_check_access_on_class(struct ldb_module *module,
+                             const struct dsdb_schema *schema,
+                             TALLOC_CTX *mem_ctx,
+                             struct security_descriptor *sd,
+                             struct dom_sid *rp_sid,
+                             uint32_t access,
+                             const char *class_name)
+{
+       int ret;
+       NTSTATUS status;
+       uint32_t access_granted;
+       struct object_tree *root = NULL;
+       struct object_tree *new_node = NULL;
+       const struct GUID *guid;
+       TALLOC_CTX *tmp_ctx = talloc_new(mem_ctx);
+       struct security_token *token = acl_user_token(module);
+       if (class_name) {
+               guid = class_schemaid_guid_by_lDAPDisplayName(schema, 
class_name);
+               if (!guid) {
+                       DEBUG(10, ("acl_search: cannot find class %s\n",
+                                  class_name));
+                       goto fail;
+               }
+               if (!insert_in_object_tree(tmp_ctx,
+                                          guid, access,
+                                          &root, &new_node)) {
+                       DEBUG(10, ("acl_search: cannot add to object tree 
guid\n"));
+                       goto fail;
+               }
+       }
+       status = sec_access_check_ds(sd, token,
+                                    access,
+                                    &access_granted,
+                                    root,
+                                    rp_sid);
+       if (!NT_STATUS_IS_OK(status)) {
+               ret = LDB_ERR_INSUFFICIENT_ACCESS_RIGHTS;
+       }
+       else {
+               ret = LDB_SUCCESS;
+       }
+       return ret;
+fail:
+       return ldb_operr(ldb_module_get_ctx(module));
+}
+
+const struct GUID *get_oc_guid_from_message(struct ldb_module *module,
+                                                  const struct dsdb_schema 
*schema,
+                                                  struct ldb_message *msg)
+{
+       struct ldb_message_element *oc_el;
+
+       oc_el = ldb_msg_find_element(msg, "objectClass");
+       if (!oc_el) {
+               return NULL;
+       }
+
+       return class_schemaid_guid_by_lDAPDisplayName(schema,
+                                                     (char 
*)oc_el->values[oc_el->num_values-1].data);
+}
+
+
diff --git a/source4/dsdb/samdb/ldb_modules/subtree_delete.c 
b/source4/dsdb/samdb/ldb_modules/subtree_delete.c
index 3817d22..91d22c9 100644
--- a/source4/dsdb/samdb/ldb_modules/subtree_delete.c
+++ b/source4/dsdb/samdb/ldb_modules/subtree_delete.c
@@ -35,6 +35,7 @@
 #include <ldb.h>
 #include <ldb_module.h>
 #include "dsdb/samdb/ldb_modules/util.h"
+#include "dsdb/common/util.h"
 
 
 static int subtree_delete(struct ldb_module *module, struct ldb_request *req)
diff --git a/source4/dsdb/samdb/ldb_modules/util.c 
b/source4/dsdb/samdb/ldb_modules/util.c
index 569c967..d7bf807 100644
--- a/source4/dsdb/samdb/ldb_modules/util.c
+++ b/source4/dsdb/samdb/ldb_modules/util.c
@@ -484,33 +484,6 @@ int dsdb_module_del(struct ldb_module *module,
        return ret;
 }
 
-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 = NULL;
-       unsigned int i;
-
-       for (i = 0; i < element->num_values; i++){
-               const struct dsdb_class *tmp_class = 
dsdb_class_by_lDAPDisplayName_ldb_val(schema, &element->values[i]);
-
-               if(tmp_class == NULL) {
-                       continue;
-               }
-
-               if(tmp_class->objectClassCategory > 1) {
-                       continue;
-               }
-
-               if (!last_class) {
-                       last_class = tmp_class;
-               } else {
-                       if (tmp_class->subClass_order > 
last_class->subClass_order)
-                               last_class = tmp_class;
-               }
-       }
-
-       return last_class;
-}
-
 /*
   check if a single valued link has multiple non-deleted values
 
diff --git a/source4/dsdb/samdb/ldb_modules/wscript_build 
b/source4/dsdb/samdb/ldb_modules/wscript_build
index b59fce3..03b138b 100644
--- a/source4/dsdb/samdb/ldb_modules/wscript_build
+++ b/source4/dsdb/samdb/ldb_modules/wscript_build
@@ -1,11 +1,22 @@
 #!/usr/bin/env python
 
 bld.SAMBA_SUBSYSTEM('DSDB_MODULE_HELPERS',
-       source='util.c ridalloc.c acl_util.c',
+       source='util.c acl_util.c',
        autoproto='util_proto.h',
-       deps='ldb LIBNDR SAMDB_SCHEMA MESSAGING'
+       deps='ldb LIBNDR SAMDB_COMMON'
        )
 
+bld.SAMBA_SUBSYSTEM('DSDB_MODULE_HELPER_RIDALLOC',
+       source='ridalloc.c',
+       autoproto='ridalloc.h',
+       deps='MESSAGING',
+       )
+
+bld.SAMBA_SUBSYSTEM('DSDB_MODULE_HELPER_SCHEMA',
+       source='schema.c',
+       autoproto='schema.h',
+       deps='SAMDB_SCHEMA'
+       )


-- 
Samba Shared Repository

Reply via email to