diff options
Diffstat (limited to 'INF')
-rw-r--r-- | INF/Cyclades.pm | 20 |
1 files changed, 17 insertions, 3 deletions
diff --git a/INF/Cyclades.pm b/INF/Cyclades.pm index e058af5..7a0647b 100644 --- a/INF/Cyclades.pm +++ b/INF/Cyclades.pm @@ -4,6 +4,7 @@ package INF::Cyclades; use Net::Telnet; use Data::Dumper; +use IO::Socket::Socks; sub flush($) { my $self = shift; @@ -251,9 +252,22 @@ sub new ($;$) { $self = bless $self, $class; - $self->{telnet}->open( Host => $self->{iphost}, - Port => $self->{port} - ); + if ( not exists $parm->{proxy_port} ) { + $self->{telnet}->open( + Host => $self->{iphost}, + Port => $self->{port} + ); + } + else { + + my $sock = IO::Socket::Socks->new( + ProxyAddr => $parm->{proxy_host}, + ProxyPort => $parm->{proxy_port}, + ConnectAddr => $self->{iphost}, + ConnectPort => $self->{port} + ) or die $SOCKS_ERROR; + $self->{telnet}->fhopen($sock); + } unless ( $self->sync ) { $self->{telnet}->close; |