[SCM] Samba Shared Repository - branch master updated

Andrew Tridgell tridge at samba.org
Mon Nov 1 07:48:01 MDT 2010


The branch, master has been updated
       via  9b0f8a8 s4-ldb: use ldb_set_modules_dir() to load additional ldb modules
       via  9103047 s4-ldb: enable version checking in dsdb ldb modules
       via  a386ca8 s4-ldb: enable ldb module version checking
       via  8366bb4 s4-ldb: added support for ldb module version checking
      from  1ccb69a s3:winbindd: fix query_user for users with NULL full name.

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


- Log -----------------------------------------------------------------
commit 9b0f8a8e5ff578c0eb231fea80943f2a72dd7286
Author: Andrew Tridgell <tridge at samba.org>
Date:   Mon Nov 1 22:48:16 2010 +1100

    s4-ldb: use ldb_set_modules_dir() to load additional ldb modules
    
    this allows ldb_wrap to enable s4 modules in a standalone ldb install
    without any additional installation
    
    Autobuild-User: Andrew Tridgell <tridge at samba.org>
    Autobuild-Date: Mon Nov  1 13:47:33 UTC 2010 on sn-devel-104

commit 91030477825112d50c6f4e72f9ece2a51a79230a
Author: Andrew Tridgell <tridge at samba.org>
Date:   Mon Nov 1 22:30:45 2010 +1100

    s4-ldb: enable version checking in dsdb ldb modules

commit a386ca85590a0ee18c1d98c80c6b1ec4faab31a7
Author: Andrew Tridgell <tridge at samba.org>
Date:   Mon Nov 1 22:30:23 2010 +1100

    s4-ldb: enable ldb module version checking

commit 8366bb495abefe5cc1d0cb120530a1933d942fbf
Author: Andrew Tridgell <tridge at samba.org>
Date:   Mon Nov 1 22:28:59 2010 +1100

    s4-ldb: added support for ldb module version checking

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

Summary of changes:
 source4/dsdb/samdb/ldb_modules/acl.c               |    1 +
 source4/dsdb/samdb/ldb_modules/acl_read.c          |    1 +
 source4/dsdb/samdb/ldb_modules/anr.c               |    1 +
 source4/dsdb/samdb/ldb_modules/descriptor.c        |    1 +
 source4/dsdb/samdb/ldb_modules/dsdb_cache.c        |    1 +
 source4/dsdb/samdb/ldb_modules/extended_dn_in.c    |    1 +
 source4/dsdb/samdb/ldb_modules/extended_dn_out.c   |    3 ++-
 source4/dsdb/samdb/ldb_modules/extended_dn_store.c |    1 +
 source4/dsdb/samdb/ldb_modules/instancetype.c      |    1 +
 source4/dsdb/samdb/ldb_modules/lazy_commit.c       |    2 ++
 source4/dsdb/samdb/ldb_modules/linked_attributes.c |    1 +
 source4/dsdb/samdb/ldb_modules/local_password.c    |    1 +
 source4/dsdb/samdb/ldb_modules/naming_fsmo.c       |    1 +
 source4/dsdb/samdb/ldb_modules/new_partition.c     |    1 +
 source4/dsdb/samdb/ldb_modules/objectclass.c       |    1 +
 source4/dsdb/samdb/ldb_modules/objectclass_attrs.c |    1 +
 source4/dsdb/samdb/ldb_modules/objectguid.c        |    1 +
 source4/dsdb/samdb/ldb_modules/operational.c       |    1 +
 source4/dsdb/samdb/ldb_modules/partition.c         |    1 +
 source4/dsdb/samdb/ldb_modules/password_hash.c     |    1 +
 source4/dsdb/samdb/ldb_modules/pdc_fsmo.c          |    1 +
 source4/dsdb/samdb/ldb_modules/proxy.c             |    1 +
 source4/dsdb/samdb/ldb_modules/ranged_results.c    |    1 +
 source4/dsdb/samdb/ldb_modules/repl_meta_data.c    |    1 +
 source4/dsdb/samdb/ldb_modules/resolve_oids.c      |    1 +
 source4/dsdb/samdb/ldb_modules/rootdse.c           |    1 +
 source4/dsdb/samdb/ldb_modules/samba3sam.c         |    1 +
 source4/dsdb/samdb/ldb_modules/samba3sid.c         |    1 +
 source4/dsdb/samdb/ldb_modules/samba_dsdb.c        |    1 +
 source4/dsdb/samdb/ldb_modules/samba_secrets.c     |    1 +
 source4/dsdb/samdb/ldb_modules/samldb.c            |    1 +
 source4/dsdb/samdb/ldb_modules/schema_data.c       |    1 +
 source4/dsdb/samdb/ldb_modules/schema_load.c       |    1 +
 source4/dsdb/samdb/ldb_modules/show_deleted.c      |    1 +
 source4/dsdb/samdb/ldb_modules/simple_dn.c         |    1 +
 source4/dsdb/samdb/ldb_modules/simple_ldap_map.c   |    3 ++-
 source4/dsdb/samdb/ldb_modules/subtree_delete.c    |    1 +
 source4/dsdb/samdb/ldb_modules/subtree_rename.c    |    1 +
 source4/dsdb/samdb/ldb_modules/update_keytab.c     |    1 +
 source4/lib/ldb/common/ldb_modules.c               |   18 ++++++++++++------
 source4/lib/ldb/include/ldb_module.h               |    7 +++++++
 source4/lib/ldb/include/ldb_private.h              |    2 --
 source4/lib/ldb/ldb_ldap/ldb_ldap.c                |    3 ++-
 source4/lib/ldb/ldb_sqlite3/ldb_sqlite3.c          |    9 +++++----
 source4/lib/ldb/ldb_tdb/ldb_tdb.c                  |    1 +
 source4/lib/ldb/modules/asq.c                      |    4 +++-
 source4/lib/ldb/modules/paged_results.c            |    1 +
 source4/lib/ldb/modules/paged_searches.c           |    1 +
 source4/lib/ldb/modules/rdn_name.c                 |    1 +
 source4/lib/ldb/modules/skel.c                     |    2 ++
 source4/lib/ldb/modules/sort.c                     |    2 ++
 source4/lib/ldb/tests/sample_module.c              |    2 ++
 source4/lib/ldb/wscript                            |    6 ++++--
 source4/nbt_server/wins/wins_ldb.c                 |    3 ++-
 54 files changed, 87 insertions(+), 19 deletions(-)


Changeset truncated at 500 lines:

diff --git a/source4/dsdb/samdb/ldb_modules/acl.c b/source4/dsdb/samdb/ldb_modules/acl.c
index 63e3f65..0a7f431 100644
--- a/source4/dsdb/samdb/ldb_modules/acl.c
+++ b/source4/dsdb/samdb/ldb_modules/acl.c
@@ -1184,5 +1184,6 @@ static const struct ldb_module_ops ldb_acl_module_ops = {
 
 int ldb_acl_module_init(const char *version)
 {
+	LDB_MODULE_CHECK_VERSION(version);
 	return ldb_register_module(&ldb_acl_module_ops);
 }
diff --git a/source4/dsdb/samdb/ldb_modules/acl_read.c b/source4/dsdb/samdb/ldb_modules/acl_read.c
index 1bd9c5e..401e0dc 100644
--- a/source4/dsdb/samdb/ldb_modules/acl_read.c
+++ b/source4/dsdb/samdb/ldb_modules/acl_read.c
@@ -308,5 +308,6 @@ static const struct ldb_module_ops ldb_aclread_module_ops = {
 
 int ldb_aclread_module_init(const char *version)
 {
+	LDB_MODULE_CHECK_VERSION(version);
 	return ldb_register_module(&ldb_aclread_module_ops);
 }
diff --git a/source4/dsdb/samdb/ldb_modules/anr.c b/source4/dsdb/samdb/ldb_modules/anr.c
index 9291dd5..ec9d825 100644
--- a/source4/dsdb/samdb/ldb_modules/anr.c
+++ b/source4/dsdb/samdb/ldb_modules/anr.c
@@ -372,5 +372,6 @@ static const struct ldb_module_ops ldb_anr_module_ops = {
 
 int ldb_anr_module_init(const char *version)
 {
+	LDB_MODULE_CHECK_VERSION(version);
 	return ldb_register_module(&ldb_anr_module_ops);
 }
diff --git a/source4/dsdb/samdb/ldb_modules/descriptor.c b/source4/dsdb/samdb/ldb_modules/descriptor.c
index 7aee406..c0b79f6 100644
--- a/source4/dsdb/samdb/ldb_modules/descriptor.c
+++ b/source4/dsdb/samdb/ldb_modules/descriptor.c
@@ -905,5 +905,6 @@ static const struct ldb_module_ops ldb_descriptor_module_ops = {
 
 int ldb_descriptor_module_init(const char *version)
 {
+	LDB_MODULE_CHECK_VERSION(version);
 	return ldb_register_module(&ldb_descriptor_module_ops);
 }
diff --git a/source4/dsdb/samdb/ldb_modules/dsdb_cache.c b/source4/dsdb/samdb/ldb_modules/dsdb_cache.c
index 2a1b29d..b252fff 100644
--- a/source4/dsdb/samdb/ldb_modules/dsdb_cache.c
+++ b/source4/dsdb/samdb/ldb_modules/dsdb_cache.c
@@ -43,5 +43,6 @@ static const struct ldb_module_ops ldb_dsdb_cache_module_ops = {
 
 int ldb_dsdb_cache_module_init(const char *version)
 {
+	LDB_MODULE_CHECK_VERSION(version);
 	return ldb_register_module(&ldb_dsdb_cache_module_ops);
 }
diff --git a/source4/dsdb/samdb/ldb_modules/extended_dn_in.c b/source4/dsdb/samdb/ldb_modules/extended_dn_in.c
index 60f6ec4..39e69d9 100644
--- a/source4/dsdb/samdb/ldb_modules/extended_dn_in.c
+++ b/source4/dsdb/samdb/ldb_modules/extended_dn_in.c
@@ -414,5 +414,6 @@ static const struct ldb_module_ops ldb_extended_dn_in_module_ops = {
 
 int ldb_extended_dn_in_module_init(const char *version)
 {
+	LDB_MODULE_CHECK_VERSION(version);
 	return ldb_register_module(&ldb_extended_dn_in_module_ops);
 }
diff --git a/source4/dsdb/samdb/ldb_modules/extended_dn_out.c b/source4/dsdb/samdb/ldb_modules/extended_dn_out.c
index eab14ed..052563f 100644
--- a/source4/dsdb/samdb/ldb_modules/extended_dn_out.c
+++ b/source4/dsdb/samdb/ldb_modules/extended_dn_out.c
@@ -880,9 +880,10 @@ static const struct ldb_module_ops ldb_extended_dn_out_fds_module_ops = {
 /*
   initialise the module
  */
-_PUBLIC_ int ldb_extended_dn_out_module_init(const char *ldb_version)
+_PUBLIC_ int ldb_extended_dn_out_module_init(const char *version)
 {
 	int ret;
+	LDB_MODULE_CHECK_VERSION(version);
 	ret = ldb_register_module(&ldb_extended_dn_out_ldb_module_ops);
 	if (ret != LDB_SUCCESS) {
 		return ret;
diff --git a/source4/dsdb/samdb/ldb_modules/extended_dn_store.c b/source4/dsdb/samdb/ldb_modules/extended_dn_store.c
index 471020d..e38a451 100644
--- a/source4/dsdb/samdb/ldb_modules/extended_dn_store.c
+++ b/source4/dsdb/samdb/ldb_modules/extended_dn_store.c
@@ -456,5 +456,6 @@ static const struct ldb_module_ops ldb_extended_dn_store_module_ops = {
 
 int ldb_extended_dn_store_module_init(const char *version)
 {
+	LDB_MODULE_CHECK_VERSION(version);
 	return ldb_register_module(&ldb_extended_dn_store_module_ops);
 }
diff --git a/source4/dsdb/samdb/ldb_modules/instancetype.c b/source4/dsdb/samdb/ldb_modules/instancetype.c
index 7374103..c557fe1 100644
--- a/source4/dsdb/samdb/ldb_modules/instancetype.c
+++ b/source4/dsdb/samdb/ldb_modules/instancetype.c
@@ -204,5 +204,6 @@ static const struct ldb_module_ops ldb_instancetype_module_ops = {
 
 int ldb_instancetype_module_init(const char *version)
 {
+	LDB_MODULE_CHECK_VERSION(version);
 	return ldb_register_module(&ldb_instancetype_module_ops);
 }
diff --git a/source4/dsdb/samdb/ldb_modules/lazy_commit.c b/source4/dsdb/samdb/ldb_modules/lazy_commit.c
index d0efea2..24fc6dd 100644
--- a/source4/dsdb/samdb/ldb_modules/lazy_commit.c
+++ b/source4/dsdb/samdb/ldb_modules/lazy_commit.c
@@ -27,6 +27,7 @@
  *  Author: Andrew Bartlett
  */
 
+#include "includes.h"
 #include "ldb_module.h"
 #include "dsdb/samdb/ldb_modules/util.h"
 
@@ -122,5 +123,6 @@ static const struct ldb_module_ops ldb_lazy_commit_module_ops = {
 
 int ldb_lazy_commit_module_init(const char *version)
 {
+	LDB_MODULE_CHECK_VERSION(version);
 	return ldb_register_module(&ldb_lazy_commit_module_ops);
 }
diff --git a/source4/dsdb/samdb/ldb_modules/linked_attributes.c b/source4/dsdb/samdb/ldb_modules/linked_attributes.c
index 18faa73..d54060b 100644
--- a/source4/dsdb/samdb/ldb_modules/linked_attributes.c
+++ b/source4/dsdb/samdb/ldb_modules/linked_attributes.c
@@ -1090,5 +1090,6 @@ static const struct ldb_module_ops ldb_linked_attributes_module_ops = {
 
 int ldb_linked_attributes_module_init(const char *version)
 {
+	LDB_MODULE_CHECK_VERSION(version);
 	return ldb_register_module(&ldb_linked_attributes_module_ops);
 }
diff --git a/source4/dsdb/samdb/ldb_modules/local_password.c b/source4/dsdb/samdb/ldb_modules/local_password.c
index ed267e5..e1b3054 100644
--- a/source4/dsdb/samdb/ldb_modules/local_password.c
+++ b/source4/dsdb/samdb/ldb_modules/local_password.c
@@ -1108,5 +1108,6 @@ static const struct ldb_module_ops ldb_local_password_module_ops = {
 
 int ldb_local_password_module_init(const char *version)
 {
+	LDB_MODULE_CHECK_VERSION(version);
 	return ldb_register_module(&ldb_local_password_module_ops);
 }
diff --git a/source4/dsdb/samdb/ldb_modules/naming_fsmo.c b/source4/dsdb/samdb/ldb_modules/naming_fsmo.c
index 4b30cfe..b309035 100644
--- a/source4/dsdb/samdb/ldb_modules/naming_fsmo.c
+++ b/source4/dsdb/samdb/ldb_modules/naming_fsmo.c
@@ -103,5 +103,6 @@ static const struct ldb_module_ops ldb_naming_fsmo_module_ops = {
 
 int ldb_naming_fsmo_module_init(const char *version)
 {
+	LDB_MODULE_CHECK_VERSION(version);
 	return ldb_register_module(&ldb_naming_fsmo_module_ops);
 }
diff --git a/source4/dsdb/samdb/ldb_modules/new_partition.c b/source4/dsdb/samdb/ldb_modules/new_partition.c
index 0c5082b..8eb3de8 100644
--- a/source4/dsdb/samdb/ldb_modules/new_partition.c
+++ b/source4/dsdb/samdb/ldb_modules/new_partition.c
@@ -202,5 +202,6 @@ static const struct ldb_module_ops ldb_new_partition_module_ops = {
 
 int ldb_new_partition_module_init(const char *version)
 {
+	LDB_MODULE_CHECK_VERSION(version);
 	return ldb_register_module(&ldb_new_partition_module_ops);
 }
diff --git a/source4/dsdb/samdb/ldb_modules/objectclass.c b/source4/dsdb/samdb/ldb_modules/objectclass.c
index d58cf53..474e848 100644
--- a/source4/dsdb/samdb/ldb_modules/objectclass.c
+++ b/source4/dsdb/samdb/ldb_modules/objectclass.c
@@ -1519,5 +1519,6 @@ static const struct ldb_module_ops ldb_objectclass_module_ops = {
 
 int ldb_objectclass_module_init(const char *version)
 {
+	LDB_MODULE_CHECK_VERSION(version);
 	return ldb_register_module(&ldb_objectclass_module_ops);
 }
diff --git a/source4/dsdb/samdb/ldb_modules/objectclass_attrs.c b/source4/dsdb/samdb/ldb_modules/objectclass_attrs.c
index abc64be..cb4f7d9 100644
--- a/source4/dsdb/samdb/ldb_modules/objectclass_attrs.c
+++ b/source4/dsdb/samdb/ldb_modules/objectclass_attrs.c
@@ -474,5 +474,6 @@ static const struct ldb_module_ops ldb_objectclass_attrs_module_ops = {
 
 int ldb_objectclass_attrs_module_init(const char *version)
 {
+	LDB_MODULE_CHECK_VERSION(version);
 	return ldb_register_module(&ldb_objectclass_attrs_module_ops);
 }
diff --git a/source4/dsdb/samdb/ldb_modules/objectguid.c b/source4/dsdb/samdb/ldb_modules/objectguid.c
index 24103bd..b5d814e 100644
--- a/source4/dsdb/samdb/ldb_modules/objectguid.c
+++ b/source4/dsdb/samdb/ldb_modules/objectguid.c
@@ -283,5 +283,6 @@ static const struct ldb_module_ops ldb_objectguid_module_ops = {
 
 int ldb_objectguid_module_init(const char *version)
 {
+	LDB_MODULE_CHECK_VERSION(version);
 	return ldb_register_module(&ldb_objectguid_module_ops);
 }
diff --git a/source4/dsdb/samdb/ldb_modules/operational.c b/source4/dsdb/samdb/ldb_modules/operational.c
index ed4ce65..3151061 100644
--- a/source4/dsdb/samdb/ldb_modules/operational.c
+++ b/source4/dsdb/samdb/ldb_modules/operational.c
@@ -867,5 +867,6 @@ static const struct ldb_module_ops ldb_operational_module_ops = {
 
 int ldb_operational_module_init(const char *version)
 {
+	LDB_MODULE_CHECK_VERSION(version);
 	return ldb_register_module(&ldb_operational_module_ops);
 }
diff --git a/source4/dsdb/samdb/ldb_modules/partition.c b/source4/dsdb/samdb/ldb_modules/partition.c
index aecc27f..7732bcf 100644
--- a/source4/dsdb/samdb/ldb_modules/partition.c
+++ b/source4/dsdb/samdb/ldb_modules/partition.c
@@ -1212,5 +1212,6 @@ static const struct ldb_module_ops ldb_partition_module_ops = {
 
 int ldb_partition_module_init(const char *version)
 {
+	LDB_MODULE_CHECK_VERSION(version);
 	return ldb_register_module(&ldb_partition_module_ops);
 }
diff --git a/source4/dsdb/samdb/ldb_modules/password_hash.c b/source4/dsdb/samdb/ldb_modules/password_hash.c
index 41be2f6..2c7f436 100644
--- a/source4/dsdb/samdb/ldb_modules/password_hash.c
+++ b/source4/dsdb/samdb/ldb_modules/password_hash.c
@@ -2825,5 +2825,6 @@ static const struct ldb_module_ops ldb_password_hash_module_ops = {
 
 int ldb_password_hash_module_init(const char *version)
 {
+	LDB_MODULE_CHECK_VERSION(version);
 	return ldb_register_module(&ldb_password_hash_module_ops);
 }
diff --git a/source4/dsdb/samdb/ldb_modules/pdc_fsmo.c b/source4/dsdb/samdb/ldb_modules/pdc_fsmo.c
index 63800d1..5c7d400 100644
--- a/source4/dsdb/samdb/ldb_modules/pdc_fsmo.c
+++ b/source4/dsdb/samdb/ldb_modules/pdc_fsmo.c
@@ -108,5 +108,6 @@ static const struct ldb_module_ops ldb_pdc_fsmo_module_ops = {
 
 int ldb_pdc_fsmo_module_init(const char *version)
 {
+	LDB_MODULE_CHECK_VERSION(version);
 	return ldb_register_module(&ldb_pdc_fsmo_module_ops);
 }
diff --git a/source4/dsdb/samdb/ldb_modules/proxy.c b/source4/dsdb/samdb/ldb_modules/proxy.c
index 4a73fe9..6fba24f 100644
--- a/source4/dsdb/samdb/ldb_modules/proxy.c
+++ b/source4/dsdb/samdb/ldb_modules/proxy.c
@@ -401,5 +401,6 @@ static const struct ldb_module_ops ldb_proxy_module_ops = {
 
 int ldb_proxy_module_init(const char *version)
 {
+	LDB_MODULE_CHECK_VERSION(version);
 	return ldb_register_module(&ldb_proxy_module_ops);
 }
diff --git a/source4/dsdb/samdb/ldb_modules/ranged_results.c b/source4/dsdb/samdb/ldb_modules/ranged_results.c
index e1ab18e..b3e79d0 100644
--- a/source4/dsdb/samdb/ldb_modules/ranged_results.c
+++ b/source4/dsdb/samdb/ldb_modules/ranged_results.c
@@ -253,5 +253,6 @@ static const struct ldb_module_ops ldb_ranged_results_module_ops = {
 
 int ldb_ranged_results_module_init(const char *version)
 {
+	LDB_MODULE_CHECK_VERSION(version);
 	return ldb_register_module(&ldb_ranged_results_module_ops);
 }
diff --git a/source4/dsdb/samdb/ldb_modules/repl_meta_data.c b/source4/dsdb/samdb/ldb_modules/repl_meta_data.c
index 1086166..d7ad46f 100644
--- a/source4/dsdb/samdb/ldb_modules/repl_meta_data.c
+++ b/source4/dsdb/samdb/ldb_modules/repl_meta_data.c
@@ -4210,5 +4210,6 @@ static const struct ldb_module_ops ldb_repl_meta_data_module_ops = {
 
 int ldb_repl_meta_data_module_init(const char *version)
 {
+	LDB_MODULE_CHECK_VERSION(version);
 	return ldb_register_module(&ldb_repl_meta_data_module_ops);
 }
diff --git a/source4/dsdb/samdb/ldb_modules/resolve_oids.c b/source4/dsdb/samdb/ldb_modules/resolve_oids.c
index 19d7454..71f9a30 100644
--- a/source4/dsdb/samdb/ldb_modules/resolve_oids.c
+++ b/source4/dsdb/samdb/ldb_modules/resolve_oids.c
@@ -701,5 +701,6 @@ static const struct ldb_module_ops ldb_resolve_oids_module_ops = {
 
 int ldb_resolve_oids_module_init(const char *version)
 {
+	LDB_MODULE_CHECK_VERSION(version);
 	return ldb_register_module(&ldb_resolve_oids_module_ops);
 }
diff --git a/source4/dsdb/samdb/ldb_modules/rootdse.c b/source4/dsdb/samdb/ldb_modules/rootdse.c
index 8eadb32..8a3f0cf 100644
--- a/source4/dsdb/samdb/ldb_modules/rootdse.c
+++ b/source4/dsdb/samdb/ldb_modules/rootdse.c
@@ -1238,5 +1238,6 @@ static const struct ldb_module_ops ldb_rootdse_module_ops = {
 
 int ldb_rootdse_module_init(const char *version)
 {
+	LDB_MODULE_CHECK_VERSION(version);
 	return ldb_register_module(&ldb_rootdse_module_ops);
 }
diff --git a/source4/dsdb/samdb/ldb_modules/samba3sam.c b/source4/dsdb/samdb/ldb_modules/samba3sam.c
index 5421252..318d605 100644
--- a/source4/dsdb/samdb/ldb_modules/samba3sam.c
+++ b/source4/dsdb/samdb/ldb_modules/samba3sam.c
@@ -931,5 +931,6 @@ static const struct ldb_module_ops ldb_samba3sam_module_ops = {
 
 int ldb_samba3sam_module_init(const char *version)
 {
+	LDB_MODULE_CHECK_VERSION(version);
 	return ldb_register_module(&ldb_samba3sam_module_ops);
 }
diff --git a/source4/dsdb/samdb/ldb_modules/samba3sid.c b/source4/dsdb/samdb/ldb_modules/samba3sid.c
index 3fb4e98..76bcfce 100644
--- a/source4/dsdb/samdb/ldb_modules/samba3sid.c
+++ b/source4/dsdb/samdb/ldb_modules/samba3sid.c
@@ -200,5 +200,6 @@ static const struct ldb_module_ops ldb_samba3sid_module_ops = {
 
 int ldb_samba3sid_module_init(const char *version)
 {
+	LDB_MODULE_CHECK_VERSION(version);
 	return ldb_register_module(&ldb_samba3sid_module_ops);
 }
diff --git a/source4/dsdb/samdb/ldb_modules/samba_dsdb.c b/source4/dsdb/samdb/ldb_modules/samba_dsdb.c
index 871a5bd..da20487 100644
--- a/source4/dsdb/samdb/ldb_modules/samba_dsdb.c
+++ b/source4/dsdb/samdb/ldb_modules/samba_dsdb.c
@@ -359,5 +359,6 @@ static const struct ldb_module_ops ldb_samba_dsdb_module_ops = {
 
 int ldb_samba_dsdb_module_init(const char *version)
 {
+	LDB_MODULE_CHECK_VERSION(version);
 	return ldb_register_module(&ldb_samba_dsdb_module_ops);
 }
diff --git a/source4/dsdb/samdb/ldb_modules/samba_secrets.c b/source4/dsdb/samdb/ldb_modules/samba_secrets.c
index 8a0faae..ae3b7fc 100644
--- a/source4/dsdb/samdb/ldb_modules/samba_secrets.c
+++ b/source4/dsdb/samdb/ldb_modules/samba_secrets.c
@@ -99,5 +99,6 @@ static const struct ldb_module_ops ldb_samba_secrets_module_ops = {
 
 int ldb_samba_secrets_module_init(const char *version)
 {
+	LDB_MODULE_CHECK_VERSION(version);
 	return ldb_register_module(&ldb_samba_secrets_module_ops);
 }
diff --git a/source4/dsdb/samdb/ldb_modules/samldb.c b/source4/dsdb/samdb/ldb_modules/samldb.c
index c97b570..43602ce 100644
--- a/source4/dsdb/samdb/ldb_modules/samldb.c
+++ b/source4/dsdb/samdb/ldb_modules/samldb.c
@@ -2000,5 +2000,6 @@ static const struct ldb_module_ops ldb_samldb_module_ops = {
 
 int ldb_samldb_module_init(const char *version)
 {
+	LDB_MODULE_CHECK_VERSION(version);
 	return ldb_register_module(&ldb_samldb_module_ops);
 }
diff --git a/source4/dsdb/samdb/ldb_modules/schema_data.c b/source4/dsdb/samdb/ldb_modules/schema_data.c
index 0f52e47..eeb7c46 100644
--- a/source4/dsdb/samdb/ldb_modules/schema_data.c
+++ b/source4/dsdb/samdb/ldb_modules/schema_data.c
@@ -485,5 +485,6 @@ static const struct ldb_module_ops ldb_schema_data_module_ops = {
 
 int ldb_schema_data_module_init(const char *version)
 {
+	LDB_MODULE_CHECK_VERSION(version);
 	return ldb_register_module(&ldb_schema_data_module_ops);
 }
diff --git a/source4/dsdb/samdb/ldb_modules/schema_load.c b/source4/dsdb/samdb/ldb_modules/schema_load.c
index a02d728..086b2bf 100644
--- a/source4/dsdb/samdb/ldb_modules/schema_load.c
+++ b/source4/dsdb/samdb/ldb_modules/schema_load.c
@@ -365,5 +365,6 @@ static const struct ldb_module_ops ldb_schema_load_module_ops = {
 
 int ldb_schema_load_module_init(const char *version)
 {
+	LDB_MODULE_CHECK_VERSION(version);
 	return ldb_register_module(&ldb_schema_load_module_ops);
 }
diff --git a/source4/dsdb/samdb/ldb_modules/show_deleted.c b/source4/dsdb/samdb/ldb_modules/show_deleted.c
index 6dc1d73..25e4630 100644
--- a/source4/dsdb/samdb/ldb_modules/show_deleted.c
+++ b/source4/dsdb/samdb/ldb_modules/show_deleted.c
@@ -172,5 +172,6 @@ static const struct ldb_module_ops ldb_show_deleted_module_ops = {
 
 int ldb_show_deleted_module_init(const char *version)
 {
+	LDB_MODULE_CHECK_VERSION(version);
 	return ldb_register_module(&ldb_show_deleted_module_ops);
 }
diff --git a/source4/dsdb/samdb/ldb_modules/simple_dn.c b/source4/dsdb/samdb/ldb_modules/simple_dn.c
index 5b30ea9..c7b800f 100644
--- a/source4/dsdb/samdb/ldb_modules/simple_dn.c
+++ b/source4/dsdb/samdb/ldb_modules/simple_dn.c
@@ -74,5 +74,6 @@ static const struct ldb_module_ops ldb_simple_dn_module_ops = {
 
 int ldb_simple_dn_module_init(const char *version)
 {
+	LDB_MODULE_CHECK_VERSION(version);
 	return ldb_register_module(&ldb_simple_dn_module_ops);
 }
diff --git a/source4/dsdb/samdb/ldb_modules/simple_ldap_map.c b/source4/dsdb/samdb/ldb_modules/simple_ldap_map.c
index 5d09bda..ccd47dc 100644
--- a/source4/dsdb/samdb/ldb_modules/simple_ldap_map.c
+++ b/source4/dsdb/samdb/ldb_modules/simple_ldap_map.c
@@ -937,9 +937,10 @@ static const struct ldb_module_ops ldb_nsuniqueid_module_ops = {
 /*
   initialise the module
  */
-_PUBLIC_ int ldb_simple_ldap_map_module_init(const char *ldb_version)
+_PUBLIC_ int ldb_simple_ldap_map_module_init(const char *version)
 {
 	int ret;
+	LDB_MODULE_CHECK_VERSION(version);
 	ret = ldb_register_module(&ldb_entryuuid_module_ops);
 	if (ret != LDB_SUCCESS) {
 		return ret;
diff --git a/source4/dsdb/samdb/ldb_modules/subtree_delete.c b/source4/dsdb/samdb/ldb_modules/subtree_delete.c
index aa03ab2..07a7592 100644
--- a/source4/dsdb/samdb/ldb_modules/subtree_delete.c
+++ b/source4/dsdb/samdb/ldb_modules/subtree_delete.c
@@ -118,5 +118,6 @@ static const struct ldb_module_ops ldb_subtree_delete_module_ops = {
 
 int ldb_subtree_delete_module_init(const char *version)
 {
+	LDB_MODULE_CHECK_VERSION(version);
 	return ldb_register_module(&ldb_subtree_delete_module_ops);
 }
diff --git a/source4/dsdb/samdb/ldb_modules/subtree_rename.c b/source4/dsdb/samdb/ldb_modules/subtree_rename.c
index ce444f8..64bbc08 100644
--- a/source4/dsdb/samdb/ldb_modules/subtree_rename.c
+++ b/source4/dsdb/samdb/ldb_modules/subtree_rename.c
@@ -451,5 +451,6 @@ static const struct ldb_module_ops ldb_subtree_rename_module_ops = {
 
 int ldb_subtree_rename_module_init(const char *version)
 {
+	LDB_MODULE_CHECK_VERSION(version);
 	return ldb_register_module(&ldb_subtree_rename_module_ops);
 }
diff --git a/source4/dsdb/samdb/ldb_modules/update_keytab.c b/source4/dsdb/samdb/ldb_modules/update_keytab.c
index 2bb949a..e39b260 100644
--- a/source4/dsdb/samdb/ldb_modules/update_keytab.c
+++ b/source4/dsdb/samdb/ldb_modules/update_keytab.c
@@ -446,5 +446,6 @@ static const struct ldb_module_ops ldb_update_keytab_module_ops = {
 
 int ldb_update_keytab_module_init(const char *version)
 {
+	LDB_MODULE_CHECK_VERSION(version);
 	return ldb_register_module(&ldb_update_keytab_module_ops);
 }
diff --git a/source4/lib/ldb/common/ldb_modules.c b/source4/lib/ldb/common/ldb_modules.c
index 5f01082..1eeede2 100644
--- a/source4/lib/ldb/common/ldb_modules.c
+++ b/source4/lib/ldb/common/ldb_modules.c
@@ -35,12 +35,6 @@
 #include "dlinklist.h"
 #include "system/dir.h"
 
-void ldb_set_modules_dir(struct ldb_context *ldb, const char *path)
-{
-	talloc_free(ldb->modules_dir);
-	ldb->modules_dir = talloc_strdup(ldb, path);
-}
-
 static char *ldb_modules_strdup_no_spaces(TALLOC_CTX *mem_ctx, const char *string)
 {
 	size_t i, len;
@@ -978,6 +972,18 @@ static int ldb_modules_load_dir(const char *modules_dir, const char *version)
 	return LDB_SUCCESS;
 }
 
+/* 
+   load any additional modules from the given directory 
+*/
+void ldb_set_modules_dir(struct ldb_context *ldb, const char *path)
+{
+	int ret = ldb_modules_load_dir(path, LDB_VERSION);
+	if (ret != LDB_SUCCESS) {
+		ldb_asprintf_errstring(ldb, "Failed to load modules from: %s\n", path);
+	}
+}
+
+
 /*
   load all modules static (builtin) modules
  */
diff --git a/source4/lib/ldb/include/ldb_module.h b/source4/lib/ldb/include/ldb_module.h
index 800bf72..fbea707 100644
--- a/source4/lib/ldb/include/ldb_module.h
+++ b/source4/lib/ldb/include/ldb_module.h
@@ -252,4 +252,11 @@ int ldb_register_hook(ldb_hook_fn hook_fn);
  */
 int ldb_modules_hook(struct ldb_context *ldb, enum ldb_module_hook_type t);
 
+#define LDB_MODULE_CHECK_VERSION(version) do { \
+ if (strcmp(version, LDB_VERSION) != 0) { \
+	fprintf(stderr, "ldb: module version mismatch in %s : ldb_version=%s module_version=%s\n", \
+			__FILE__, version, LDB_VERSION); \
+        return LDB_ERR_UNAVAILABLE; \
+ }} while (0)
+
 #endif
diff --git a/source4/lib/ldb/include/ldb_private.h b/source4/lib/ldb/include/ldb_private.h


-- 
Samba Shared Repository


More information about the samba-cvs mailing list