=================================================================== RCS file: /cvs/trango/Net-Telnet-Trango/scripts/su.cgi,v retrieving revision 1.3 retrieving revision 1.4 diff -u -r1.3 -r1.4 --- trango/Net-Telnet-Trango/scripts/su.cgi 2007/02/07 17:44:56 1.3 +++ trango/Net-Telnet-Trango/scripts/su.cgi 2007/02/07 19:25:21 1.4 @@ -1,5 +1,5 @@ #!/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. # @@ -23,7 +23,7 @@ use CGI qw/:standard/; use File::Basename; -use YAML qw/ LoadFile /; +use YAML qw/ LoadFile Dump /; use Net::Telnet::Trango; my $me = basename($0); @@ -76,10 +76,31 @@ my %aps; + my @hosts; foreach my $ap (keys %{ $conf }) { next if $ap eq 'default'; - $aps{ $ap } = $conf->{$ap}; - if (ref $conf->{default} eq 'HASH') { + my $h = $conf->{$ap}; + + 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} }) { $aps{ $ap }{$k} ||= $conf->{default}->{$k}; }