aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMario Vavti <mario@mariovavti.com>2019-07-12 12:43:12 +0200
committerMario Vavti <mario@mariovavti.com>2019-07-12 12:43:12 +0200
commit090d9210062e1ab5a666210551eed30a61fd609c (patch)
tree2ded68d917dc3762dc958e2c76db0ef62ee9d84e
parent407b02bde8cc8492eefc9260c8ae6becfee2211a (diff)
downloadvolse-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.php11
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)) {