Author: sparky
Date: Sat Jun 26 15:17:46 2010
New Revision: 11584

Modified:
   toys/rsget.pl/RSGet/Curl.pm
Log:
- separated set_outif() because code was taking to much space in new()


Modified: toys/rsget.pl/RSGet/Curl.pm
==============================================================================
--- toys/rsget.pl/RSGet/Curl.pm (original)
+++ toys/rsget.pl/RSGet/Curl.pm Sat Jun 26 15:17:46 2010
@@ -67,6 +67,42 @@
 
 my %active_curl;
 
+{
+       my %proxytype = (
+               http    => 0,   # CURLPROXY_HTTP
+               http10  => 1,   # CURLPROXY_HTTP_1_0
+               socks4  => 4,   # CURLPROXY_SOCKS4
+               socks4a => 6,   # CURLPROXY_SOCKS4a
+               socks5  => 5,   # CURLPROXY_SOCKS5
+               socks   => 5,   # CURLPROXY_SOCKS5
+               socks5host => 7, # CURLPROXY_SOCKS5_HOSTNAME
+       );
+
+       sub set_outif
+       {
+               my $curl = shift;
+               my $outif = shift;
+               foreach my $if ( split /;+/, $outif ) {
+                       if ( $if =~ /^([a-z0-9]+)=(\S+)(:(\d+))?$/ ) {
+                               my ($tn, $host, $port) = ($1, $2, $4);
+                               if ( my $type = $proxytype{ $tn } ) {
+                                       $curl->setopt( CURLOPT_PROXYTYPE, $type 
);
+                                       $curl->setopt( CURLOPT_PROXY, $host );
+                                       $curl->setopt( CURLOPT_PROXYPORT, $port 
)
+                                               if $port;
+                               } else {
+                                       warn "Unrecognized proxy type '$tn' in 
'$outif'\n";
+                               }
+                       } elsif ( $if =~ /^\S+$/ ) {
+                               $curl->setopt( CURLOPT_INTERFACE, $if );
+                       } else {
+                               warn "Unrecognized interface string '$if' in 
'$outif'\n";
+                       }
+               }
+       }
+}
+
+
 sub new
 {
        my $uri = shift;
@@ -89,34 +125,7 @@
 
        $curl->setopt( CURLOPT_PRIVATE, $id );
 
-       if ( $get_obj->{_outif} ) {
-               foreach my $if ( split /;+/, $get_obj->{_outif} ) {
-                       if ( $if =~ /^([a-z0-9]+)=(\S+)(:(\d+))?$/ ) {
-                               my ($tn, $host, $port) = ($1, $2, $4);
-                               my %proxytype = (
-                                       http => 0, #CURLPROXY_HTTP,
-                                       http10 => 1, #CURLPROXY_HTTP_1_0,
-                                       socks4 => 4, #CURLPROXY_SOCKS4,
-                                       socks4a => 6, #CURLPROXY_SOCKS4a,
-                                       socks5 => 5, #CURLPROXY_SOCKS5,
-                                       socks => 5, #CURLPROXY_SOCKS5,
-                                       socks5host => 7, 
#CURLPROXY_SOCKS5_HOSTNAME,
-                               );
-                               if ( my $type = $proxytype{ $tn } ) {
-                                       $curl->setopt( CURLOPT_PROXYTYPE, $type 
);
-                                       $curl->setopt( CURLOPT_PROXY, $host );
-                                       $curl->setopt( CURLOPT_PROXYPORT, $port 
)
-                                               if $port;
-                               } else {
-                                       warn "Unrecognized proxy type '$tn' in 
'$get_obj->{_outif}'\n";
-                               }
-                       } elsif ( $if =~ /^\S+$/ ) {
-                               $curl->setopt( CURLOPT_INTERFACE, $if );
-                       } else {
-                               warn "Unrecognized interface string '$if' in 
'$get_obj->{_outif}'\n";
-                       }
-               }
-       }
+       set_outif( $curl, $get_obj->{_outif} ) if $get_obj->{_outif};
 
        if ( defined $get_obj->{_cookie} ) {
                $curl->setopt( CURLOPT_COOKIEJAR, $get_obj->{_cookie} );
_______________________________________________
pld-cvs-commit mailing list
[email protected]
http://lists.pld-linux.org/mailman/listinfo/pld-cvs-commit

Reply via email to