[SCM] Samba Shared Repository - branch master updated
Jelmer Vernooij
jelmer at samba.org
Sun Oct 10 17:48:01 MDT 2010
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 <jelmer at 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 <jelmer at samba.org>
Autobuild-Date: Sun Oct 10 23:47:54 UTC 2010 on sn-devel-104
commit 4280527b6abb0070ad4f62338e9eea2c1ad991a7
Author: Jelmer Vernooij <jelmer at samba.org>
Date: Mon Oct 11 00:58:28 2010 +0200
torture_auth: Add missing dependency on gensec_ntlmssp.
commit ea6a3f5c485ebc82c6c7cfd6b2a3451a75676cfb
Author: Jelmer Vernooij <jelmer at samba.org>
Date: Sun Oct 10 21:22:02 2010 +0200
wafsamba: Support setting pyembed on libraries.
commit ffd7cee150527fbbfe29b5f9d30c1aec2137e392
Author: Jelmer Vernooij <jelmer at 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 <jelmer at 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 <jelmer at samba.org>
Date: Mon Oct 11 00:46:37 2010 +0200
kdc: Add missing dependency on samba_gensec_server.
commit 57bf052e683e6ebc99dd85e3d1a6cf62d2fb89ea
Author: Jelmer Vernooij <jelmer at 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 <jelmer at samba.org>
Date: Sun Oct 10 19:15:41 2010 +0200
smb2: Add missing dependency on NDR_DFSBLOBS.
commit d0c7ae5cd5f4495dd7ba1de8e8cd9e09aa7f5d11
Author: Jelmer Vernooij <jelmer at samba.org>
Date: Sun Oct 10 23:00:32 2010 +0200
librpc: Remove unnecessary dependency on libsamba-hostconfig.
commit 3b199935615eb50ff039e89b9d3cfcebde2b4844
Author: Jelmer Vernooij <jelmer at 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 <jelmer at samba.org>
Date: Sun Oct 10 22:57:40 2010 +0200
ntvfs_ipc: add missing dependency on dcerpc_common.
commit 2c9ebb764657b3fea9161190cf924ff638eab9b2
Author: Jelmer Vernooij <jelmer at samba.org>
Date: Sun Oct 10 22:56:58 2010 +0200
libsecurity-common: Add missing dependency on libndr.
commit dc47e8dc52964447aab80fb58a42c4f33aeaef33
Author: Jelmer Vernooij <jelmer at samba.org>
Date: Sun Oct 10 22:56:38 2010 +0200
libcli-auth: Remove unnecessary dependency on libsamba-hostconfig.
commit 1f73f3b1ca561f8cad680459e0ef418d90b2e955
Author: Jelmer Vernooij <jelmer at 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 <abartlet at 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
More information about the samba-cvs
mailing list