Blame src/config-files/convert-config-files

Packit fd8b60
#!/usr/bin/perl
Packit fd8b60
#
Packit fd8b60
# This program converts the old-style krb.conf and krb.realms files into the
Packit fd8b60
# new-format krb5.conf file.  It takes two arguments; the first is the krb.conf
Packit fd8b60
# file, and the second is the krb.realms file.  The krb5.conf file is output
Packit fd8b60
# to stdout.
Packit fd8b60
#
Packit fd8b60
# Written by Theodore Ts'o, 4/25/95
Packit fd8b60
#
Packit fd8b60
Packit fd8b60
if ($#ARGV >= 0) {
Packit fd8b60
	$krb_conf_file = $ARGV[0];
Packit fd8b60
} else {
Packit fd8b60
	$krb_conf_file = "/etc/krb.conf";
Packit fd8b60
}
Packit fd8b60
Packit fd8b60
if ($#ARGV >= 1) {
Packit fd8b60
	$krb_realms_file = $ARGV[1];
Packit fd8b60
} else {
Packit fd8b60
	$krb_realms_file = "/etc/krb.realms";
Packit fd8b60
}
Packit fd8b60
Packit fd8b60
open(FILE, "<$krb_conf_file") || die "Couldn't open the krb.conf file\n";
Packit fd8b60
Packit fd8b60
$_ = <FILE>;
Packit fd8b60
strip;
Packit fd8b60
$default_realm = $_;
Packit fd8b60
Packit fd8b60
while(<FILE>) {
Packit fd8b60
	strip;
Packit fd8b60
	($realm, $host, $admin) = split;
Packit fd8b60
	if (!defined($realmpt{$realm})) {
Packit fd8b60
		$realmpt{$realm} = 1;
Packit fd8b60
	}
Packit fd8b60
	$realmkdc{$realm . "##" . $realmpt{$realm}} = $host;
Packit fd8b60
	$realmpt{$realm}++;
Packit fd8b60
	if ($admin eq "admin") {	
Packit fd8b60
		$realmadmin{$realm} = $host;
Packit fd8b60
	}
Packit fd8b60
}
Packit fd8b60
Packit fd8b60
close(FILE);
Packit fd8b60
Packit fd8b60
open(FILE, "<$krb_realms_file") || die "Couldn't open krb.realms file";
Packit fd8b60
Packit fd8b60
while (<FILE>) {
Packit fd8b60
	strip;
Packit fd8b60
	($domain, $realm) = split;
Packit fd8b60
	$domain =~ s/\.$//;
Packit fd8b60
	$domain =~ tr/[A-Z]/[a-z]/;
Packit fd8b60
	$dom_realm{$domain} = $realm;
Packit fd8b60
	if ($domain =~ /^\./) {
Packit fd8b60
		$domain =~ s/^\.//;
Packit fd8b60
		$def_realm{$realm} = $domain;
Packit fd8b60
	}
Packit fd8b60
}
Packit fd8b60
Packit fd8b60
print "[libdefaults]\n\tdefault_realm = $default_realm\n";
Packit fd8b60
Packit fd8b60
print "[realms]\n";
Packit fd8b60
Packit fd8b60
foreach $realm (sort(keys(%realmpt))) {
Packit fd8b60
	print "\t$realm = {\n";
Packit fd8b60
	for ($i = 1; $i < $realmpt{$realm}; $i++) {
Packit fd8b60
		printf("\t\tkdc = %s\n", $realmkdc{$realm . "##" . $i});
Packit fd8b60
		
Packit fd8b60
	}
Packit fd8b60
	if (defined($realmadmin{$realm})) {
Packit fd8b60
		print "\t\tadmin_server = $realmadmin{$realm}\n";
Packit fd8b60
	}
Packit fd8b60
	if (defined($def_realm{$realm})) {
Packit fd8b60
		print "\t\tdefault_domain = $def_realm{$realm}\n";
Packit fd8b60
	}
Packit fd8b60
	print "\t}\n";
Packit fd8b60
}
Packit fd8b60
Packit fd8b60
print "\n[domain_realm]\n";
Packit fd8b60
Packit fd8b60
foreach $domain (keys(%dom_realm)) {
Packit fd8b60
	print "\t$domain = $dom_realm{$domain}\n";
Packit fd8b60
}
Packit fd8b60
Packit fd8b60
Packit fd8b60