From 8366bb495abefe5cc1d0cb120530a1933d942fbf Mon Sep 17 00:00:00 2001 From: Andrew Tridgell Date: Mon, 1 Nov 2010 22:28:59 +1100 Subject: s4-ldb: added support for ldb module version checking --- source4/lib/ldb/include/ldb_module.h | 7 +++++++ source4/lib/ldb/wscript | 6 ++++-- 2 files changed, 11 insertions(+), 2 deletions(-) (limited to 'source4/lib/ldb') 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', -- cgit