]> git.saurik.com Git - apt.git/commitdiff
methods: read config in most to least specific order
authorDavid Kalnischkies <david@kalnischkies.de>
Wed, 17 Aug 2016 19:53:05 +0000 (21:53 +0200)
committerDavid Kalnischkies <david@kalnischkies.de>
Wed, 17 Aug 2016 19:53:05 +0000 (21:53 +0200)
The implementation of the generic config fallback did the fallback in
the wrong order so that the least specific option wasn't the last value
picked but in fact the first oneā€¦ doh!

So in the bugreports case http -> https -> http::<hostname> ->
https::<hostname> while it should have been the reverse as before.

Regression-In: 30060442025824c491f58887ca7369f3c572fa57
Closes: 834642
methods/aptmethod.h
test/integration/test-bug-623443-fail-on-bad-proxies

index 38f45170880b67f57e63d989109e4d5d161631a3..04c4fa99b270c47d41efb5b19a4f86cea323a729 100644 (file)
@@ -86,10 +86,10 @@ public:
    }
    std::string ConfigFind(char const * const postfix, std::string const &defValue) const APT_NONNULL(2)
    {
    }
    std::string ConfigFind(char const * const postfix, std::string const &defValue) const APT_NONNULL(2)
    {
-      for (auto && name: methodNames)
+      for (auto name = methodNames.rbegin(); name != methodNames.rend(); ++name)
       {
         std::string conf;
       {
         std::string conf;
-        strprintf(conf, "Acquire::%s::%s", name.c_str(), postfix);
+        strprintf(conf, "Acquire::%s::%s", name->c_str(), postfix);
         auto const value = _config->Find(conf);
         if (value.empty() == false)
            return value;
         auto const value = _config->Find(conf);
         if (value.empty() == false)
            return value;
index 04542e0cd4e6b640a65e048c151db47598fc0a38..d91a3ab8bc8aba86ecf676539608c03eab4bac0c 100755 (executable)
@@ -29,5 +29,6 @@ testfailure apt update
 unset http_proxy
 testsuccess grep 'Unsupported proxy configured' rootdir/tmp/testfailure.output
 
 unset http_proxy
 testsuccess grep 'Unsupported proxy configured' rootdir/tmp/testfailure.output
 
-
-
+echo 'Acquire::http::Proxy "foo://example.org";
+Acquire::https::Proxy "DIRECT";' > rootdir/etc/apt/apt.conf.d/proxy.conf
+testsuccess apt update