diff options
Diffstat (limited to 'selftest')
-rwxr-xr-x | selftest/selftest.pl | 1 | ||||
-rwxr-xr-x | selftest/target/Samba3.pm | 17 | ||||
-rw-r--r-- | selftest/target/Samba4.pm | 13 |
3 files changed, 31 insertions, 0 deletions
diff --git a/selftest/selftest.pl b/selftest/selftest.pl index dd964a3439..5c35d89355 100755 --- a/selftest/selftest.pl +++ b/selftest/selftest.pl @@ -866,6 +866,7 @@ sub teardown_env($) # This 'global' file needs to be empty when we start unlink("$prefix_abs/dns_host_file"); +unlink("$prefix_abs/hosts"); if ($opt_random_order) { require List::Util; diff --git a/selftest/target/Samba3.pm b/selftest/target/Samba3.pm index 4b2fd28ec1..ed8faf9f74 100755 --- a/selftest/target/Samba3.pm +++ b/selftest/target/Samba3.pm @@ -641,6 +641,7 @@ sub check_or_start($$$$$) { $ENV{NSS_WRAPPER_PASSWD} = $env_vars->{NSS_WRAPPER_PASSWD}; $ENV{NSS_WRAPPER_GROUP} = $env_vars->{NSS_WRAPPER_GROUP}; + $ENV{NSS_WRAPPER_HOSTS} = $env_vars->{NSS_WRAPPER_HOSTS}; $ENV{NSS_WRAPPER_MODULE_SO_PATH} = $env_vars->{NSS_WRAPPER_MODULE_SO_PATH}; $ENV{NSS_WRAPPER_MODULE_FN_PREFIX} = $env_vars->{NSS_WRAPPER_MODULE_FN_PREFIX}; @@ -697,6 +698,7 @@ sub check_or_start($$$$$) { $ENV{NSS_WRAPPER_PASSWD} = $env_vars->{NSS_WRAPPER_PASSWD}; $ENV{NSS_WRAPPER_GROUP} = $env_vars->{NSS_WRAPPER_GROUP}; + $ENV{NSS_WRAPPER_HOSTS} = $env_vars->{NSS_WRAPPER_HOSTS}; $ENV{NSS_WRAPPER_MODULE_SO_PATH} = $env_vars->{NSS_WRAPPER_MODULE_SO_PATH}; $ENV{NSS_WRAPPER_MODULE_FN_PREFIX} = $env_vars->{NSS_WRAPPER_MODULE_FN_PREFIX}; @@ -753,6 +755,7 @@ sub check_or_start($$$$$) { $ENV{NSS_WRAPPER_PASSWD} = $env_vars->{NSS_WRAPPER_PASSWD}; $ENV{NSS_WRAPPER_GROUP} = $env_vars->{NSS_WRAPPER_GROUP}; + $ENV{NSS_WRAPPER_HOSTS} = $env_vars->{NSS_WRAPPER_HOSTS}; $ENV{NSS_WRAPPER_MODULE_SO_PATH} = $env_vars->{NSS_WRAPPER_MODULE_SO_PATH}; $ENV{NSS_WRAPPER_MODULE_FN_PREFIX} = $env_vars->{NSS_WRAPPER_MODULE_FN_PREFIX}; @@ -921,6 +924,7 @@ sub provision($$$$$$) my $nss_wrapper_pl = "$ENV{PERL} $self->{srcdir}/lib/nss_wrapper/nss_wrapper.pl"; my $nss_wrapper_passwd = "$privatedir/passwd"; my $nss_wrapper_group = "$privatedir/group"; + my $nss_wrapper_hosts = "$ENV{SELFTEST_PREFIX}/hosts"; my $mod_printer_pl = "$ENV{PERL} $self->{srcdir}/source3/script/tests/printing/modprinter.pl"; @@ -1200,6 +1204,17 @@ domadmins:X:$gid_domadmins: close(GROUP); + ## hosts + my $hostname = lc($server); + unless (open(HOSTS, ">>$nss_wrapper_hosts")) { + warn("Unable to open $nss_wrapper_hosts"); + return undef; + } + print HOSTS "${server_ip} ${hostname}.samba.example.com ${hostname} +"; + close(HOSTS); + + foreach my $evlog (@eventlog_list) { my $evlogtdb = "$eventlogdir/$evlog.tdb"; open(EVENTLOG, ">$evlogtdb") or die("Unable to open $evlogtdb"); @@ -1208,6 +1223,7 @@ domadmins:X:$gid_domadmins: $ENV{NSS_WRAPPER_PASSWD} = $nss_wrapper_passwd; $ENV{NSS_WRAPPER_GROUP} = $nss_wrapper_group; + $ENV{NSS_WRAPPER_HOSTS} = $nss_wrapper_hosts; my $cmd = "UID_WRAPPER_ROOT=1 " . Samba::bindir_path($self, "smbpasswd")." -c $conffile -L -s -a $unix_name > /dev/null"; unless (open(PWD, "|$cmd")) { @@ -1251,6 +1267,7 @@ domadmins:X:$gid_domadmins: $ret{SOCKET_WRAPPER_DEFAULT_IFACE} = $swiface; $ret{NSS_WRAPPER_PASSWD} = $nss_wrapper_passwd; $ret{NSS_WRAPPER_GROUP} = $nss_wrapper_group; + $ret{NSS_WRAPPER_HOSTS} = $nss_wrapper_hosts; $ret{NSS_WRAPPER_MODULE_SO_PATH} = Samba::nss_wrapper_winbind_so_path($self); $ret{NSS_WRAPPER_MODULE_FN_PREFIX} = "winbind"; $ret{LOCAL_PATH} = "$shrdir"; diff --git a/selftest/target/Samba4.pm b/selftest/target/Samba4.pm index 91b23a2bc5..8408b334d5 100644 --- a/selftest/target/Samba4.pm +++ b/selftest/target/Samba4.pm @@ -122,6 +122,7 @@ sub check_or_start($$$) $ENV{NSS_WRAPPER_PASSWD} = $env_vars->{NSS_WRAPPER_PASSWD}; $ENV{NSS_WRAPPER_GROUP} = $env_vars->{NSS_WRAPPER_GROUP}; + $ENV{NSS_WRAPPER_HOSTS} = $env_vars->{NSS_WRAPPER_HOSTS}; $ENV{NSS_WRAPPER_MODULE_SO_PATH} = $env_vars->{NSS_WRAPPER_MODULE_SO_PATH}; $ENV{NSS_WRAPPER_MODULE_FN_PREFIX} = $env_vars->{NSS_WRAPPER_MODULE_FN_PREFIX}; @@ -176,6 +177,9 @@ sub wait_for_start($$) # Ensure we have the first RID Set before we start tests. This makes the tests more reliable. if ($testenv_vars->{SERVER_ROLE} eq "domain controller" and not ($testenv_vars->{NETBIOS_NAME} eq "rodc")) { + # Add hosts file for name lookups + $ENV{NSS_WRAPPER_HOSTS} = $testenv_vars->{NSS_WRAPPER_HOSTS}; + print "waiting for working LDAP and a RID Set to be allocated\n"; my $ldbsearch = Samba::bindir_path($self, "ldbsearch"); my $count = 0; @@ -525,6 +529,7 @@ sub provision_raw_prepare($$$$$$$$$$) $ctx->{ntp_signd_socket_dir} = "$prefix_abs/ntp_signd_socket"; $ctx->{nsswrap_passwd} = "$ctx->{etcdir}/passwd"; $ctx->{nsswrap_group} = "$ctx->{etcdir}/group"; + $ctx->{nsswrap_hosts} = "$ENV{SELFTEST_PREFIX}/hosts"; $ctx->{tlsdir} = "$ctx->{privatedir}/tls"; @@ -544,6 +549,7 @@ sub provision_raw_prepare($$$$$$$$$$) my @provision_options = (); push (@provision_options, "NSS_WRAPPER_PASSWD=\"$ctx->{nsswrap_passwd}\""); push (@provision_options, "NSS_WRAPPER_GROUP=\"$ctx->{nsswrap_group}\""); + push (@provision_options, "NSS_WRAPPER_HOSTS=\"$ctx->{nsswrap_hosts}\""); if (defined($ENV{GDB_PROVISION})) { push (@provision_options, "gdb --args"); if (!defined($ENV{PYTHON})) { @@ -686,6 +692,12 @@ nogroup:x:65534:nobody close(GRP); my $gid_rfc2307test = 65532; + my $hostname = lc($ctx->{hostname}); + open(HOSTS, ">>$ctx->{nsswrap_hosts}"); + print HOSTS "$ctx->{ipv4} ${hostname}.samba.example.com ${hostname} +"; + close(HOSTS); + my $configuration = "--configfile=$ctx->{smb_conf}"; #Ensure the config file is valid before we start @@ -723,6 +735,7 @@ nogroup:x:65534:nobody SOCKET_WRAPPER_DEFAULT_IFACE => $ctx->{swiface}, NSS_WRAPPER_PASSWD => $ctx->{nsswrap_passwd}, NSS_WRAPPER_GROUP => $ctx->{nsswrap_group}, + NSS_WRAPPER_HOSTS => $ctx->{nsswrap_hosts}, SAMBA_TEST_FIFO => "$ctx->{prefix}/samba_test.fifo", SAMBA_TEST_LOG => "$ctx->{prefix}/samba_test.log", SAMBA_TEST_LOG_POS => 0, |