| version 1.3, 2007/02/07 17:44:56 |
version 1.4, 2007/02/07 19:25:21 |
|
|
| #!/usr/bin/perl |
#!/usr/bin/perl |
| # $RedRiver: su.cgi,v 1.2 2007/02/07 17:42:56 andrew Exp $ |
# $RedRiver: su.cgi,v 1.3 2007/02/07 17:44:56 andrew Exp $ |
| ######################################################################## |
######################################################################## |
| # su.cgi *** a CGI for Trango SU utilities. |
# su.cgi *** a CGI for Trango SU utilities. |
| # |
# |
|
|
| |
|
| use CGI qw/:standard/; |
use CGI qw/:standard/; |
| use File::Basename; |
use File::Basename; |
| use YAML qw/ LoadFile /; |
use YAML qw/ LoadFile Dump /; |
| use Net::Telnet::Trango; |
use Net::Telnet::Trango; |
| |
|
| my $me = basename($0); |
my $me = basename($0); |
|
|
| |
|
| my %aps; |
my %aps; |
| |
|
| |
my @hosts; |
| foreach my $ap (keys %{ $conf }) { |
foreach my $ap (keys %{ $conf }) { |
| next if $ap eq 'default'; |
next if $ap eq 'default'; |
| $aps{ $ap } = $conf->{$ap}; |
my $h = $conf->{$ap}; |
| if (ref $conf->{default} eq 'HASH') { |
|
| |
if ($h->{name} =~ /^(\d{1,3}\.\d{1,3}\.\d{1,3}\.)(\d{1,3})-(\d{1,3})/) { |
| |
for ($2..$3) { |
| |
my %cur_host; |
| |
foreach my $k (keys %{ $h }) { |
| |
$cur_host{$k} = $h->{$k}; |
| |
} |
| |
$cur_host{name} = $1 . $_; |
| |
if (! grep { $cur_host{name} eq $h->{name} } values %aps) { |
| |
my $ap_name = $ap . $_; |
| |
$aps{ $ap_name } = \%cur_host; |
| |
} |
| |
} |
| |
} else { |
| |
$aps{ $ap } = $conf->{$ap}; |
| |
push @hosts, $h; |
| |
} |
| |
} |
| |
|
| |
if (ref $conf->{default} eq 'HASH') { |
| |
foreach my $ap (keys %aps) { |
| foreach my $k (keys %{ $conf->{default} }) { |
foreach my $k (keys %{ $conf->{default} }) { |
| $aps{ $ap }{$k} ||= $conf->{default}->{$k}; |
$aps{ $ap }{$k} ||= $conf->{default}->{$k}; |
| } |
} |