<pre style='margin:0'>
Clemens Lang (neverpanic) pushed a commit to branch master
in repository macports-base.

</pre>
<p><a href="https://github.com/macports/macports-base/commit/3a5495f4bb2a0b22c1e96d56a88b6f31f8f601ed">https://github.com/macports/macports-base/commit/3a5495f4bb2a0b22c1e96d56a88b6f31f8f601ed</a></p>
<pre style="white-space: pre; background: #F8F8F8">The following commit(s) were added to refs/heads/master by this push:
<span style='display:block; white-space:pre;color:#404040;'>     new 3a5495f  macports.conf: Allow patterns for host matching
</span>3a5495f is described below

<span style='display:block; white-space:pre;color:#808000;'>commit 3a5495f4bb2a0b22c1e96d56a88b6f31f8f601ed
</span>Author: Rainer Müller <raimue@macports.org>
AuthorDate: Wed Apr 4 22:31:49 2018 +0200

<span style='display:block; white-space:pre;color:#404040;'>    macports.conf: Allow patterns for host matching
</span>---
 doc/macports.conf.5                 |  4 ++--
 doc/macports.conf.5.txt             |  6 ++++--
 doc/macports.conf.in                |  8 +++----
 src/macports1.0/macports.tcl        | 42 ++++++++++++++++++++++---------------
 src/macports1.0/tests/macports.test |  5 ++---
 5 files changed, 37 insertions(+), 28 deletions(-)

<span style='display:block; white-space:pre;color:#808080;'>diff --git a/doc/macports.conf.5 b/doc/macports.conf.5
</span><span style='display:block; white-space:pre;color:#808080;'>index 73bd40d..21bcf37 100644
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/doc/macports.conf.5
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/doc/macports.conf.5
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -721,7 +721,7 @@ host_blacklist
</span> 
 
 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-Space separated list of download hosts that should not be used\&.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Space separated list of glob patterns\&. Any download host matching one of these patterns will not be used\&.
</span> .TS
 tab(:);
 lt lt.
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -740,7 +740,7 @@ preferred_hosts
</span> 
 
 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-Space separated list of download hosts that should be used preferentially\&.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Space separated list of glob patterns\&. Any download host matching one of these patterns will be preferred\&.
</span> .TS
 tab(:);
 lt lt.
<span style='display:block; white-space:pre;color:#808080;'>diff --git a/doc/macports.conf.5.txt b/doc/macports.conf.5.txt
</span><span style='display:block; white-space:pre;color:#808080;'>index 4e5f12b..b5f3c03 100644
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/doc/macports.conf.5.txt
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/doc/macports.conf.5.txt
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -207,11 +207,13 @@ proxy_skip::
</span>     *Default:*;; none
 
 host_blacklist::
<span style='display:block; white-space:pre;background:#ffe0e0;'>-    Space separated list of download hosts that should not be used.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    Space separated list of glob patterns. Any download host matching one of
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    these patterns will not be used.
</span>     *Default:*;; none
 
 preferred_hosts::
<span style='display:block; white-space:pre;background:#ffe0e0;'>-    Space separated list of download hosts that should be used preferentially.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    Space separated list of glob patterns. Any download host matching one of
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    these patterns will be preferred.
</span>     *Default:*;; none
 
 revupgrade_autorun::
<span style='display:block; white-space:pre;color:#808080;'>diff --git a/doc/macports.conf.in b/doc/macports.conf.in
</span><span style='display:block; white-space:pre;color:#808080;'>index 04ea52e..1f969d9 100644
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/doc/macports.conf.in
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/doc/macports.conf.in
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -180,11 +180,11 @@ universal_archs       @UNIVERSAL_ARCHS@
</span> # has no default value.
 #proxy_skip            host1, host2, host3
 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-# Space-delimited lists of download hosts that MacPorts should not use
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-# and that MacPorts should prefer, respectively, overriding the usual
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-# ping time checks. These have no default values.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# Space-delimited lists of glob patterns matched against download hosts
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# that MacPorts should not use and that MacPorts should prefer, respectively,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# overriding the usual ping time checks. These have no default values.
</span> #host_blacklist           badhost1 badhost2
<span style='display:block; white-space:pre;background:#ffe0e0;'>-#preferred_hosts        preferredhost1 preferredhost2
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+#preferred_hosts           preferredhost1 preferredhost2 *.de.*.macports.org
</span> 
 # Whether MacPorts should automatically run rev-upgrade after upgrading
 # ports.
<span style='display:block; white-space:pre;color:#808080;'>diff --git a/src/macports1.0/macports.tcl b/src/macports1.0/macports.tcl
</span><span style='display:block; white-space:pre;color:#808080;'>index 6a531a0..9f363f7 100644
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/src/macports1.0/macports.tcl
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/src/macports1.0/macports.tcl
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -654,8 +654,7 @@ proc mportinit {{up_ui_options {}} {up_options {}} {up_variations {}}} {
</span>         macports::macosx_deployment_target \
         macports::archivefetch_pubkeys \
         macports::ping_cache \
<span style='display:block; white-space:pre;background:#ffe0e0;'>-        macports::host_blacklisted \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-        macports::host_preferred \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        macports::host_cache \
</span>         macports::delete_la_files \
         macports::cxx_stdlib
 
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -1266,17 +1265,13 @@ match macports.conf.default."
</span>             close $pingfile
         }
     }
<span style='display:block; white-space:pre;background:#ffe0e0;'>-    # set up arrays of blacklisted and preferred hosts
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    if {[info exists macports::host_blacklist]} {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-        foreach host $macports::host_blacklist {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-            set macports::host_blacklisted($host) 1
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-        }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    if {![info exists macports::host_blacklist]} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        set macports::host_blacklist {}
</span>     }
<span style='display:block; white-space:pre;background:#ffe0e0;'>-    if {[info exists macports::preferred_hosts]} {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-        foreach host $macports::preferred_hosts {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-            set macports::host_preferred($host) 1
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-        }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    if {![info exists macports::preferred_hosts]} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        set macports::preferred_hosts {}
</span>     }
<span style='display:block; white-space:pre;background:#e0ffe0;'>+    array set macports::host_cache {}
</span> 
     # load the quick index
     _mports_load_quickindex
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -5219,12 +5214,25 @@ proc macports::revupgrade_buildgraph {port stackname adjlistname revadjlistname
</span> 
 # get cached ping time for host, modified by blacklist and preferred list
 proc macports::get_pingtime {host} {
<span style='display:block; white-space:pre;background:#ffe0e0;'>-    global macports::ping_cache macports::host_blacklisted macports::host_preferred
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    if {[info exists host_blacklisted($host)]} {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-        return -1
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    } elseif {[info exists host_preferred($host)]} {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-        return 1
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    } elseif {[info exists ping_cache($host)]} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    global macports::ping_cache macports::host_cache \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           macports::host_blacklist macports::preferred_hosts
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    if {[info exists host_cache($host)]} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        return $host_cache($host)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    foreach pattern $macports::host_blacklist {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        if {[string match -nocase $pattern $host]} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            set host_cache($host) -1
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            return -1
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    foreach pattern $macports::preferred_hosts {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        if {[string match -nocase $pattern $host]} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            set host_cache($host) 1
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            return 1
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    if {[info exists ping_cache($host)]} {
</span>         # expire entries after 1 day
         if {[clock seconds] - [lindex $ping_cache($host) 1] <= 86400} {
             return [lindex $ping_cache($host) 0]
<span style='display:block; white-space:pre;color:#808080;'>diff --git a/src/macports1.0/tests/macports.test b/src/macports1.0/tests/macports.test
</span><span style='display:block; white-space:pre;color:#808080;'>index 2db75c1..2f51a91 100644
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/src/macports1.0/tests/macports.test
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/src/macports1.0/tests/macports.test
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -957,9 +957,8 @@ test get_pingtime {
</span> } -setup {
     set time [expr [clock seconds] - 86300]
     set macports::ping_cache(macports.org) [list MacPorts $time]
<span style='display:block; white-space:pre;background:#ffe0e0;'>-    set macports::host_blacklisted(macports_blacklist) [list black $time]
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    set macports::host_preferred(macports_pref) [list pref $time]
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    set macports::host_blacklist macports_blacklist
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    set macports::preferred_hosts macports_pref
</span> } -body {
     if {[macports::get_pingtime macports.org] ne "MacPorts"} {
        return "FAIL: wrong ping time"
</pre><pre style='margin:0'>

</pre>