Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/matomo-org/matomo.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRichard John <richard.john@gmail.com>2018-07-01 21:54:52 +0300
committerStefan Giehl <stefan@piwik.org>2018-07-01 21:54:51 +0300
commite515c230a15be68e179a626c7f9ccfbab436e7cd (patch)
tree10c63d80ee44d42b937c76859a5b7cbcac71776e /plugins/Provider
parentac07aa40497901c7f2a7a99166a88a1b72265d53 (diff)
Fixes #13045 - only attempt to link provider if it's a valid hostname (#13120)
Diffstat (limited to 'plugins/Provider')
-rw-r--r--plugins/Provider/functions.php12
1 files changed, 7 insertions, 5 deletions
diff --git a/plugins/Provider/functions.php b/plugins/Provider/functions.php
index 3e2c4a2da8..60cf4d83d6 100644
--- a/plugins/Provider/functions.php
+++ b/plugins/Provider/functions.php
@@ -11,6 +11,7 @@ namespace Piwik\Plugins\Provider;
use Piwik\Common;
use Piwik\DataTable;
use Piwik\Piwik;
+use Zend_Validate_Hostname as HostnameValidator;
/**
* Return hostname portion of a domain name
@@ -40,12 +41,13 @@ function getHostnameUrl($in)
if ($in == DataTable::LABEL_SUMMARY_ROW || empty($in) || strtolower($in) === 'ip') {
return null;
}
-
- // if the name looks like it can be used in a URL, use it in one, otherwise link to startpage
- if (preg_match("/^[-a-zA-Z0-9_.]+$/", $in)) {
- return "http://www." . $in . "/";
+
+ // if the name is a valid hostname, return a URL - otherwise link to startpage
+ $validator = new HostnameValidator;
+ if ($validator->isValid($in)) {
+ return "http://" . $in . "/";
} else {
- return "https://startpage.com/do/search?q=" . urlencode($in);
+ return "https://startpage.com/do/search?q=" . urlencode(getPrettyProviderName($in));
}
}