2 # Bootstrap Samba and run a number of tests against it.
3 # Copyright (C) 2005-2007 Jelmer Vernooij <jelmer@samba.org>
4 # Published under the GNU GPL, v3 or later.
13 my ($classname, $bindir, $binary_mapping,$ldap, $srcdir, $exeext, $server_maxtime) = @_;
16 samba3
=> new Samba3
($bindir,$binary_mapping, $srcdir, $exeext, $server_maxtime),
17 samba4
=> new Samba4
($bindir,$binary_mapping, $ldap, $srcdir, $exeext, $server_maxtime),
25 my ($self, $envname, $path) = @_;
27 $ENV{ENVNAME
} = $envname;
29 my $env = $self->{samba4
}->setup_env($envname, $path);
31 if (not defined($env->{target
})) {
32 $env->{target
} = $self->{samba4
};
35 $env = $self->{samba3
}->setup_env($envname, $path);
37 if (not defined($env->{target
})) {
38 $env->{target
} = $self->{samba3
};
42 if (not defined $env) {
43 warn("Samba can't provide environment '$envname'");
50 my ($object, $path) = @_;
52 if (defined($object->{binary_mapping
}->{$path})) {
53 $path = $object->{binary_mapping
}->{$path};
56 my $valpath = "$object->{bindir}/$path$object->{exeext}";
58 return $valpath if (-f
$valpath);
64 my ($ctx, $other_realms_stanza) = @_;
66 unless (open(KRB5CONF
, ">$ctx->{krb5_conf}")) {
67 warn("can't open $ctx->{krb5_conf}$?");
71 my $our_realms_stanza = mk_realms_stanza
($ctx->{realm
},
76 #Generated krb5.conf for $ctx->{realm}
79 default_realm = $ctx->{realm}
80 dns_lookup_realm = false
81 dns_lookup_kdc = false
84 allow_weak_crypto = yes
92 if (defined($ctx->{tlsdir
})) {
96 pkinit_anchors = FILE:$ctx->{tlsdir}/ca.pem
100 pkinit_identity = FILE:$ctx->{tlsdir}/kdc.pem,$ctx->{tlsdir}/key.pem
101 pkinit_anchors = FILE:$ctx->{tlsdir}/ca.pem
108 sub mk_realms_stanza
($$$$)
110 my ($realm, $dnsname, $domain, $kdc_ipv4) = @_;
112 my $realms_stanza = "
115 admin_server = $kdc_ipv4:88
116 default_domain = $dnsname
120 admin_server = $kdc_ipv4:88
121 default_domain = $dnsname
125 admin_server = $kdc_ipv4:88
126 default_domain = $dnsname
130 return $realms_stanza;