[yum-commits] docs/yum.conf.5 yum/config.py yum/yumRepo.py

zpavlas at osuosl.org zpavlas at osuosl.org
Thu Jun 6 07:26:04 UTC 2013


 docs/yum.conf.5 |    4 +++-
 yum/config.py   |   10 +++++++++-
 yum/yumRepo.py  |    5 ++++-
 3 files changed, 16 insertions(+), 3 deletions(-)

New commits:
commit 81b52584ae386dccca31f4125e426eb95afe939c
Author: Zdenek Pavlas <zpavlas at redhat.com>
Date:   Wed Jun 5 16:30:54 2013 +0200

    support "proxy = libproxy" syntax to enable libproxy. BZ 857263.

diff --git a/docs/yum.conf.5 b/docs/yum.conf.5
index eccfa38..39c2769 100644
--- a/docs/yum.conf.5
+++ b/docs/yum.conf.5
@@ -504,7 +504,9 @@ syslog logging is disabled.  Default is `/dev/log'.
 
 .IP
 \fBproxy \fR
-URL to the proxy server that yum should use.
+URL to the proxy server that yum should use.  Set this to `libproxy'
+to enable proxy auto configuration via libproxy.  Defaults to direct
+connection.
 
 .IP
 \fBproxy_username \fR
diff --git a/yum/config.py b/yum/config.py
index 967a4c8..1ca5cdc 100644
--- a/yum/config.py
+++ b/yum/config.py
@@ -237,6 +237,14 @@ class UrlOption(Option):
         else:
             return '%s or %s' % (', '.join(self.schemes[:-1]), self.schemes[-1])
 
+class ProxyOption(UrlOption):
+    """ Just like URLOption but accept "libproxy" too.
+    """
+    def parse(self, proxy):
+        if proxy.strip().lower() == 'libproxy':
+            return 'libproxy'
+        return UrlOption.parse(self, proxy)
+
 class UrlListOption(ListOption):
     """Option for handling lists of URLs with validation of the URL
     scheme.
@@ -735,7 +743,7 @@ class YumConf(StartupConf):
     commands = ListOption()
     exclude = ListOption()
     failovermethod = Option(__main_failovermethod_default__)
-    proxy = UrlOption(default=False, schemes=('http', 'ftp', 'https',
+    proxy = ProxyOption(default=False, schemes=('http', 'ftp', 'https',
         'socks4', 'socks4a', 'socks5', 'socks5h'), allow_none=True)
     proxy_username = Option()
     proxy_password = Option()
diff --git a/yum/yumRepo.py b/yum/yumRepo.py
index ef6d9c6..cfe7b05 100644
--- a/yum/yumRepo.py
+++ b/yum/yumRepo.py
@@ -655,7 +655,6 @@ class YumRepository(Repository, config.RepoConf):
                  'bandwidth': self.bandwidth,
                  'retry': self.retries,
                  'throttle': self.throttle,
-                 'proxies': self.proxy_dict,
                  'timeout': self.timeout,
                  'minrate': self.minrate,
                  'ip_resolve': self.ip_resolve,
@@ -669,6 +668,10 @@ class YumRepository(Repository, config.RepoConf):
                  'username': self.username,
                  'password': self.password,
                  }
+        if self.proxy == 'libproxy':
+            opts['libproxy'] = True
+        else:
+            opts['proxies'] = self.proxy_dict
         return opts
 
     def _getgrabfunc(self):


More information about the Yum-commits mailing list