X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=src%2FWorker%2FUpdateGServer.php;h=1085c467c7b9df2645256f91d769a80a65a7d04f;hb=60532ee7e4152af9997e0d7b69c7b35262d5528d;hp=2e017422fee3236e106ca5ac98742700eaec3647;hpb=26ac9a0063dba3eeb1a20d4fe8648e20386bf364;p=friendica.git diff --git a/src/Worker/UpdateGServer.php b/src/Worker/UpdateGServer.php index 2e017422fe..1085c467c7 100644 --- a/src/Worker/UpdateGServer.php +++ b/src/Worker/UpdateGServer.php @@ -1,28 +1,62 @@ . + * */ + namespace Friendica\Worker; use Friendica\Core\Logger; +use Friendica\Database\DBA; use Friendica\Model\GServer; use Friendica\Util\Strings; class UpdateGServer { - // Searches for the poco server list. - public static function execute($server_url) + /** + * Update the given server + * @param string $server_url Server URL + * @param boolean $only_nodeinfo Only use nodeinfo for server detection + */ + public static function execute(string $server_url, bool $only_nodeinfo = false) { if (empty($server_url)) { return; } - $server_url = filter_var($server_url, FILTER_SANITIZE_URL); - if (substr(Strings::normaliseLink($server_url), 0, 7) != 'http://') { + $filtered = filter_var($server_url, FILTER_SANITIZE_URL); + if (substr(Strings::normaliseLink($filtered), 0, 7) != 'http://') { + GServer::setFailure($server_url); + return; + } + + if (($filtered != $server_url) && DBA::exists('gserver', ['nurl' => Strings::normaliseLink($server_url)])) { + GServer::setFailure($server_url); + return; + } + + $cleaned = GServer::cleanURL($server_url); + if (($cleaned != $server_url) && DBA::exists('gserver', ['nurl' => Strings::normaliseLink($server_url)])) { + GServer::setFailure($server_url); return; } - $ret = GServer::check($server_url); - Logger::info('Updated gserver', ['url' => $server_url, 'result' => $ret]); + $ret = GServer::check($filtered, '', true, $only_nodeinfo); + Logger::info('Updated gserver', ['url' => $filtered, 'result' => $ret]); } }