X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=src%2FModel%2FGServer.php;h=1878befa9f2282440c44a3b0ad19351555cb047c;hb=3f309805919671ce0ae22f82f5a751050a07dce4;hp=477b1f3232f69a312b7b047aca808768664b02f2;hpb=319857edaa1257c885ce7f3a91ee168b95feee10;p=friendica.git diff --git a/src/Model/GServer.php b/src/Model/GServer.php index 477b1f3232..1878befa9f 100644 --- a/src/Model/GServer.php +++ b/src/Model/GServer.php @@ -1,6 +1,6 @@ $gsid]); + $gserver = DBA::selectFirst('gserver', ['url', 'failed', 'next_contact', 'network'], ['id' => $gsid]); if (DBA::isResult($gserver) && $gserver['failed']) { - self::update(['failed' => false, 'last_contact' => DateTimeFormat::utcNow()], ['id' => $gsid]); + $fields = ['failed' => false, 'last_contact' => DateTimeFormat::utcNow()]; + if (!empty($network) && !in_array($gserver['network'], Protocol::FEDERATED)) { + $fields['network'] = $network; + } + self::update($fields, ['id' => $gsid]); Logger::info('Reset failed status for server', ['url' => $gserver['url']]); if (strtotime($gserver['next_contact']) < time()) { @@ -408,7 +413,7 @@ class GServer ['nurl' => Strings::normaliseLink($url)]); Logger::info('Set failed status for existing server', ['url' => $url]); if (self::isDefunct($gserver)) { - Contact::update(['archive' => true], ['gsid' => $gserver['id']]); + self::archiveContacts($gserver['id']); } return; } @@ -418,6 +423,18 @@ class GServer Logger::info('Set failed status for new server', ['url' => $url]); } + /** + * Archive server related contacts and inboxes + * + * @param integer $gsid + * @return void + */ + private static function archiveContacts(int $gsid) + { + Contact::update(['archive' => true], ['gsid' => $gsid]); + DBA::update('inbox-status', ['archive' => true], ['gsid' => $gsid]); + } + /** * Remove unwanted content from the given URL *