<?php
/**
- * @copyright Copyright (C) 2010-2022, the Friendica project
+ * @copyright Copyright (C) 2010-2023, the Friendica project
*
* @license GNU AGPL version 3 or any later version
*
namespace Friendica\Util;
use Friendica\Core\Logger;
+use Friendica\Core\Protocol;
use Friendica\Database\Database;
use Friendica\Database\DBA;
use Friendica\DI;
use Friendica\Model\APContact;
use Friendica\Model\Contact;
+use Friendica\Model\GServer;
use Friendica\Model\ItemURI;
use Friendica\Model\User;
use Friendica\Network\HTTPClient\Capability\ICanHandleHttpResponses;
if (!empty($gsid)) {
$insertFields['gsid'] = $gsid;
}
- if (!DBA::insert('inbox-status', $insertFields, Database::INSERT_IGNORE)) {
+ DBA::insert('inbox-status', $insertFields, Database::INSERT_IGNORE);
+
+ $status = DBA::selectFirst('inbox-status', [], ['url' => $url]);
+ if (empty($status)) {
Logger::warning('Unable to insert inbox-status row', $insertFields);
return;
}
-
- $status = DBA::selectFirst('inbox-status', [], ['url' => $url]);
}
if ($success) {
}
DBA::update('inbox-status', $fields, ['url' => $url]);
+
+ if (!empty($status['gsid'])) {
+ if ($success) {
+ GServer::setReachableById($status['gsid'], Protocol::ACTIVITYPUB);
+ } elseif ($status['shared']) {
+ GServer::setFailureById($status['gsid']);
+ }
+ }
}
/**