mirror of
https://github.com/webmin/webmin.git
synced 2026-02-24 06:43:24 +00:00
43 lines
911 B
Perl
Executable File
43 lines
911 B
Perl
Executable File
#!/usr/local/bin/perl
|
|
# Save, create or delete an IP-specific SSL key
|
|
|
|
require './webmin-lib.pl';
|
|
&ReadParse();
|
|
&get_miniserv_config(\%miniserv);
|
|
@ipkeys = &get_ipkeys(\%miniserv);
|
|
if (!$in{'new'}) {
|
|
$ipkey = $ipkeys[$in{'idx'}];
|
|
}
|
|
else {
|
|
$ipkey = { };
|
|
}
|
|
|
|
if ($in{'delete'}) {
|
|
# Just remove this entry
|
|
splice(@ipkeys, $in{'idx'}, 1);
|
|
}
|
|
else {
|
|
# Validate inputs
|
|
&error_setup($text{'ipkey_err'});
|
|
@ips = split(/\s+/, $in{'ips'});
|
|
foreach $i (@ips) {
|
|
&check_ipaddress($i) ||
|
|
&error(&text('ipkey_eip', $i));
|
|
}
|
|
@ips || &error(&text('ipkey_eips'));
|
|
$ipkey->{'ips'} = \@ips;
|
|
&validate_key_cert($in{'key'}, $in{'cert_def'} ? undef : $in{'cert'});
|
|
$ipkey->{'key'} = $in{'key'};
|
|
$ipkey->{'cert'} = $in{'cert_def'} ? undef : $in{'cert'};
|
|
|
|
# Save or add
|
|
if ($in{'new'}) {
|
|
push(@ipkeys, $ipkey);
|
|
}
|
|
}
|
|
|
|
&save_ipkeys(\%miniserv, \@ipkeys);
|
|
&put_miniserv_config(\%miniserv);
|
|
&show_restart_page();
|
|
|