[SCM] Samba Shared Repository - branch master updated

Andrew Tridgell tridge at samba.org
Wed Oct 13 05:43:01 MDT 2010


The branch, master has been updated
       via  d5e5992 ldb: raise minor version number for new ldb_msg_match_error() function
       via  269143f s4-ldb: take advantage of ldb_match_msg_error() in more places
       via  549c044 s4-schema: don't name variables after standard libc functions
       via  1803045 s4-ldb: use operator_fn syntax function in ldb_match code
       via  d267c8b s4-ldb: implement an operator_fn for the ldb-samba syntaxes
       via  3d75111 s4-ldb: added an optional operator_fn in the schema syntax
       via  ca4864c s4-torture: zero all of trans before the test starts
       via  261628d s4-torture: fixed uninitialised variable error
       via  b5ffdb6 s4: don't rebuild all of heimdal when dynconfig options change
       via  d029342 autobuild: do make install after make test
       via  72de3e6 s4-dynconfig: use the build modules when running from build directory
       via  d95160c ldb: when running from build directory, use the build modules
      from  f81c840 s4 rpc_server: fix a build error on freebsd

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


- Log -----------------------------------------------------------------
commit d5e599204ca38040ea2293506c396f2ddd0a5be5
Author: Andrew Tridgell <tridge at samba.org>
Date:   Wed Oct 13 21:48:01 2010 +1100

    ldb: raise minor version number for new ldb_msg_match_error() function
    
    Pair-Programmed-With: Andrew Bartlett <abartlet at samba.org>
    
    Autobuild-User: Andrew Tridgell <tridge at samba.org>
    Autobuild-Date: Wed Oct 13 11:42:18 UTC 2010 on sn-devel-104

commit 269143fa0031ef0b6d801b47aab48ff3b1414565
Author: Andrew Tridgell <tridge at samba.org>
Date:   Wed Oct 13 20:58:38 2010 +1100

    s4-ldb: take advantage of ldb_match_msg_error() in more places
    
    this gives better error checking

commit 549c044b9fe76e7d5a47a08fe73a99c87a41ddf4
Author: Andrew Tridgell <tridge at samba.org>
Date:   Wed Oct 13 20:58:01 2010 +1100

    s4-schema: don't name variables after standard libc functions

commit 180304516d2a7f4cd483bad5b08f22f7323c7738
Author: Andrew Tridgell <tridge at samba.org>
Date:   Wed Oct 13 20:48:27 2010 +1100

    s4-ldb: use operator_fn syntax function in ldb_match code
    
    this also fixes error handling in case of bad syntax, memory error
    etc, which was previously conidered as a mismatch, but should return
    an error
    
    Pair-Programmed-With: Andrew Bartlett <abartlet at samba.org>

commit d267c8b478d8d61bfc41cb276b772d0be5b45cd0
Author: Andrew Tridgell <tridge at samba.org>
Date:   Wed Oct 13 20:27:52 2010 +1100

    s4-ldb: implement an operator_fn for the ldb-samba syntaxes
    
    this allows us to properly handle the LDB_OP_PRESENT operator on
    deleted linked attributes
    
    Pair-Programmed-With: Andrew Bartlett <abartlet at samba.org>

commit 3d75111fd61d57d2a2fb9e19bf587effb0816339
Author: Andrew Tridgell <tridge at samba.org>
Date:   Wed Oct 13 20:02:18 2010 +1100

    s4-ldb: added an optional operator_fn in the schema syntax
    
    this function takes the operator being invoked, which will allow
    schema functions to provide more fine grained control over
    comparisons.
    
    The key bug this was introduced to fix is the incorrect handling of
    the LDB_OP_PRESENT test for deleted linked attributes. The backends
    are unaware of the deleted state of these links, so they cannot do a
    LDB_OP_PRESENT test on their own.
    
    Pair-Programmed-With: Andrew Bartlett <abartlet at samba.org>

commit ca4864cce695fa1530d8aab50dd82566fc67c6e3
Author: Andrew Tridgell <tridge at samba.org>
Date:   Wed Oct 13 20:00:22 2010 +1100

    s4-torture: zero all of trans before the test starts

commit 261628d1e49921eac143f8ad0167620f95db1a33
Author: Andrew Tridgell <tridge at samba.org>
Date:   Wed Oct 13 19:42:45 2010 +1100

    s4-torture: fixed uninitialised variable error
    
    ret is uninitialised if the directory is empty

commit b5ffdb6f9c7e003223614baac18f03fe02e7d782
Author: Andrew Tridgell <tridge at samba.org>
Date:   Wed Oct 13 12:19:37 2010 +1100

    s4: don't rebuild all of heimdal when dynconfig options change
    
    only 2 files in heimdal depend on dynconfig variables

commit d0293428fe2e95cccfcaf3df47f234ac3e794d2e
Author: Andrew Tridgell <tridge at samba.org>
Date:   Wed Oct 13 10:43:44 2010 +1100

    autobuild: do make install after make test
    
    this ensures that commits that break uninstalled testing get caught by
    autobuild in future
    
    Pair-Programmed-With: Jelmer Vernooij <jelmer at samba.org>

commit 72de3e698b651da08a542864bb94b4e1b35dd935
Author: Andrew Tridgell <tridge at samba.org>
Date:   Wed Oct 13 10:37:22 2010 +1100

    s4-dynconfig: use the build modules when running from build directory
    
    we need to use the newly built modules when running from the build
    directory to ensure we don't run tests against a stale install
    
    Pair-Programmed-With: Jelmer Vernooij <jelmer at samba.org>

commit d95160ca2f22edbc000ea2c78eab04e8e06be151
Author: Andrew Tridgell <tridge at samba.org>
Date:   Wed Oct 13 10:36:24 2010 +1100

    ldb: when running from build directory, use the build modules
    
    we need to use the build modules, not the installed modules, so tests
    run from the source directory are valid
    
    Pair-Programmed-With: Jelmer Vernooij <jelmer at samba.org>

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

Summary of changes:
 lib/torture/torture.c                              |    2 +-
 script/autobuild.py                                |    4 +-
 source4/dsdb/samdb/ldb_modules/schema.c            |    6 +-
 source4/dynconfig/wscript                          |   14 +-
 source4/heimdal_build/wscript_build                |   21 +-
 source4/lib/ldb-samba/ldif_handlers.c              |  108 ++++++-
 .../ABI/{ldb-ildap-0.9.12.sigs => ldb-0.9.15.sigs} |   74 +++---
 source4/lib/ldb/common/ldb_match.c                 |  304 ++++++++++++++------
 source4/lib/ldb/include/ldb.h                      |    5 +
 source4/lib/ldb/include/ldb_module.h               |    7 +
 source4/lib/ldb/ldb_map/ldb_map_outbound.c         |   13 +-
 source4/lib/ldb/ldb_tdb/ldb_index.c                |   10 +-
 source4/lib/ldb/ldb_tdb/ldb_search.c               |   10 +-
 source4/lib/ldb/ldb_tdb/ldb_tdb.c                  |   12 +-
 source4/lib/ldb/modules/rdn_name.c                 |   13 +-
 source4/lib/ldb/wscript                            |   64 +++--
 source4/torture/dfs/common.c                       |    2 +-
 17 files changed, 469 insertions(+), 200 deletions(-)
 copy source4/lib/ldb/ABI/{ldb-ildap-0.9.12.sigs => ldb-0.9.15.sigs} (81%)


Changeset truncated at 500 lines:

diff --git a/lib/torture/torture.c b/lib/torture/torture.c
index 9d77ab4..1f55cd0 100644
--- a/lib/torture/torture.c
+++ b/lib/torture/torture.c
@@ -96,7 +96,7 @@ _PUBLIC_ NTSTATUS torture_temp_dir(struct torture_context *tctx,
 
 static int local_deltree(const char *path)
 {
-	int ret;
+	int ret = 0;
 	struct dirent *dirent;
 	DIR *dir = opendir(path);
 	if (!dir) {
diff --git a/script/autobuild.py b/script/autobuild.py
index 6691437..cb3e959 100755
--- a/script/autobuild.py
+++ b/script/autobuild.py
@@ -26,8 +26,8 @@ tasks = {
 
     "source4" : [ ("configure", "./configure.developer ${PREFIX}", "text/plain"),
                   ("make", "make -j", "text/plain"),
-                  ("install", "make install", "text/plain"),
-                  ("test", "TDB_NO_FSYNC=1 make test FAIL_IMMEDIATELY=1", "text/plain") ],
+                  ("test", "TDB_NO_FSYNC=1 make test FAIL_IMMEDIATELY=1", "text/plain"),
+                  ("install", "make install", "text/plain") ],
 
     "source4/lib/ldb" : [ ("configure", "./configure --enable-developer -C ${PREFIX}", "text/plain"),
                           ("make", "make -j", "text/plain"),
diff --git a/source4/dsdb/samdb/ldb_modules/schema.c b/source4/dsdb/samdb/ldb_modules/schema.c
index 77bf9dc..916017f 100644
--- a/source4/dsdb/samdb/ldb_modules/schema.c
+++ b/source4/dsdb/samdb/ldb_modules/schema.c
@@ -61,7 +61,7 @@ int acl_check_access_on_class(struct ldb_module *module,
 			      TALLOC_CTX *mem_ctx,
 			      struct security_descriptor *sd,
 			      struct dom_sid *rp_sid,
-			      uint32_t access,
+			      uint32_t access_mask,
 			      const char *class_name)
 {
 	int ret;
@@ -80,14 +80,14 @@ int acl_check_access_on_class(struct ldb_module *module,
 			goto fail;
 		}
 		if (!insert_in_object_tree(tmp_ctx,
-					   guid, access,
+					   guid, access_mask,
 					   &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_mask,
 				     &access_granted,
 				     root,
 				     rp_sid);
diff --git a/source4/dynconfig/wscript b/source4/dynconfig/wscript
index 722940f..d975698 100644
--- a/source4/dynconfig/wscript
+++ b/source4/dynconfig/wscript
@@ -1,6 +1,6 @@
 #!/usr/bin/env python
 
-import string, Utils, Options, sys, Build
+import string, Utils, Options, sys, Build, os
 from samba_utils import EXPAND_VARIABLES
 
 # list of directory options to offer in configure
@@ -116,11 +116,18 @@ def configure(conf):
         sys.exit(1)
 
 
-def dynconfig_cflags(bld):
+def dynconfig_cflags(bld, list=None):
     '''work out the extra CFLAGS for dynconfig.c'''
     cflags = []
     for f in dyn_cflags.keys():
-        cflags.append('-D%s="%s"' % (f, bld.env[f]))
+        if list and not f in list:
+            continue
+        if not Options.is_install and f == 'MODULESDIR':
+            # we want binaries run from the source dir to use the current
+            # modules, not the installed ones
+            cflags.append('-DMODULESDIR="%s"' % os.path.join(os.getcwd(), 'bin/modules'))
+        else:
+            cflags.append('-D%s="%s"' % (f, bld.env[f]))
     return cflags
 Build.BuildContext.dynconfig_cflags = dynconfig_cflags
 
@@ -132,4 +139,3 @@ def build(bld):
                         public_headers='../version.h',
                         header_path='samba',
                         cflags=cflags)
-
diff --git a/source4/heimdal_build/wscript_build b/source4/heimdal_build/wscript_build
index 1331d80..e41b595 100644
--- a/source4/heimdal_build/wscript_build
+++ b/source4/heimdal_build/wscript_build
@@ -163,6 +163,7 @@ def HEIMDAL_LIBRARY(libname, source, deps,
                   vnum=None,
                   autoproto=None,
                   autoproto_options=None,
+                  autoproto_extra='',
                   autoproto_private=None,
                   is_bundled=True):
     '''define a Heimdal library'''
@@ -211,10 +212,10 @@ def HEIMDAL_LIBRARY(libname, source, deps,
         )
 
     if autoproto is not None:
-        HEIMDAL_AUTOPROTO(autoproto, source,
+        HEIMDAL_AUTOPROTO(autoproto, source + ' ' + autoproto_extra,
             options=autoproto_options)
     if autoproto_private is not None:
-        HEIMDAL_AUTOPROTO_PRIVATE(autoproto_private, source)
+        HEIMDAL_AUTOPROTO_PRIVATE(autoproto_private, source + ' ' + autoproto_extra)
 
 
 def HEIMDAL_GENERATOR(name, rule, source='', target='',
@@ -645,6 +646,15 @@ if not bld.CONFIG_SET('HAVE_ERR_H'):
         target = '../heimdal/lib/roken/err.h',
         )
 
+# expand_path.c needs some of the install paths
+HEIMDAL_SUBSYSTEM('HEIMDAL_CONFIG',
+                  '../heimdal/lib/krb5/expand_path.c ../heimdal/lib/krb5/plugin.c',
+                  includes='../heimdal/lib/krb5 ../heimdal/lib/asn1',
+                  cflags = bld.dynconfig_cflags('LIBDIR BINDIR LIBEXECDIR SBINDIR'),
+                  deps='HEIMDAL_HCRYPTO wind hx509'
+                  )
+
+
 HEIMDAL_LIBRARY('krb5',
                     bld.SUBDIR('../heimdal/lib/krb5/',
                                '''acache.c add_et_list.c
@@ -656,7 +666,6 @@ HEIMDAL_LIBRARY('krb5',
                                copy_host_realm.c crc.c creds.c
                                crypto.c data.c eai_to_heim_errno.c
                                error_string.c expand_hostname.c
-                               expand_path.c
                                fcache.c free.c free_host_realm.c
                                generate_seq_number.c generate_subkey.c
                                get_addrs.c get_cred.c
@@ -670,7 +679,7 @@ HEIMDAL_LIBRARY('krb5',
                                mcache.c misc.c mk_error.c mk_priv.c
                                mk_rep.c mk_req.c mk_req_ext.c
                                mit_glue.c n-fold.c padata.c pkinit.c
-                               plugin.c principal.c prog_setup.c pac.c
+                               principal.c prog_setup.c pac.c
                                pcache.c prompter_posix.c rd_cred.c rd_error.c
                                rd_priv.c rd_rep.c rd_req.c replay.c
                                send_to_kdc.c set_default_realm.c
@@ -681,9 +690,9 @@ HEIMDAL_LIBRARY('krb5',
                     includes='../heimdal/lib/krb5 ../heimdal/lib/asn1',
                     autoproto='../heimdal/lib/krb5/krb5-protos.h',
                     autoproto_options='-E KRB5_LIB -q -P comment -o',
+                    autoproto_extra='../heimdal/lib/krb5/expand_path.c ../heimdal/lib/krb5/plugin.c',
                     autoproto_private='../heimdal/lib/krb5/krb5-private.h',
-            cflags = bld.dynconfig_cflags(),
-            deps='roken HEIMDAL_PKINIT_ASN1 wind HEIMDAL_KRB5_ASN1 hx509 HEIMDAL_HCRYPTO LIBSAMBA-HOSTCONFIG intl com_err',
+            deps='roken HEIMDAL_PKINIT_ASN1 wind HEIMDAL_KRB5_ASN1 hx509 HEIMDAL_HCRYPTO LIBSAMBA-HOSTCONFIG intl com_err HEIMDAL_CONFIG',
                     )
 
 
diff --git a/source4/lib/ldb-samba/ldif_handlers.c b/source4/lib/ldb-samba/ldif_handlers.c
index b2a0adc..e4e494f 100644
--- a/source4/lib/ldb-samba/ldif_handlers.c
+++ b/source4/lib/ldb-samba/ldif_handlers.c
@@ -1029,97 +1029,177 @@ static int ldif_read_range64(struct ldb_context *ldb, void *mem_ctx,
 	return LDB_SUCCESS;
 }
 
+/*
+  when this operator_fn is set for a syntax, the backend calls is in
+  preference to the comparison function. We are told the exact
+  comparison operation that is needed, and we can return errors
+ */
+static int samba_syntax_operator_fn(struct ldb_context *ldb, enum ldb_parse_op operation,
+				    const struct ldb_schema_attribute *a,
+				    const struct ldb_val *v1, const struct ldb_val *v2, bool *matched)
+{
+	switch (operation) {
+	case LDB_OP_AND:
+	case LDB_OP_OR:
+	case LDB_OP_NOT:
+	case LDB_OP_SUBSTRING:
+	case LDB_OP_APPROX:
+	case LDB_OP_EXTENDED:
+		/* handled in the backends */
+		return LDB_ERR_INAPPROPRIATE_MATCHING;
+
+	case LDB_OP_GREATER:
+	case LDB_OP_LESS:
+	case LDB_OP_EQUALITY:
+	{
+		TALLOC_CTX *tmp_ctx = talloc_new(ldb);
+		int ret;
+		if (tmp_ctx == NULL) {
+			return ldb_oom(ldb);
+		}
+		ret = a->syntax->comparison_fn(ldb, tmp_ctx, v1, v2);
+		talloc_free(tmp_ctx);
+		if (operation == LDB_OP_GREATER) {
+			*matched = (ret > 0);
+		} else if (operation == LDB_OP_LESS) {
+			*matched = (ret < 0);
+		} else {
+			*matched = (ret == 0);
+		}
+		return LDB_SUCCESS;
+	}
+
+	case LDB_OP_PRESENT:
+		*matched = true;
+		return LDB_SUCCESS;
+	}
+
+	/* we shouldn't get here */
+	return LDB_ERR_INAPPROPRIATE_MATCHING;
+}
+
+/*
+  special operation for DNs, to take account of the RMD_FLAGS deleted bit
+ */
+static int samba_syntax_operator_dn(struct ldb_context *ldb, enum ldb_parse_op operation,
+				    const struct ldb_schema_attribute *a,
+				    const struct ldb_val *v1, const struct ldb_val *v2, bool *matched)
+{
+	if (operation == LDB_OP_PRESENT && dsdb_dn_is_deleted_val(v1)) {
+		/* If the DN is deleted, then we can't search for it */
+		*matched = false;
+		return LDB_SUCCESS;
+	}
+	return samba_syntax_operator_fn(ldb, operation, a, v1, v2, matched);
+}
+
+
 static const struct ldb_schema_syntax samba_syntaxes[] = {
 	{
 		.name		  = LDB_SYNTAX_SAMBA_SID,
 		.ldif_read_fn	  = ldif_read_objectSid,
 		.ldif_write_fn	  = ldif_write_objectSid,
 		.canonicalise_fn  = ldif_canonicalise_objectSid,
-		.comparison_fn	  = ldif_comparison_objectSid
+		.comparison_fn	  = ldif_comparison_objectSid,
+		.operator_fn      = samba_syntax_operator_fn
 	},{
 		.name		  = LDB_SYNTAX_SAMBA_SECURITY_DESCRIPTOR,
 		.ldif_read_fn	  = ldif_read_ntSecurityDescriptor,
 		.ldif_write_fn	  = ldif_write_ntSecurityDescriptor,
 		.canonicalise_fn  = ldb_handler_copy,
-		.comparison_fn	  = ldb_comparison_binary
+		.comparison_fn	  = ldb_comparison_binary,
+		.operator_fn      = samba_syntax_operator_fn
 	},{
 		.name		  = LDB_SYNTAX_SAMBA_GUID,
 		.ldif_read_fn	  = ldif_read_objectGUID,
 		.ldif_write_fn	  = ldif_write_objectGUID,
 		.canonicalise_fn  = ldif_canonicalise_objectGUID,
-		.comparison_fn	  = ldif_comparison_objectGUID
+		.comparison_fn	  = ldif_comparison_objectGUID,
+		.operator_fn      = samba_syntax_operator_fn
 	},{
 		.name		  = LDB_SYNTAX_SAMBA_OBJECT_CATEGORY,
 		.ldif_read_fn	  = ldb_handler_copy,
 		.ldif_write_fn	  = ldb_handler_copy,
 		.canonicalise_fn  = ldif_canonicalise_objectCategory,
-		.comparison_fn	  = ldif_comparison_objectCategory
+		.comparison_fn	  = ldif_comparison_objectCategory,
+		.operator_fn      = samba_syntax_operator_fn
 	},{
 		.name		  = LDB_SYNTAX_SAMBA_SCHEMAINFO,
 		.ldif_read_fn	  = ldb_handler_copy,
 		.ldif_write_fn	  = ldif_write_schemaInfo,
 		.canonicalise_fn  = ldb_handler_copy,
-		.comparison_fn	  = ldb_comparison_binary
+		.comparison_fn	  = ldb_comparison_binary,
+		.operator_fn      = samba_syntax_operator_fn
 	},{
 		.name		  = LDB_SYNTAX_SAMBA_PREFIX_MAP,
 		.ldif_read_fn	  = ldif_read_prefixMap,
 		.ldif_write_fn	  = ldif_write_prefixMap,
 		.canonicalise_fn  = ldif_canonicalise_prefixMap,
-		.comparison_fn	  = ldif_comparison_prefixMap
+		.comparison_fn	  = ldif_comparison_prefixMap,
+		.operator_fn      = samba_syntax_operator_fn
 	},{
 		.name		  = LDB_SYNTAX_SAMBA_INT32,
 		.ldif_read_fn	  = ldb_handler_copy,
 		.ldif_write_fn	  = ldb_handler_copy,
 		.canonicalise_fn  = ldif_canonicalise_int32,
-		.comparison_fn	  = ldif_comparison_int32
+		.comparison_fn	  = ldif_comparison_int32,
+		.operator_fn      = samba_syntax_operator_fn
 	},{
 		.name		  = LDB_SYNTAX_SAMBA_REPSFROMTO,
 		.ldif_read_fn	  = ldb_handler_copy,
 		.ldif_write_fn	  = ldif_write_repsFromTo,
 		.canonicalise_fn  = ldb_handler_copy,
-		.comparison_fn	  = ldb_comparison_binary
+		.comparison_fn	  = ldb_comparison_binary,
+		.operator_fn      = samba_syntax_operator_fn
 	},{
 		.name		  = LDB_SYNTAX_SAMBA_REPLPROPERTYMETADATA,
 		.ldif_read_fn	  = ldb_handler_copy,
 		.ldif_write_fn	  = ldif_write_replPropertyMetaData,
 		.canonicalise_fn  = ldb_handler_copy,
-		.comparison_fn	  = ldb_comparison_binary
+		.comparison_fn	  = ldb_comparison_binary,
+		.operator_fn      = samba_syntax_operator_fn
 	},{
 		.name		  = LDB_SYNTAX_SAMBA_REPLUPTODATEVECTOR,
 		.ldif_read_fn	  = ldb_handler_copy,
 		.ldif_write_fn	  = ldif_write_replUpToDateVector,
 		.canonicalise_fn  = ldb_handler_copy,
-		.comparison_fn	  = ldb_comparison_binary
+		.comparison_fn	  = ldb_comparison_binary,
+		.operator_fn      = samba_syntax_operator_fn
 	},{
 		.name		  = DSDB_SYNTAX_BINARY_DN,
 		.ldif_read_fn	  = ldb_handler_copy,
 		.ldif_write_fn	  = ldb_handler_copy,
 		.canonicalise_fn  = dsdb_dn_binary_canonicalise,
-		.comparison_fn	  = dsdb_dn_binary_comparison
+		.comparison_fn	  = dsdb_dn_binary_comparison,
+		.operator_fn      = samba_syntax_operator_fn
 	},{
 		.name		  = DSDB_SYNTAX_STRING_DN,
 		.ldif_read_fn	  = ldb_handler_copy,
 		.ldif_write_fn	  = ldb_handler_copy,
 		.canonicalise_fn  = dsdb_dn_string_canonicalise,
-		.comparison_fn	  = dsdb_dn_string_comparison
+		.comparison_fn	  = dsdb_dn_string_comparison,
+		.operator_fn      = samba_syntax_operator_fn
 	},{
 		.name		  = LDB_SYNTAX_DN,
 		.ldif_read_fn	  = ldb_handler_copy,
 		.ldif_write_fn	  = ldb_handler_copy,
 		.canonicalise_fn  = samba_ldb_dn_link_canonicalise,
 		.comparison_fn	  = samba_ldb_dn_link_comparison,
+		.operator_fn      = samba_syntax_operator_dn
 	},{
 		.name		  = LDB_SYNTAX_SAMBA_RANGE64,
 		.ldif_read_fn	  = ldif_read_range64,
 		.ldif_write_fn	  = ldif_write_range64,
 		.canonicalise_fn  = ldif_canonicalise_int64,
-		.comparison_fn	  = ldif_comparison_int64
+		.comparison_fn	  = ldif_comparison_int64,
+		.operator_fn      = samba_syntax_operator_fn
 	},{
 		.name		  = LDB_SYNTAX_SAMBA_DNSRECORD,
 		.ldif_read_fn	  = ldb_handler_copy,
 		.ldif_write_fn	  = ldif_write_dnsRecord,
 		.canonicalise_fn  = ldb_handler_copy,
-		.comparison_fn	  = ldb_comparison_binary
+		.comparison_fn	  = ldb_comparison_binary,
+		.operator_fn      = samba_syntax_operator_fn
 	}
 };
 
diff --git a/source4/lib/ldb/ABI/ldb-ildap-0.9.12.sigs b/source4/lib/ldb/ABI/ldb-0.9.15.sigs
similarity index 81%
copy from source4/lib/ldb/ABI/ldb-ildap-0.9.12.sigs
copy to source4/lib/ldb/ABI/ldb-0.9.15.sigs
index 4639220..39d2f3e 100644
--- a/source4/lib/ldb/ABI/ldb-ildap-0.9.12.sigs
+++ b/source4/lib/ldb/ABI/ldb-0.9.15.sigs
@@ -1,25 +1,25 @@
 ldb_add: int (struct ldb_context *, const struct ldb_message *)
 ldb_any_comparison: int (struct ldb_context *, void *, ldb_attr_handler_t, const struct ldb_val *, const struct ldb_val *)
 ldb_asprintf_errstring: void (struct ldb_context *, const char *, ...)
-ldb_attr_casefold: char *(void *, const char *)
+ldb_attr_casefold: char *(TALLOC_CTX *, const char *)
 ldb_attr_dn: int (const char *)
 ldb_attr_in_list: int (const char * const *, const char *)
 ldb_attr_list_copy: const char **(TALLOC_CTX *, const char * const *)
 ldb_attr_list_copy_add: const char **(TALLOC_CTX *, const char * const *, const char *)
 ldb_base64_decode: int (char *)
-ldb_base64_encode: char *(void *, const char *, int)
-ldb_binary_decode: struct ldb_val (void *, const char *)
-ldb_binary_encode: char *(void *, struct ldb_val)
-ldb_binary_encode_string: char *(void *, const char *)
-ldb_build_add_req: int (struct ldb_request **, struct ldb_context *, void *, const struct ldb_message *, struct ldb_control **, void *, ldb_request_callback_t, struct ldb_request *)
-ldb_build_del_req: int (struct ldb_request **, struct ldb_context *, void *, struct ldb_dn *, struct ldb_control **, void *, ldb_request_callback_t, struct ldb_request *)
-ldb_build_extended_req: int (struct ldb_request **, struct ldb_context *, void *, const char *, void *, struct ldb_control **, void *, ldb_request_callback_t, struct ldb_request *)
-ldb_build_mod_req: int (struct ldb_request **, struct ldb_context *, void *, const struct ldb_message *, struct ldb_control **, void *, ldb_request_callback_t, struct ldb_request *)
-ldb_build_rename_req: int (struct ldb_request **, struct ldb_context *, void *, struct ldb_dn *, struct ldb_dn *, struct ldb_control **, void *, ldb_request_callback_t, struct ldb_request *)
-ldb_build_search_req: int (struct ldb_request **, struct ldb_context *, void *, struct ldb_dn *, enum ldb_scope, const char *, const char * const *, struct ldb_control **, void *, ldb_request_callback_t, struct ldb_request *)
-ldb_build_search_req_ex: int (struct ldb_request **, struct ldb_context *, void *, struct ldb_dn *, enum ldb_scope, struct ldb_parse_tree *, const char * const *, struct ldb_control **, void *, ldb_request_callback_t, struct ldb_request *)
-ldb_casefold: char *(struct ldb_context *, void *, const char *, size_t)
-ldb_casefold_default: char *(void *, void *, const char *, size_t)
+ldb_base64_encode: char *(TALLOC_CTX *, const char *, int)
+ldb_binary_decode: struct ldb_val (TALLOC_CTX *, const char *)
+ldb_binary_encode: char *(TALLOC_CTX *, struct ldb_val)
+ldb_binary_encode_string: char *(TALLOC_CTX *, const char *)
+ldb_build_add_req: int (struct ldb_request **, struct ldb_context *, TALLOC_CTX *, const struct ldb_message *, struct ldb_control **, void *, ldb_request_callback_t, struct ldb_request *)
+ldb_build_del_req: int (struct ldb_request **, struct ldb_context *, TALLOC_CTX *, struct ldb_dn *, struct ldb_control **, void *, ldb_request_callback_t, struct ldb_request *)
+ldb_build_extended_req: int (struct ldb_request **, struct ldb_context *, TALLOC_CTX *, const char *, void *, struct ldb_control **, void *, ldb_request_callback_t, struct ldb_request *)
+ldb_build_mod_req: int (struct ldb_request **, struct ldb_context *, TALLOC_CTX *, const struct ldb_message *, struct ldb_control **, void *, ldb_request_callback_t, struct ldb_request *)
+ldb_build_rename_req: int (struct ldb_request **, struct ldb_context *, TALLOC_CTX *, struct ldb_dn *, struct ldb_dn *, struct ldb_control **, void *, ldb_request_callback_t, struct ldb_request *)
+ldb_build_search_req: int (struct ldb_request **, struct ldb_context *, TALLOC_CTX *, struct ldb_dn *, enum ldb_scope, const char *, const char * const *, struct ldb_control **, void *, ldb_request_callback_t, struct ldb_request *)
+ldb_build_search_req_ex: int (struct ldb_request **, struct ldb_context *, TALLOC_CTX *, struct ldb_dn *, enum ldb_scope, struct ldb_parse_tree *, const char * const *, struct ldb_control **, void *, ldb_request_callback_t, struct ldb_request *)
+ldb_casefold: char *(struct ldb_context *, TALLOC_CTX *, const char *, size_t)
+ldb_casefold_default: char *(void *, TALLOC_CTX *, const char *, size_t)
 ldb_comparison_binary: int (struct ldb_context *, void *, const struct ldb_val *, const struct ldb_val *)
 ldb_comparison_fold: int (struct ldb_context *, void *, const struct ldb_val *, const struct ldb_val *)
 ldb_connect: int (struct ldb_context *, const char *, unsigned int, const char **)
@@ -33,28 +33,28 @@ ldb_dn_add_base: bool (struct ldb_dn *, struct ldb_dn *)
 ldb_dn_add_base_fmt: bool (struct ldb_dn *, const char *, ...)
 ldb_dn_add_child: bool (struct ldb_dn *, struct ldb_dn *)
 ldb_dn_add_child_fmt: bool (struct ldb_dn *, const char *, ...)
-ldb_dn_alloc_casefold: char *(void *, struct ldb_dn *)
-ldb_dn_alloc_linearized: char *(void *, struct ldb_dn *)
-ldb_dn_canonical_ex_string: char *(void *, struct ldb_dn *)
-ldb_dn_canonical_string: char *(void *, struct ldb_dn *)
+ldb_dn_alloc_casefold: char *(TALLOC_CTX *, struct ldb_dn *)
+ldb_dn_alloc_linearized: char *(TALLOC_CTX *, struct ldb_dn *)
+ldb_dn_canonical_ex_string: char *(TALLOC_CTX *, struct ldb_dn *)
+ldb_dn_canonical_string: char *(TALLOC_CTX *, struct ldb_dn *)
 ldb_dn_check_local: bool (struct ldb_module *, struct ldb_dn *)
 ldb_dn_check_special: bool (struct ldb_dn *, const char *)
 ldb_dn_compare: int (struct ldb_dn *, struct ldb_dn *)
 ldb_dn_compare_base: int (struct ldb_dn *, struct ldb_dn *)
-ldb_dn_copy: struct ldb_dn *(void *, struct ldb_dn *)
-ldb_dn_escape_value: char *(void *, struct ldb_val)
+ldb_dn_copy: struct ldb_dn *(TALLOC_CTX *, struct ldb_dn *)
+ldb_dn_escape_value: char *(TALLOC_CTX *, struct ldb_val)
 ldb_dn_extended_add_syntax: int (struct ldb_context *, unsigned int, const struct ldb_dn_extended_syntax *)
 ldb_dn_extended_filter: void (struct ldb_dn *, const char * const *)
 ldb_dn_extended_syntax_by_name: const struct ldb_dn_extended_syntax *(struct ldb_context *, const char *)
-ldb_dn_from_ldb_val: struct ldb_dn *(void *, struct ldb_context *, const struct ldb_val *)
+ldb_dn_from_ldb_val: struct ldb_dn *(TALLOC_CTX *, struct ldb_context *, const struct ldb_val *)
 ldb_dn_get_casefold: const char *(struct ldb_dn *)
 ldb_dn_get_comp_num: int (struct ldb_dn *)
 ldb_dn_get_component_name: const char *(struct ldb_dn *, unsigned int)
 ldb_dn_get_component_val: const struct ldb_val *(struct ldb_dn *, unsigned int)
 ldb_dn_get_extended_component: const struct ldb_val *(struct ldb_dn *, const char *)
-ldb_dn_get_extended_linearized: char *(void *, struct ldb_dn *, int)
+ldb_dn_get_extended_linearized: char *(TALLOC_CTX *, struct ldb_dn *, int)
 ldb_dn_get_linearized: const char *(struct ldb_dn *)
-ldb_dn_get_parent: struct ldb_dn *(void *, struct ldb_dn *)
+ldb_dn_get_parent: struct ldb_dn *(TALLOC_CTX *, struct ldb_dn *)
 ldb_dn_get_rdn_name: const char *(struct ldb_dn *)
 ldb_dn_get_rdn_val: const struct ldb_val *(struct ldb_dn *)
 ldb_dn_has_extended: bool (struct ldb_dn *)
@@ -64,8 +64,8 @@ ldb_dn_is_valid: bool (struct ldb_dn *)
 ldb_dn_map_local: struct ldb_dn *(struct ldb_module *, void *, struct ldb_dn *)
 ldb_dn_map_rebase_remote: struct ldb_dn *(struct ldb_module *, void *, struct ldb_dn *)
 ldb_dn_map_remote: struct ldb_dn *(struct ldb_module *, void *, struct ldb_dn *)
-ldb_dn_new: struct ldb_dn *(void *, struct ldb_context *, const char *)
-ldb_dn_new_fmt: struct ldb_dn *(void *, struct ldb_context *, const char *, ...)
+ldb_dn_new: struct ldb_dn *(TALLOC_CTX *, struct ldb_context *, const char *)
+ldb_dn_new_fmt: struct ldb_dn *(TALLOC_CTX *, struct ldb_context *, const char *, ...)
 ldb_dn_remove_base_components: bool (struct ldb_dn *, unsigned int)
 ldb_dn_remove_child_components: bool (struct ldb_dn *, unsigned int)
 ldb_dn_remove_extended_components: void (struct ldb_dn *)
@@ -74,10 +74,11 @@ ldb_dn_set_extended_component: int (struct ldb_dn *, const char *, const struct
 ldb_dn_update_components: int (struct ldb_dn *, const struct ldb_dn *)
 ldb_dn_validate: bool (struct ldb_dn *)
 ldb_dump_results: void (struct ldb_context *, struct ldb_result *, FILE *)
+ldb_error_at: int (struct ldb_context *, int, const char *, const char *, int)
 ldb_errstring: const char *(struct ldb_context *)
 ldb_extended: int (struct ldb_context *, const char *, void *, struct ldb_result **)
 ldb_extended_default_callback: int (struct ldb_request *, struct ldb_reply *)
-ldb_filter_from_tree: char *(void *, struct ldb_parse_tree *)
+ldb_filter_from_tree: char *(TALLOC_CTX *, struct ldb_parse_tree *)
 ldb_get_config_basedn: struct ldb_dn *(struct ldb_context *)
 ldb_get_create_perms: unsigned int (struct ldb_context *)
 ldb_get_default_basedn: struct ldb_dn *(struct ldb_context *)
@@ -104,6 +105,7 @@ ldb_load_modules: int (struct ldb_context *, const char **)
 ldb_load_modules_list: int (struct ldb_context *, const char **, struct ldb_module *, struct ldb_module **)
 ldb_map_init: int (struct ldb_module *, const struct ldb_map_attribute *, const struct ldb_map_objectclass *, const char * const *, const char *, const char *)
 ldb_match_msg: int (struct ldb_context *, const struct ldb_message *, const struct ldb_parse_tree *, struct ldb_dn *, enum ldb_scope)
+ldb_match_msg_error: int (struct ldb_context *, const struct ldb_message *, const struct ldb_parse_tree *, struct ldb_dn *, enum ldb_scope, bool *)
 ldb_match_msg_objectclass: int (const struct ldb_message *, const char *)
 ldb_mod_register_control: int (struct ldb_module *, const char *)
 ldb_modify: int (struct ldb_context *, const struct ldb_message *)
@@ -132,10 +134,11 @@ ldb_msg_copy: struct ldb_message *(TALLOC_CTX *, const struct ldb_message *)
 ldb_msg_copy_attr: int (struct ldb_message *, const char *, const char *)
 ldb_msg_copy_shallow: struct ldb_message *(TALLOC_CTX *, const struct ldb_message *)
 ldb_msg_diff: struct ldb_message *(struct ldb_context *, struct ldb_message *, struct ldb_message *)
+ldb_msg_difference: int (struct ldb_context *, TALLOC_CTX *, struct ldb_message *, struct ldb_message *, struct ldb_message **)
 ldb_msg_element_compare: int (struct ldb_message_element *, struct ldb_message_element *)
 ldb_msg_element_compare_name: int (struct ldb_message_element *, struct ldb_message_element *)
 ldb_msg_find_attr_as_bool: int (const struct ldb_message *, const char *, int)
-ldb_msg_find_attr_as_dn: struct ldb_dn *(struct ldb_context *, void *, const struct ldb_message *, const char *)
+ldb_msg_find_attr_as_dn: struct ldb_dn *(struct ldb_context *, TALLOC_CTX *, const struct ldb_message *, const char *)
 ldb_msg_find_attr_as_double: double (const struct ldb_message *, const char *, double)
 ldb_msg_find_attr_as_int: int (const struct ldb_message *, const char *, int)
 ldb_msg_find_attr_as_int64: int64_t (const struct ldb_message *, const char *, int64_t)
@@ -145,7 +148,8 @@ ldb_msg_find_attr_as_uint64: uint64_t (const struct ldb_message *, const char *,
 ldb_msg_find_element: struct ldb_message_element *(const struct ldb_message *, const char *)
 ldb_msg_find_ldb_val: const struct ldb_val *(const struct ldb_message *, const char *)
 ldb_msg_find_val: struct ldb_val *(const struct ldb_message_element *, struct ldb_val *)
-ldb_msg_new: struct ldb_message *(void *)
+ldb_msg_new: struct ldb_message *(TALLOC_CTX *)
+ldb_msg_normalize: int (struct ldb_context *, TALLOC_CTX *, const struct ldb_message *, struct ldb_message **)
 ldb_msg_remove_attr: void (struct ldb_message *, const char *)


-- 
Samba Shared Repository


More information about the samba-cvs mailing list