diff options
author | zotlabs <mike@macgirvin.com> | 2018-12-09 16:37:15 -0800 |
---|---|---|
committer | zotlabs <mike@macgirvin.com> | 2018-12-09 16:37:15 -0800 |
commit | 214b81e49174b98f09382eec3ef2bd7ecf24ad01 (patch) | |
tree | f1d16273140bbc0f54438a27d124459573916931 /include/network.php | |
parent | e60fb175242516382d1e1a61fce327c38515f3ee (diff) | |
download | volse-hubzilla-214b81e49174b98f09382eec3ef2bd7ecf24ad01.tar.gz volse-hubzilla-214b81e49174b98f09382eec3ef2bd7ecf24ad01.tar.bz2 volse-hubzilla-214b81e49174b98f09382eec3ef2bd7ecf24ad01.zip |
rmagic discovery for z6 networks
Diffstat (limited to 'include/network.php')
-rw-r--r-- | include/network.php | 29 |
1 files changed, 29 insertions, 0 deletions
diff --git a/include/network.php b/include/network.php index 183a47105..cd352e7db 100644 --- a/include/network.php +++ b/include/network.php @@ -1,4 +1,8 @@ <?php + +use Zotlabs\Lib\Zotfinger; +use Zotlabs\Lib\Libzot; + /** * @file include/network.php * @brief Network related functions. @@ -1196,6 +1200,31 @@ function discover_by_webbie($webbie, $protocol = '') { } } } + + foreach($x['links'] as $link) { + if(array_key_exists('rel',$link)) { + if($link['rel'] === PROTOCOL_ZOT6 && ((! $protocol) || (strtolower($protocol) === 'zot6'))) { + logger('zot6 found for ' . $webbie, LOGGER_DEBUG); + $record = Zotfinger::exec($link['href']); + + // Check the HTTP signature + + $hsig = $record['signature']; + if($hsig && ($hsig['signer'] === $url || $hsig['signer'] === $link['href']) && $hsig['header_valid'] === true && $hsig['content_valid'] === true) + $hsig_valid = true; + + if(! $hsig_valid) { + logger('http signature not valid: ' . print_r($hsig,true)); + continue; + } + + $x = Libzot::import_xchan($record['data']); + if($x['success']) { + return $x['hash']; + } + } + } + } } logger('webfinger: ' . print_r($x,true), LOGGER_DATA, LOG_INFO); |