aboutsummaryrefslogtreecommitdiffstats
path: root/include/network.php
diff options
context:
space:
mode:
authorFriendika <info@friendika.com>2011-09-06 18:06:19 -0700
committerFriendika <info@friendika.com>2011-09-06 18:06:19 -0700
commita5125359d85afa056aee18a73692b6d1a587be47 (patch)
tree55b3715df1499528d4cfb2d7a488ccd0f61ab906 /include/network.php
parent18315a1377f212d56df61c5a5095892e8fcaf77f (diff)
downloadvolse-hubzilla-a5125359d85afa056aee18a73692b6d1a587be47.tar.gz
volse-hubzilla-a5125359d85afa056aee18a73692b6d1a587be47.tar.bz2
volse-hubzilla-a5125359d85afa056aee18a73692b6d1a587be47.zip
faster friend requests (DFRN)
Diffstat (limited to 'include/network.php')
-rw-r--r--include/network.php19
1 files changed, 13 insertions, 6 deletions
diff --git a/include/network.php b/include/network.php
index 2832ae2d3..deb257ff3 100644
--- a/include/network.php
+++ b/include/network.php
@@ -259,22 +259,29 @@ function convert_xml_element_to_array($xml_element, &$recursion_depth=0) {
// or if the resultant personal XRD doesn't contain a supported
// subscription/friend-request attribute.
+// amended 7/9/2011 to return an hcard which could save potentially loading
+// a lengthy content page to scrape dfrn attributes
+
if(! function_exists('webfinger_dfrn')) {
-function webfinger_dfrn($s) {
+function webfinger_dfrn($s,&$hcard) {
if(! strstr($s,'@')) {
return $s;
}
+ $profile_link = '';
+
$links = webfinger($s);
logger('webfinger_dfrn: ' . $s . ':' . print_r($links,true), LOGGER_DATA);
if(count($links)) {
- foreach($links as $link)
+ foreach($links as $link) {
if($link['@attributes']['rel'] === NAMESPACE_DFRN)
- return $link['@attributes']['href'];
- foreach($links as $link)
+ $profile_link = $link['@attributes']['href'];
if($link['@attributes']['rel'] === NAMESPACE_OSTATUSSUB)
- return 'stat:' . $link['@attributes']['template'];
+ $profile_link = 'stat:' . $link['@attributes']['template'];
+ if($link['@attributes']['rel'] === 'http://microformats.org/profile/hcard')
+ $hcard = $link['@attributes']['href'];
+ }
}
- return '';
+ return $profile_link;
}}
// Given an email style address, perform webfinger lookup and