diff --git a/src/Network/Probe.php b/src/Network/Probe.php index 1bc0f9d63..8f236796a 100644 --- a/src/Network/Probe.php +++ b/src/Network/Probe.php @@ -944,6 +944,11 @@ class Probe $prof_data["fn"] = $data["name"]; $prof_data["key"] = $data["pubkey"]; + // This logging is for temporarily debugging reasons + if (!isset($data["poco"])) { + logger('POCO not defined for ' . profile_link, LOGGER_DEBUG); + } + logger("Result for profile ".$profile_link.": ".print_r($prof_data, true), LOGGER_DEBUG); return $prof_data; diff --git a/src/Protocol/Diaspora.php b/src/Protocol/Diaspora.php index e46385785..83afa6188 100644 --- a/src/Protocol/Diaspora.php +++ b/src/Protocol/Diaspora.php @@ -1374,15 +1374,12 @@ class Diaspora $item = Item::selectFirst($fields, $condition); if (!DBA::isResult($item)) { - if (!isset($contact["url"])) { - logger('Missing URL: ' . System::callstack() . ' - ' . json_encode($contact)); - } + $person = self::personByHandle($author); + $result = self::storeByGuid($guid, $person["url"], $uid); - $result = self::storeByGuid($guid, $contact["url"], $uid); - - if (!$result) { - $person = self::personByHandle($author); - $result = self::storeByGuid($guid, $person["url"], $uid); + // We don't have an url for items that arrived at the public dispatcher + if (!$result && !empty($contact["url"])) { + $result = self::storeByGuid($guid, $contact["url"], $uid); } if ($result) { diff --git a/src/Protocol/PortableContact.php b/src/Protocol/PortableContact.php index 3183a192f..aa86a0002 100644 --- a/src/Protocol/PortableContact.php +++ b/src/Protocol/PortableContact.php @@ -659,6 +659,10 @@ class PortableContact $nodeinfo2_url = ''; foreach ($nodeinfo['links'] as $link) { + if (!is_array($link) || empty($link['rel'])) { + logger('Invalid nodeinfo format for ' . $server_url, LOGGER_DEBUG); + continue; + } if ($link['rel'] == 'http://nodeinfo.diaspora.software/ns/schema/1.0') { $nodeinfo1_url = $link['href']; } elseif ($link['rel'] == 'http://nodeinfo.diaspora.software/ns/schema/2.0') {