webfinger: better handling of URLs that contain a @

This commit is contained in:
Mario Vavti 2019-07-12 12:43:12 +02:00
parent 407b02bde8
commit 090d921006

View File

@ -1183,12 +1183,12 @@ function discover_by_webbie($webbie, $protocol = '') {
*/ */
function webfinger_rfc7033($webbie, $zot = false) { function webfinger_rfc7033($webbie, $zot = false) {
if(strpos($webbie,'@')) { if(filter_var($webbie, FILTER_VALIDATE_EMAIL)) {
$lhs = substr($webbie,0,strpos($webbie,'@')); $lhs = substr($webbie,0,strpos($webbie,'@'));
$rhs = substr($webbie,strpos($webbie,'@')+1); $rhs = substr($webbie,strpos($webbie,'@')+1);
$resource = urlencode('acct:' . $webbie); $resource = urlencode('acct:' . $webbie);
} }
else { elseif(filter_var($webbie, FILTER_VALIDATE_URL)) {
$m = parse_url($webbie); $m = parse_url($webbie);
if($m) { if($m) {
if($m['scheme'] !== 'https') if($m['scheme'] !== 'https')
@ -1197,9 +1197,10 @@ function webfinger_rfc7033($webbie, $zot = false) {
$rhs = $m['host'] . (($m['port']) ? ':' . $m['port'] : ''); $rhs = $m['host'] . (($m['port']) ? ':' . $m['port'] : '');
$resource = urlencode($webbie); $resource = urlencode($webbie);
} }
else
return false;
} }
else
return false;
logger('fetching url from resource: ' . $rhs . ':' . $webbie); logger('fetching url from resource: ' . $rhs . ':' . $webbie);
$counter = 0; $counter = 0;
@ -1217,7 +1218,7 @@ function webfinger_rfc7033($webbie, $zot = false) {
function old_webfinger($webbie) { function old_webfinger($webbie) {
$host = ''; $host = '';
if(strstr($webbie,'@')) if(filter_var($webbie, FILTER_VALIDATE_EMAIL))
$host = substr($webbie,strpos($webbie,'@') + 1); $host = substr($webbie,strpos($webbie,'@') + 1);
if(strlen($host)) { if(strlen($host)) {