diff options
Diffstat (limited to 'source4/selftest/env/Samba4.pm')
-rw-r--r-- | source4/selftest/env/Samba4.pm | 31 |
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"); |