Fix handling of relais contact updates
This commit is contained in:
parent
b8396daca2
commit
b75fdbbd32
|
@ -2819,14 +2819,20 @@ class Contact
|
||||||
}
|
}
|
||||||
|
|
||||||
// We must not try to update relay contacts via probe. They are no real contacts.
|
// We must not try to update relay contacts via probe. They are no real contacts.
|
||||||
|
// See Relay::updateContact() for more details.
|
||||||
// We check after the probing to be able to correct falsely detected contact types.
|
// We check after the probing to be able to correct falsely detected contact types.
|
||||||
if (($contact['contact-type'] == self::TYPE_RELAY) &&
|
if (($contact['contact-type'] == self::TYPE_RELAY) && Strings::compareLink($contact['url'], $contact['baseurl']) &&
|
||||||
(!Strings::compareLink($ret['url'], $contact['url']) || in_array($ret['network'], [Protocol::FEED, Protocol::PHANTOM]))
|
(!Strings::compareLink($ret['url'], $contact['url']) || in_array($ret['network'], [Protocol::FEED, Protocol::PHANTOM]))
|
||||||
) {
|
) {
|
||||||
self::updateContact($id, $uid, $uriid, $contact['url'], ['failed' => false, 'local-data' => $has_local_data, 'last-update' => $updated, 'next-update' => $success_next_update, 'success_update' => $updated]);
|
if (GServer::reachable($contact)) {
|
||||||
|
self::updateContact($id, $uid, $uriid, $contact['url'], ['failed' => false, 'local-data' => $has_local_data, 'last-update' => $updated, 'next-update' => $success_next_update, 'success_update' => $updated, 'unsearchable' => true]);
|
||||||
Logger::info('Not updating relais', ['id' => $id, 'url' => $contact['url']]);
|
Logger::info('Not updating relais', ['id' => $id, 'url' => $contact['url']]);
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
Logger::info('Relais server is not reachable', ['id' => $id, 'url' => $contact['url']]);
|
||||||
|
self::updateContact($id, $uid, $uriid, $contact['url'], ['failed' => true, 'local-data' => $has_local_data, 'last-update' => $updated, 'next-update' => $failed_next_update, 'failure_update' => $updated, 'unsearchable' => true]);
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
// If Probe::uri fails the network code will be different ("feed" or "unkn")
|
// If Probe::uri fails the network code will be different ("feed" or "unkn")
|
||||||
if (($ret['network'] == Protocol::PHANTOM) || (($ret['network'] == Protocol::FEED) && ($ret['network'] != $contact['network']))) {
|
if (($ret['network'] == Protocol::PHANTOM) || (($ret['network'] == Protocol::FEED) && ($ret['network'] != $contact['network']))) {
|
||||||
|
|
Loading…
Reference in New Issue
Block a user