mirror of
https://github.com/webmin/webmin.git
synced 2025-07-21 23:40:34 +00:00
56 lines
1.3 KiB
Perl
Executable File
56 lines
1.3 KiB
Perl
Executable File
#!/usr/local/bin/perl
|
|
# save_node.cgi
|
|
# Save a node in the resources file
|
|
|
|
require './heartbeat-lib.pl';
|
|
&ReadParse();
|
|
&error_setup($text{'node_err'});
|
|
if (!$in{'new'}) {
|
|
@res = &list_resources();
|
|
$res = $res[$in{'idx'}];
|
|
}
|
|
|
|
if ($in{'delete'}) {
|
|
# Just delete this resource
|
|
&delete_resource($res);
|
|
&redirect("edit_res.cgi");
|
|
exit;
|
|
}
|
|
|
|
# Validate and store inputs
|
|
$in{'node'} =~ /^(\S+)$/ || &error($text{'node_enode'});
|
|
for($i=0; defined($in{"ip_$i"}); $i++) {
|
|
next if (!$in{"ip_$i"});
|
|
&check_ipaddress($in{"ip_$i"}) ||
|
|
&error(&text('node_eip', $in{"ip_$i"}));
|
|
local @ip = ( $in{"ip_$i"} );
|
|
if (!$in{"cidr_def_$i"}) {
|
|
$in{"cidr_$i"} =~ /^(\d+)$/ ||
|
|
&error(&text('node_ecidr', $in{"cidr_$i"}));
|
|
push(@ip, $in{"cidr_$i"});
|
|
if (!$in{"broad_def_$i"}) {
|
|
&check_ipaddress($in{"broad_$i"}) ||
|
|
&error(&text('node_ebroad', $in{"broad_$i"}));
|
|
push(@ip, $in{"broad_$i"});
|
|
}
|
|
}
|
|
push(@ips, join("/", @ip));
|
|
}
|
|
for($i=0; defined($in{"serv_$i"}); $i++) {
|
|
next if (!$in{"serv_$i"});
|
|
push(@servs, join("::", $in{"serv_$i"}, split(/\s+/, $in{"args_$i"})));
|
|
}
|
|
|
|
# Create or update the resource
|
|
$res->{'node'} = $in{'node'};
|
|
$res->{'ips'} = \@ips;
|
|
$res->{'servs'} = \@servs;
|
|
if ($in{'new'}) {
|
|
&create_resource($res);
|
|
}
|
|
else {
|
|
&modify_resource($res);
|
|
}
|
|
&redirect("edit_res.cgi");
|
|
|