mirror of
https://github.com/friendica/friendica
synced 2024-12-23 03:20:15 +00:00
Continued:
- some trolls managed to flood gserver with useless URLs. They can be blocked by domain blocking them, but still it floods gserver table with dead entries - this hack tries to change that so they won't enter gserver at all. Let's hope these trolls as `activitypub-trolls.cf` learn a lesson (and get adults soon) Signed-off-by: Roland Häder <roland@mxchange.org>
This commit is contained in:
parent
208d6db776
commit
a0704db43a
1 changed files with 17 additions and 3 deletions
|
@ -458,19 +458,30 @@ class GServer
|
|||
*/
|
||||
public static function setFailureByUrl(string $url)
|
||||
{
|
||||
$gserver = DBA::selectFirst('gserver', [], ['nurl' => Strings::normaliseLink($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;
|
||||
}
|
||||
|
||||
$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),
|
||||
|
||||
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]);
|
||||
|
@ -560,6 +571,9 @@ class GServer
|
|||
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);
|
||||
|
|
Loading…
Reference in a new issue