Handle hostnames with upper-case letters
[webmin.git] / dhcpd / save_keys.cgi
1 #!/usr/bin/perl
2 # $Id: save_keys.cgi,v 1.2 2005/04/16 14:30:21 jfranken Exp $
3 # File added 2005-04-15 by Johannes Franken <jfranken@jfranken.de>
4 # Distributed under the terms of the GNU General Public License, v2 or later
5 #
6 # * Save key directives to configfile
7
8 require './dhcpd-lib.pl';
9 require './params-lib.pl';
10 &ReadParse();
11 &lock_file($config{'dhcpd_conf'});
12 $conf = &get_config();
13
14 $client = &get_parent_config();
15
16 @old = &find("key", $conf);
17 for($i=0; defined($id = $in{"id_$i"}); $i++) {
18         next if (!$id);
19         $id =~ /^\S+$/ || &error(&text('keys_ekey', $id));
20         $in{"secret_$i"} =~ /^\S+$/ || &error(&text('keys_esecret', $id));
21         local $k = { 'name' => 'key',
22                      'type' => 1 };
23         $k->{'members'} = $old[$i] ? $old[$i]->{'members'} : [ ];
24         $k->{'values'} = [ $id ];
25         &save_directive($k, "algorithm", [ { 'name' => 'algorithm',
26                                 'values' => [ $in{"alg_$i"} ] } ], 1, 1);
27         &save_directive($k, "secret", [ { 'name' => 'secret',
28                                 'values' => [ $in{"secret_$i"} ] } ], 1, 1);
29         push(@keys, $k);
30
31         }
32 &save_directive($client, 'key', \@keys, 0);
33 &flush_file_lines();
34 &unlock_file($config{'dhcpd_conf'});
35 &webmin_log("keys", undef, undef, \%in);
36 &redirect("");
37