2 # Save, create or delete an IP-specific SSL key
4 require './usermin-lib.pl';
6 &get_usermin_miniserv_config(\%miniserv);
7 @ipkeys = &webmin::get_ipkeys(\%miniserv);
9 $ipkey = $ipkeys[$in{'idx'}];
16 # Just remove this entry
17 splice(@ipkeys, $in{'idx'}, 1);
21 &error_setup($text{'ipkey_err'});
22 @ips = split(/\s+/, $in{'ips'});
24 &check_ipaddress($i) ||
25 &error(&text('ipkey_eip', $i));
27 @ips || &error(&text('ipkey_eips'));
28 $ipkey->{'ips'} = \@ips;
29 &webmin::validate_key_cert($in{'key'}, $in{'cert_def'} ? undef : $in{'cert'});
30 $ipkey->{'key'} = $in{'key'};
31 $ipkey->{'cert'} = $in{'cert_def'} ? undef : $in{'cert'};
32 if ($in{'extracas_mode'} == 0) {
33 delete($ipkey->{'extracas'});
35 elsif ($in{'extracas_mode'} == 2) {
36 $ipkey->{'extracas'} = 'none';
39 @files = split(/\s+/, $in{'extracas'});
40 @files || &error($text{'ipkey_eextracas'});
42 -r $f || &error(&text('ipkey_eextraca', $f));
44 $ipkey->{'extracas'} = join(' ', @files);
49 push(@ipkeys, $ipkey);
53 &webmin::save_ipkeys(\%miniserv, \@ipkeys);
54 &lock_file($usermin_miniserv_config);
55 &put_usermin_miniserv_config(\%miniserv);
56 &unlock_file($usermin_miniserv_config);
57 &restart_usermin_miniserv();
59 &redirect("edit_ssl.cgi?mode=ips");