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}; |
} |
} |