From: Tim Beale Date: Thu, 23 May 2019 03:47:46 +0000 (+1200) Subject: selftest: Rework setting env variables for nmbd X-Git-Tag: ldb-2.0.5~646 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=ae3e33d492904ae05d4ff24c3d8f50fecaca2971;p=thirdparty%2Fsamba.git selftest: Rework setting env variables for nmbd Instead of having a special $skip_resolv_conf parameter just for nmbd, use the get_env_for_process() API and customize the hashmap returned. Pass the customized hashmap in as an optional part of the daemon_ctx. Signed-off-by: Tim Beale Reviewed-by: Andrew Bartlett --- diff --git a/selftest/target/Samba.pm b/selftest/target/Samba.pm index ebbd5847e0c..5a359fe6970 100644 --- a/selftest/target/Samba.pm +++ b/selftest/target/Samba.pm @@ -583,9 +583,11 @@ sub random_domain_sid() # sets the environment variables ready for running a given process sub set_env_for_process { - my ($proc_name, $env_vars, $skip_resolv_wrapper) = @_; + my ($proc_name, $env_vars, $proc_envs) = @_; - $proc_envs = get_env_for_process($proc_name, $env_vars, $skip_resolv_wrapper); + if (not defined($proc_envs)) { + $proc_envs = get_env_for_process($proc_name, $env_vars); + } foreach my $key (keys %{ $proc_envs }) { $ENV{$key} = $proc_envs->{$key}; @@ -594,7 +596,7 @@ sub set_env_for_process sub get_env_for_process { - my ($proc_name, $env_vars, $skip_resolv_wrapper) = @_; + my ($proc_name, $env_vars) = @_; my $proc_envs = { KRB5_CONFIG => $env_vars->{KRB5_CONFIG}, KRB5CCNAME => "$env_vars->{KRB5_CCACHE}.$proc_name", @@ -610,12 +612,10 @@ sub get_env_for_process ENVNAME => "$ENV{ENVNAME}.$proc_name", }; - if (not defined($skip_resolv_wrapper)) { - if (defined($env_vars->{RESOLV_WRAPPER_CONF})) { - $proc_envs->{RESOLV_WRAPPER_CONF} = $env_vars->{RESOLV_WRAPPER_CONF}; - } else { - $proc_envs->{RESOLV_WRAPPER_HOSTS} = $env_vars->{RESOLV_WRAPPER_HOSTS}; - } + if (defined($env_vars->{RESOLV_WRAPPER_CONF})) { + $proc_envs->{RESOLV_WRAPPER_CONF} = $env_vars->{RESOLV_WRAPPER_CONF}; + } else { + $proc_envs->{RESOLV_WRAPPER_HOSTS} = $env_vars->{RESOLV_WRAPPER_HOSTS}; } return $proc_envs; } diff --git a/selftest/target/Samba3.pm b/selftest/target/Samba3.pm index 7a99740334c..59cf8e0055d 100755 --- a/selftest/target/Samba3.pm +++ b/selftest/target/Samba3.pm @@ -1270,12 +1270,15 @@ sub check_or_start($$$$$) { my @full_cmd = $self->make_bin_cmd($binary, $env_vars, $ENV{NMBD_OPTIONS}, $ENV{NMBD_VALGRIND}, $ENV{NMBD_DONT_LOG_STDOUT}); + my $nmbd_envs = Samba::get_env_for_process("nmbd", $env_vars); + delete $nmbd_envs->{RESOLV_WRAPPER_CONF}; + delete $nmbd_envs->{RESOLV_WRAPPER_HOSTS}; my %daemon_ctx = ( NAME => "nmbd", BINARY_PATH => $binary, FULL_CMD => [ @full_cmd ], LOG_FILE => $env_vars->{NMBD_TEST_LOG}, - NO_RESOLV => 1, + ENV_VARS => $nmbd_envs, ); if ($nmbd ne "yes") { $daemon_ctx{SKIP_DAEMON} = 1; @@ -1290,7 +1293,7 @@ sub check_or_start($$$$$) { SocketWrapper::set_default_iface($env_vars->{SOCKET_WRAPPER_DEFAULT_IFACE}); - Samba::set_env_for_process($daemon_ctx{NAME}, $env_vars, $daemon_ctx{NO_RESOLV}); + Samba::set_env_for_process($daemon_ctx{NAME}, $env_vars, $daemon_ctx{ENV_VARS}); if (defined($daemon_ctx{SKIP_DAEMON})) { $SIG{USR1} = $SIG{ALRM} = $SIG{INT} = $SIG{QUIT} = $SIG{TERM} = sub {