From: Jelmer Vernooij Date: Tue, 17 Jun 2008 11:48:29 +0000 (+0200) Subject: Merge branch 'v4-0-test' of ssh://git.samba.org/data/git/samba into v4-0-fixmodulesdir X-Git-Url: http://git.samba.org/?a=commitdiff_plain;h=30a33cd0a64c434d6aee551f641343c3b2a6d9ca;hp=e12c0b61573f27969a79d4c07a8fd42f6c931d7e;p=metze%2Fsamba%2Fwip.git Merge branch 'v4-0-test' of ssh://git.samba.org/data/git/samba into v4-0-fixmodulesdir --- diff --git a/source/include/includes.h b/source/include/includes.h index 1a92e4665718..df0d8f77132b 100644 --- a/source/include/includes.h +++ b/source/include/includes.h @@ -54,4 +54,10 @@ #define TALLOC_ABORT(reason) smb_panic(reason) #endif +/* this needs to be a string which is not in the C library. We + previously used "init_module", but that meant that modules which + did not define this function ended up calling the C library + function init_module() which makes a system call */ +#define SAMBA_INIT_MODULE "samba_init_module" + #endif /* _INCLUDES_H */ diff --git a/source/lib/ldb/common/ldb.c b/source/lib/ldb/common/ldb.c index d0570c538211..cac0a383d8d6 100644 --- a/source/lib/ldb/common/ldb.c +++ b/source/lib/ldb/common/ldb.c @@ -184,16 +184,6 @@ int ldb_connect_backend(struct ldb_context *ldb, fn = ldb_find_backend(backend); - if (fn == NULL) { - int (*init_fn) (void); - - init_fn = ldb_dso_load_symbol(ldb, backend, - "init_module"); - if (init_fn != NULL && init_fn() == 0) { - fn = ldb_find_backend(backend); - } - } - if (fn == NULL) { struct ldb_backend_ops *ops; char *symbol_name = talloc_asprintf(ldb, "ldb_%s_backend_ops", backend); diff --git a/source/lib/ldb/common/ldb_modules.c b/source/lib/ldb/common/ldb_modules.c index ddbe0f23a60c..fbfb5e5322fd 100644 --- a/source/lib/ldb/common/ldb_modules.c +++ b/source/lib/ldb/common/ldb_modules.c @@ -223,16 +223,6 @@ int ldb_load_modules_list(struct ldb_context *ldb, const char **module_list, str const struct ldb_module_ops *ops; ops = ldb_find_module_ops(module_list[i]); - if (ops == NULL) { - int (*init_fn) (void); - - init_fn = ldb_dso_load_symbol(ldb, module_list[i], - "init_module"); - if (init_fn != NULL && init_fn() == 0) { - ops = ldb_find_module_ops(module_list[i]); - } - } - if (ops == NULL) { char *symbol_name = talloc_asprintf(ldb, "ldb_%s_module_ops", module_list[i]); diff --git a/source/param/util.c b/source/param/util.c index 15e3b4768ceb..ec192939d0a1 100644 --- a/source/param/util.c +++ b/source/param/util.c @@ -182,7 +182,7 @@ init_module_fn load_module(TALLOC_CTX *mem_ctx, const char *path) return NULL; } - init_fn = dlsym(handle, "init_module"); + init_fn = dlsym(handle, SAMBA_INIT_MODULE); if (init_fn == NULL) { DEBUG(0, ("Unable to find init_module() in %s: %s\n", path, dlerror())); diff --git a/source/scripting/python/samba/provision.py b/source/scripting/python/samba/provision.py index 3f936c3301cc..93a4c8f50222 100644 --- a/source/scripting/python/samba/provision.py +++ b/source/scripting/python/samba/provision.py @@ -1180,6 +1180,8 @@ def provision_backend(setup_dir=None, message=None, schemadb = Ldb(schemadb_path, lp=lp) + prefixmap = open(setup_path("prefixMap.txt"), 'r').read() + setup_add_ldif(schemadb, setup_path("provision_schema_basedn.ldif"), {"SCHEMADN": names.schemadn, "ACI": "#", @@ -1191,7 +1193,8 @@ def provision_backend(setup_dir=None, message=None, "NETBIOSNAME": names.netbiosname, "DEFAULTSITE": DEFAULTSITE, "CONFIGDN": names.configdn, - "SERVERDN": names.serverdn + "SERVERDN": names.serverdn, + "PREFIXMAP_B64": b64encode(prefixmap) }) setup_add_ldif(schemadb, setup_path("schema_samba4.ldif"), diff --git a/source/selftest/target/Samba4.pm b/source/selftest/target/Samba4.pm index b1b74e4323df..b3dc984593ef 100644 --- a/source/selftest/target/Samba4.pm +++ b/source/selftest/target/Samba4.pm @@ -751,7 +751,7 @@ nogroup:x:65534:nobody if (defined($self->{ldap})) { push (@provision_options, "--ldap-backend=$ldap_uri"); - system("$self->{bindir}/smbpython $self->{setupdir}/provision-backend $configuration --ldap-manager-pass=$password --root=$unix_name --realm=$realm --domain=$domain --host-name=$netbiosname --ldap-backend-type=$self->{ldap}>&2") == 0 or die("backend provision failed"); + system("$self->{setupdir}/provision-backend $configuration --ldap-manager-pass=$password --root=$unix_name --realm=$realm --domain=$domain --host-name=$netbiosname --ldap-backend-type=$self->{ldap}>&2") == 0 or die("backend provision failed"); if ($self->{ldap} eq "openldap") { ($ret->{SLAPD_CONF}, $ret->{OPENLDAP_PIDFILE}) = $self->mk_openldap($ldapdir, $configuration) or die("Unable to create openldap directories");