diff options
Diffstat (limited to 'urpm')
-rw-r--r-- | urpm/args.pm | 7 | ||||
-rw-r--r-- | urpm/download.pm | 23 |
2 files changed, 24 insertions, 6 deletions
diff --git a/urpm/args.pm b/urpm/args.pm index 67da7130..c55bf10e 100644 --- a/urpm/args.pm +++ b/urpm/args.pm @@ -4,6 +4,7 @@ use strict; use warnings; no warnings 'once'; use Getopt::Long;# 2.33; +use urpm::download; # The program that invokes us (my $tool = $0) =~ s!.*/!!; @@ -85,12 +86,14 @@ my %options_spec = ( my ($proxy, $port) = $value =~ m,^(?:http://)?([^:]+(:\d+)?)/*$, or die N("bad proxy declaration on command line\n"); $proxy .= ":1080" unless $port; - $urpm->{proxy}{http_proxy} = "http://$proxy"; + $urpm->{proxy}{http_proxy} = "http://$proxy"; #- obsolete, for compat + urpm::download::set_cmdline_proxy(http_proxy => "http://$proxy"); }, 'proxy-user=s' => sub { my (undef, $value) = @_; $value =~ /(.+):(.+)/ or die N("bad proxy declaration on command line\n"); - @{$urpm->{proxy}}{qw(user pwd)} = ($1, $2); + @{$urpm->{proxy}}{qw(user pwd)} = ($1, $2); #- obsolete, for compat + urpm::download::set_cmdline_proxy(user => $1, pwd => $2); }, 'bug=s' => \$options{bug}, 'env=s' => \$::env, diff --git a/urpm/download.pm b/urpm/download.pm index 4308f9f6..8f46df6d 100644 --- a/urpm/download.pm +++ b/urpm/download.pm @@ -47,12 +47,27 @@ sub load_proxy_config () { sub get_proxy (;$) { my ($o_media) = @_; $o_media ||= ''; load_proxy_config(); - return $proxy_config->{$o_media} || { - http_proxy => undef , - ftp_proxy => undef , + return $proxy_config->{cmd_line} + || $proxy_config->{$o_media} + || $proxy_config->{''} + || { + http_proxy => undef, + ftp_proxy => undef, + user => undef, + pwd => undef, + }; +} + +#- overrides the config file proxy settings with values passed via command-line +sub set_cmdline_proxy { + my (%h) = @_; + $proxy_config->{cmd_line} ||= { + http_proxy => undef, + ftp_proxy => undef, user => undef, - pwd => undef + pwd => undef, }; + $proxy_config->{cmd_line}{$_} = $h{$_} for keys %h; } #- set up the environment for proxy usage for the appropriate tool. |