summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndrew Tridgell <tridge@samba.org>2010-11-01 22:28:59 +1100
committerAndrew Tridgell <tridge@samba.org>2010-11-01 13:05:04 +0000
commit8366bb495abefe5cc1d0cb120530a1933d942fbf (patch)
tree0042a7bbd12b14103faca5c4306c634733de5554
parent1ccb69aabb9057d272fc584d648a4ed9ffc0f3b7 (diff)
downloadsamba-8366bb495abefe5cc1d0cb120530a1933d942fbf.tar.gz
samba-8366bb495abefe5cc1d0cb120530a1933d942fbf.tar.bz2
samba-8366bb495abefe5cc1d0cb120530a1933d942fbf.zip
s4-ldb: added support for ldb module version checking
-rw-r--r--source4/lib/ldb/include/ldb_module.h7
-rw-r--r--source4/lib/ldb/wscript6
2 files changed, 11 insertions, 2 deletions
diff --git a/source4/lib/ldb/include/ldb_module.h b/source4/lib/ldb/include/ldb_module.h
index 800bf72e44..fbea70770d 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/wscript b/source4/lib/ldb/wscript
index 3204ba8e32..4ed7298434 100644
--- a/source4/lib/ldb/wscript
+++ b/source4/lib/ldb/wscript
@@ -56,6 +56,8 @@ def configure(conf):
if conf.CHECK_FUNCS_IN('ber_flush ldap_open ldap_initialize', 'lber ldap', headers='lber.h ldap.h'):
conf.env.ENABLE_LDAP_BACKEND = True
+ conf.DEFINE('LDB_VERSION', VERSION, quote=True)
+
conf.DEFINE('HAVE_CONFIG_H', 1, add_to_cflags=True)
# we don't want any libraries or modules to rely on runtime
@@ -124,7 +126,7 @@ def build(bld):
vnum=VERSION,
manpages='man/ldb.3',
abi_file = abi_file,
- abi_match = abi_match)
+ abi_match = abi_match)
bld.SAMBA_PYTHON('pyldb', 'pyldb.c',
@@ -204,7 +206,7 @@ def build(bld):
'common/ldb.c',
deps='tevent',
includes='include',
- cflags='-DLDB_MODULESDIR=\"%s\" -DLDB_VERSION=\"%s\"' % (modules_dir, VERSION))
+ cflags='-DLDB_MODULESDIR=\"%s\"' % modules_dir)
bld.SAMBA_LIBRARY('ldb-cmdline',
source='tools/ldbutil.c tools/cmdline.c',