From 738e22d3ebbde958e8eec1cf26f287fee978c7d1 Mon Sep 17 00:00:00 2001 From: Roland Haeder Date: Sun, 1 May 2016 14:52:48 +0200 Subject: [PATCH] Some fixes: - Letting $profile_link and $hcard always been overwritten with newly found entries has caused DFRN network detectio to fail and "connect" is no longer working. This fix makes sure that these both variables are only set if they are still empty. - added more debug lines to see which URL was it before and after webfinger "detection" Signed-off-by: Roland Haeder --- include/network.php | 7 ++++--- mod/dfrn_request.php | 4 ++++ 2 files changed, 8 insertions(+), 3 deletions(-) diff --git a/include/network.php b/include/network.php index d27a090fe2..a7f944d90a 100644 --- a/include/network.php +++ b/include/network.php @@ -393,12 +393,13 @@ function webfinger_dfrn($webbie,&$hcard) { logger('webfinger_dfrn: ' . $webbie . ':' . print_r($links,true), LOGGER_DATA); if(count($links)) { foreach($links as $link) { - if($link['@attributes']['rel'] === NAMESPACE_DFRN) + if(empty($profile_link) && $link['@attributes']['rel'] === NAMESPACE_DFRN) { $profile_link = $link['@attributes']['href']; - if($link['@attributes']['rel'] === NAMESPACE_OSTATUSSUB) + } elseif(empty($profile_link) && $link['@attributes']['rel'] === NAMESPACE_OSTATUSSUB) { $profile_link = 'stat:' . $link['@attributes']['template']; - if($link['@attributes']['rel'] === 'http://microformats.org/profile/hcard') + } elseif(empty($hcard) && $link['@attributes']['rel'] === 'http://microformats.org/profile/hcard') { $hcard = $link['@attributes']['href']; + } } } return $profile_link; diff --git a/mod/dfrn_request.php b/mod/dfrn_request.php index 5932b9b669..dc9d32adf4 100644 --- a/mod/dfrn_request.php +++ b/mod/dfrn_request.php @@ -441,9 +441,13 @@ function dfrn_request_post(&$a) { $data = probe_url($url); $network = $data["network"]; + logger('dfrn_request: url=' . $url . ',network=' . $network . ',hcard=' . $hcard . ' - BEFORE!', LOGGER_DEBUG); + // Canonicalise email-style profile locator $url = webfinger_dfrn($url,$hcard); + logger('dfrn_request: url=' . $url . ',network=' . $network . ',hcard=' . $hcard . ' - AFTER!', LOGGER_DEBUG); + if (substr($url,0,5) === 'stat:') { // Every time we detect the remote subscription we define this as OStatus. -- 2.39.5