selftest: Add helper functions to get IP addresses
authorTim Beale <timbeale@catalyst.net.nz>
Tue, 19 Feb 2019 03:18:11 +0000 (16:18 +1300)
committerAndrew Bartlett <abartlet@samba.org>
Tue, 5 Mar 2019 23:27:30 +0000 (23:27 +0000)
Let's centralize these assumptions in one place.

Signed-off-by: Tim Beale <timbeale@catalyst.net.nz>
Reviewed-by: Andrew Bartlett <abartlet@samba.org>
selftest/target/Samba.pm
selftest/target/Samba3.pm
selftest/target/Samba4.pm

index d74a4438ba48fba9379a232a0fc8c529a2a97d9c..8e8723c0b88a311fbda96fde66a0f9c5438cfaa3 100644 (file)
@@ -446,6 +446,22 @@ sub get_interface($)
     return $interfaces{$netbiosname};
 }
 
+sub get_ipv4_addr
+{
+       (my $hostname) = @_;
+       my $swiface = Samba::get_interface($hostname);
+
+       return "127.0.0.$swiface";
+}
+
+sub get_ipv6_addr
+{
+       (my $hostname) = @_;
+       my $swiface = Samba::get_interface($hostname);
+
+       return sprintf("fd00:0000:0000:0000:0000:0000:5357:5f%02x", $swiface);
+}
+
 sub cleanup_child($$)
 {
     my ($pid, $name) = @_;
index 19a2d2fc56686c32ebbba03ae7cf48f94eb0cbcc..e176e3120c6f39773368f96c0f5bf3828fd4063b 100755 (executable)
@@ -1459,8 +1459,8 @@ sub provision($$$$$$$$$)
        my $swiface = Samba::get_interface($server);
        my %ret = ();
        my %createuser_env = ();
-       my $server_ip = "127.0.0.$swiface";
-       my $server_ipv6 = sprintf("fd00:0000:0000:0000:0000:0000:5357:5f%02x", $swiface);
+       my $server_ip = Samba::get_ipv4_addr($server);
+       my $server_ipv6 = Samba::get_ipv6_addr($server);
 
        my $unix_name = ($ENV{USER} or $ENV{LOGNAME} or `PATH=/usr/ucb:$ENV{PATH} whoami`);
        chomp $unix_name;
index 8b62c5e9c116f2e4eef5e0af210a1f73f2f11bb7..bbe3ece9fc819a9cf0c25dae8ab7dd9e55d10643 100755 (executable)
@@ -394,8 +394,8 @@ sub setup_dns_hub_internal($$$)
        $env->{hostname} = $hostname;
        $env->{swiface} = $swiface;
 
-       $env->{ipv4} = "127.0.0.$swiface";
-       $env->{ipv6} = sprintf("fd00:0000:0000:0000:0000:0000:5357:5f%02x", $swiface);
+       $env->{ipv4} = Samba::get_ipv4_addr($hostname);
+       $env->{ipv6} = Samba::get_ipv6_addr($hostname);
 
        $env->{DNS_HUB_LOG} = "$prefix_abs/dns_hub.log";
 
@@ -673,8 +673,8 @@ sub provision_raw_prepare($$$$$$$$$$$$)
 
        $ctx->{tlsdir} = "$ctx->{privatedir}/tls";
 
-       $ctx->{ipv4} = "127.0.0.$swiface";
-       $ctx->{ipv6} = sprintf("fd00:0000:0000:0000:0000:0000:5357:5f%02x", $swiface);
+       $ctx->{ipv4} = Samba::get_ipv4_addr($hostname);
+       $ctx->{ipv6} = Samba::get_ipv6_addr($hostname);
        $ctx->{interfaces} = "$ctx->{ipv4}/8 $ctx->{ipv6}/64";
 
        push(@{$ctx->{directories}}, $ctx->{privatedir});
@@ -1722,14 +1722,14 @@ sub provision_fl2000dc($$)
 sub provision_fl2003dc($$$)
 {
        my ($self, $prefix, $dcvars) = @_;
-       my $swiface1 = Samba::get_interface("fakednsforwarder1");
-       my $swiface2 = Samba::get_interface("fakednsforwarder2");
+       my $ip_addr1 = Samba::get_ipv4_addr("fakednsforwarder1");
+       my $ip_addr2 = Samba::get_ipv4_addr("fakednsforwarder2");
 
        print "PROVISIONING DC WITH FOREST LEVEL 2003...\n";
        my $extra_conf_options = "allow dns updates = nonsecure and secure
        dcesrv:header signing = no
        dcesrv:max auth states = 0
-       dns forwarder = 127.0.0.$swiface1 127.0.0.$swiface2";
+       dns forwarder = $ip_addr1 $ip_addr2";
        my $extra_provision_options = ["--use-ntvfs"];
        my $ret = $self->provision($prefix,
                                   "domain controller",
@@ -1747,8 +1747,8 @@ sub provision_fl2003dc($$$)
                return undef;
        }
 
-       $ret->{DNS_FORWARDER1} = "127.0.0.$swiface1";
-       $ret->{DNS_FORWARDER2} = "127.0.0.$swiface2";
+       $ret->{DNS_FORWARDER1} = $ip_addr1;
+       $ret->{DNS_FORWARDER2} = $ip_addr2;
 
        my @samba_tool_options;
        push (@samba_tool_options, Samba::bindir_path($self, "samba-tool"));