diff options
author | Mario Vavti <mario@mariovavti.com> | 2019-07-12 12:43:12 +0200 |
---|---|---|
committer | Mario Vavti <mario@mariovavti.com> | 2019-07-12 12:43:12 +0200 |
commit | 090d9210062e1ab5a666210551eed30a61fd609c (patch) | |
tree | 2ded68d917dc3762dc958e2c76db0ef62ee9d84e | |
parent | 407b02bde8cc8492eefc9260c8ae6becfee2211a (diff) | |
download | volse-hubzilla-090d9210062e1ab5a666210551eed30a61fd609c.tar.gz volse-hubzilla-090d9210062e1ab5a666210551eed30a61fd609c.tar.bz2 volse-hubzilla-090d9210062e1ab5a666210551eed30a61fd609c.zip |
webfinger: better handling of URLs that contain a @
-rw-r--r-- | include/network.php | 11 |
1 files changed, 6 insertions, 5 deletions
diff --git a/include/network.php b/include/network.php index c754625cd..f6992291d 100644 --- a/include/network.php +++ b/include/network.php @@ -1183,12 +1183,12 @@ function discover_by_webbie($webbie, $protocol = '') { */ function webfinger_rfc7033($webbie, $zot = false) { - if(strpos($webbie,'@')) { + if(filter_var($webbie, FILTER_VALIDATE_EMAIL)) { $lhs = substr($webbie,0,strpos($webbie,'@')); $rhs = substr($webbie,strpos($webbie,'@')+1); $resource = urlencode('acct:' . $webbie); } - else { + elseif(filter_var($webbie, FILTER_VALIDATE_URL)) { $m = parse_url($webbie); if($m) { if($m['scheme'] !== 'https') @@ -1197,9 +1197,10 @@ function webfinger_rfc7033($webbie, $zot = false) { $rhs = $m['host'] . (($m['port']) ? ':' . $m['port'] : ''); $resource = urlencode($webbie); } - else - return false; } + else + return false; + logger('fetching url from resource: ' . $rhs . ':' . $webbie); $counter = 0; @@ -1217,7 +1218,7 @@ function webfinger_rfc7033($webbie, $zot = false) { function old_webfinger($webbie) { $host = ''; - if(strstr($webbie,'@')) + if(filter_var($webbie, FILTER_VALIDATE_EMAIL)) $host = substr($webbie,strpos($webbie,'@') + 1); if(strlen($host)) { |