Skip to content

Commit

Permalink
Merge pull request #12700 from Quix0r/features/blocklist-gserver
Browse files Browse the repository at this point in the history
Blocked domains flood gserver entries
  • Loading branch information
MrPetovan committed Jan 21, 2023
2 parents 208d6db + 27969e8 commit 0681f94
Show file tree
Hide file tree
Showing 2 changed files with 20 additions and 5 deletions.
21 changes: 18 additions & 3 deletions src/Model/GServer.php
Original file line number Diff line number Diff line change
Expand Up @@ -455,22 +455,34 @@ public static function setBlockedByUrl(string $url)
* Set failed server status
*
* @param string $url
* @return void
*/
public static function setFailureByUrl(string $url)
{
$gserver = DBA::selectFirst('gserver', [], ['nurl' => Strings::normaliseLink($url)]);
$nurl = Strings::normaliseLink($url);

$gserver = DBA::selectFirst('gserver', [], ['nurl' => $nurl]);
if (DBA::isResult($gserver)) {
$next_update = self::getNextUpdateDate(false, $gserver['created'], $gserver['last_contact']);
self::update(['url' => $url, 'failed' => true, 'blocked' => Network::isUrlBlocked($url), 'last_failure' => DateTimeFormat::utcNow(),
'next_contact' => $next_update, 'network' => Protocol::PHANTOM, 'detection-method' => null],
['nurl' => Strings::normaliseLink($url)]);
['nurl' => $nurl]);
Logger::info('Set failed status for existing server', ['url' => $url]);
if (self::isDefunct($gserver)) {
self::archiveContacts($gserver['id']);
}
return;
}
self::insert(['url' => $url, 'nurl' => Strings::normaliseLink($url),

if (Network::isUrlBlocked($url)) {
Logger::info('Server domain is blocked', ['url' => $url]);
return;
} elseif (Network::isUrlBlocked($nurl)) {
Logger::info('Server domain is blocked', ['nurl' => $nurl]);
return;
}

self::insert(['url' => $url, 'nurl' => $nurl,
'network' => Protocol::PHANTOM, 'created' => DateTimeFormat::utcNow(),
'failed' => true, 'last_failure' => DateTimeFormat::utcNow()]);
Logger::info('Set failed status for new server', ['url' => $url]);
Expand Down Expand Up @@ -560,6 +572,9 @@ private static function detect(string $url, string $network = '', bool $only_nod
self::detect($url, $network, $only_nodeinfo);
}
return false;
} elseif (Network::isUrlBlocked($url)) {
Logger::info('Server domain is blocked', ['url' => $url]);
return false;
}

$valid_url = Network::isUrlValid($url);
Expand Down
4 changes: 2 additions & 2 deletions src/Worker/UpdateServerPeers.php
Original file line number Diff line number Diff line change
Expand Up @@ -57,13 +57,13 @@ public static function execute(string $url)
$total = 0;
$added = 0;
foreach ($peers as $peer) {
if (Network::isUrlBlocked('http://' . $peer)) {
if (Network::isUrlBlocked('https://' . $peer)) {
// Ignore blocked systems as soon as possible in the loop to avoid being slowed down by tar pits
continue;
}

++$total;
if (DBA::exists('gserver', ['nurl' => Strings::normaliseLink('http://' . $peer)])) {
if (DBA::exists('gserver', ['nurl' => 'http://' . $peer])) {
// We already know this server
continue;
}
Expand Down

0 comments on commit 0681f94

Please sign in to comment.