summaryrefslogtreecommitdiff
path: root/source4/selftest/env/Samba4.pm
diff options
context:
space:
mode:
Diffstat (limited to 'source4/selftest/env/Samba4.pm')
-rw-r--r--source4/selftest/env/Samba4.pm31
1 files changed, 22 insertions, 9 deletions
diff --git a/source4/selftest/env/Samba4.pm b/source4/selftest/env/Samba4.pm
index 11afc0e6f3..944ed83d58 100644
--- a/source4/selftest/env/Samba4.pm
+++ b/source4/selftest/env/Samba4.pm
@@ -104,6 +104,9 @@ sub check_or_start($$$)
if (defined($max_time)) {
$optarg = "--maximum-runtime=$max_time ";
}
+ if (defined($ENV{SMBD_OPTIONS})) {
+ $optarg.= " $ENV{SMBD_OPTIONS}";
+ }
my $ret = system("$valgrind $self->{bindir}/smbd $optarg $env_vars->{CONFIGURATION} -M single -i --leak-report-full");
if ($? == -1) {
print "Unable to start smbd: $ret: $!\n";
@@ -216,7 +219,7 @@ sub mk_openldap($$$)
system("$self->{bindir}/ad2oLschema $configuration --option=convert:target=openldap -H $ldapdir/schema-tmp.ldb -I $self->{setupdir}/schema-map-openldap-2.3 -O $ldapdir/backend-schema.schema >&2") == 0 or die("schema conversion for OpenLDAP failed");
my $oldpath = $ENV{PATH};
- $ENV{PATH} = "/usr/local/sbin:/usr/sbin:/sbin:$ENV{PATH}";
+ $ENV{PATH} = "$ENV{OPENLDAP_PATH}/usr/local/sbin:/usr/sbin:/sbin:$ENV{PATH}";
unlink($modconf);
open(CONF, ">$modconf"); close(CONF);
@@ -225,8 +228,18 @@ sub mk_openldap($$$)
open(CONF, ">$modconf");
# enable slapd modules
print CONF "
+moduleload back_hdb
+moduleload syncprov
+";
+ close(CONF);
+ }
+
+ if (system("slaptest -u -f $slapd_conf >&2") != 0) {
+ open(CONF, ">$modconf");
+ # enable slapd modules
+ print CONF "
modulepath /usr/lib/ldap
-moduleload back_bdb
+moduleload back_hdb
moduleload syncprov
";
close(CONF);
@@ -283,6 +296,7 @@ sub provision($$$$$$)
my $ncalrpcdir = "$prefix_abs/ncalrpc";
my $lockdir = "$prefix_abs/lockdir";
my $winbindd_socket_dir = "$prefix_abs/winbind_socket";
+ my $winbindd_priv_pipe_dir = "$piddir/smbd.tmp/winbind_pipe";
my $configuration = "--configfile=$conffile";
my $ldapdir = "$privatedir/ldap";
@@ -297,10 +311,6 @@ sub provision($$$$$$)
$tmpdir);
- my $localdomain = $domain;
- $localdomain = $netbiosname if $server_role eq "member server";
- my $localrealm = $realm;
- $localrealm = $netbiosname if $server_role eq "member server";
my $localbasedn = $basedn;
$localbasedn = "DC=$netbiosname" if $server_role eq "member server";
@@ -417,8 +427,8 @@ my @provision_options = ("$self->{bindir}/smbscript", "$self->{setupdir}/provisi
push (@provision_options, "--host-name=$netbiosname");
push (@provision_options, "--host-ip=$ifaceipv4");
push (@provision_options, "--quiet");
- push (@provision_options, "--domain=$localdomain");
- push (@provision_options, "--realm=$localrealm");
+ push (@provision_options, "--domain=$domain");
+ push (@provision_options, "--realm=$realm");
push (@provision_options, "--adminpass=$password");
push (@provision_options, "--krbtgtpass=krbtgt$password");
push (@provision_options, "--machinepass=machine$password");
@@ -426,6 +436,7 @@ my @provision_options = ("$self->{bindir}/smbscript", "$self->{setupdir}/provisi
push (@provision_options, "--simple-bind-dn=cn=Manager,$localbasedn");
push (@provision_options, "--password=$password");
push (@provision_options, "--root=$root");
+ push (@provision_options, "--server-role=$server_role");
my $ldap_uri= "$ldapdir/ldapi";
$ldap_uri =~ s|/|%2F|g;
@@ -445,7 +456,9 @@ my @provision_options = ("$self->{bindir}/smbscript", "$self->{setupdir}/provisi
PASSWORD => $password,
LDAPDIR => $ldapdir,
WINBINDD_SOCKET_DIR => $winbindd_socket_dir,
+ WINBINDD_PRIV_PIPE_DIR => $winbindd_priv_pipe_dir,
NCALRPCDIR => $ncalrpcdir,
+ LOCKDIR => $lockdir,
CONFIGURATION => $configuration,
SOCKET_WRAPPER_DEFAULT_IFACE => $swiface
};
@@ -453,7 +466,7 @@ my @provision_options = ("$self->{bindir}/smbscript", "$self->{setupdir}/provisi
if (defined($self->{ldap})) {
push (@provision_options, "--ldap-backend=$ldap_uri");
- system("$self->{bindir}/smbscript $self->{setupdir}/provision-backend $configuration --ldap-manager-pass=$password --root=$root --realm=$localrealm --host-name=$netbiosname --ldap-backend-type=$self->{ldap}>&2") == 0 or die("backend provision failed");
+ system("$self->{bindir}/smbscript $self->{setupdir}/provision-backend $configuration --ldap-manager-pass=$password --root=$root --realm=$realm --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");