selftest: Add helper function to get interfaces config
authorTim Beale <timbeale@catalyst.net.nz>
Tue, 12 Mar 2019 01:00:55 +0000 (14:00 +1300)
committerAndrew Bartlett <abartlet@samba.org>
Thu, 14 Mar 2019 02:12:18 +0000 (02:12 +0000)
Add a helper function to return the IPv4/IPv6 addresses for the
smb.conf. This keeps the netmask assumptions in the same places as
the IP subnet assumptions.

This refactor means we no longer need to store $ctx->{interfaces}, as it
was only used 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 2d8cbc28703e5dfc34e693b38f91b8db1dadb483..f7332da893ee559111a27861ce577495cbd4bc3f 100644 (file)
@@ -505,6 +505,17 @@ sub get_ipv6_addr
        return sprintf("fd00:0000:0000:0000:0000:0000:5357:5f%02x", $swiface);
 }
 
+# returns the 'interfaces' setting for smb.conf, i.e. the IPv4/IPv6
+# addresses for testenv
+sub get_interfaces_config
+{
+       (my $hostname) = @_;
+       my $ipv4_addr = Samba::get_ipv4_addr($hostname);
+       my $ipv6_addr = Samba::get_ipv6_addr($hostname);
+
+       return "$ipv4_addr/8 $ipv6_addr/64";
+}
+
 sub cleanup_child($$)
 {
     my ($pid, $name) = @_;
index e176e3120c6f39773368f96c0f5bf3828fd4063b..cbf5309a9a36a24bad994e4006a4f7db7f0ded2d 100755 (executable)
@@ -1734,10 +1734,13 @@ sub provision($$$$$$$$$)
                warn("Unable to open $conffile");
                return undef;
        }
+
+       my $interfaces = Samba::get_interfaces_config($server);
+
        print CONF "
 [global]
        netbios name = $server
-       interfaces = $server_ip/8 $server_ipv6/64
+       interfaces = $interfaces
        bind interfaces only = yes
        panic action = cd $self->{srcdir} && $self->{srcdir}/selftest/gdb_backtrace %d %\$(MAKE_TEST_BINARY)
        smbd:suicide mode = yes
index 12f1a604c669d9c65947bf9e246c274b6d80f226..d8722dd85c6c01ad435f7f85685c40ad7d7830f8 100755 (executable)
@@ -675,7 +675,6 @@ sub provision_raw_prepare($$$$$$$$$$$$)
 
        $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});
        push(@{$ctx->{directories}}, $ctx->{binddnsdir});
@@ -783,6 +782,8 @@ sub provision_raw_step1($$)
                $services = "+smb -s3fs";
        }
 
+       my $interfaces = Samba::get_interfaces_config($ctx->{netbiosname});
+
        print CONFFILE "
 [global]
        netbios name = $ctx->{netbiosname}
@@ -799,7 +800,7 @@ sub provision_raw_step1($$)
        winbindd socket directory = $ctx->{winbindd_socket_dir}
        ntp signd socket directory = $ctx->{ntp_signd_socket_dir}
        winbind separator = /
-       interfaces = $ctx->{interfaces}
+       interfaces = $interfaces
        tls dh params file = $ctx->{tlsdir}/dhparms.pem
        tls crlfile = ${crlfile}
        tls verify peer = no_check