3 # Create, update or delete a ipnode address
5 require './net-lib.pl';
6 $access{'ipnodes'} == 2 || &error($text{'ipnodes_ecannot'});
8 &lock_file($config{'ipnodes_file'});
9 @ipnodes = &list_ipnodes();
12 $ipnode = $ipnodes[$in{'idx'}];
13 &delete_ipnode($ipnode);
16 # saving or updating a ipnode
17 $whatfailed = "Failed to save ipnode";
18 &check_ipaddress($in{'address'}) ||
19 &check_ip6address($in{'address'}) ||
20 &error("'$in{'address'}' is not a valid IPv4 or v6 address");
21 @h = split(/\s+/, $in{'ipnodes'});
23 $h =~ /^[A-z0-9\-\.]+$/ ||
24 &error("'$h' is not a valid ipnodename");
26 @h>0 || &error("You must enter at least one ipnodename");
29 $ipnode = { 'address' => $in{'address'},
31 &create_ipnode($ipnode);
35 $ipnode = $ipnodes[$in{'idx'}];
36 $ipnode->{'address'} = $in{'address'};
37 $ipnode->{'ipnodes'} = \@h;
38 &modify_ipnode($ipnode);
41 &unlock_file($config{'ipnodes_file'});
42 &webmin_log($in{'delete'} ? 'delete' : $in{'new'} ? 'create' : 'modify',
43 'ipnode', $ipnode->{'address'}, $ipnode);
44 &redirect("list_ipnodes.cgi");