mirror of
https://github.com/friendica/friendica
synced 2024-12-23 07: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)
|
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)) {
|
if (DBA::isResult($gserver)) {
|
||||||
$next_update = self::getNextUpdateDate(false, $gserver['created'], $gserver['last_contact']);
|
$next_update = self::getNextUpdateDate(false, $gserver['created'], $gserver['last_contact']);
|
||||||
self::update(['url' => $url, 'failed' => true, 'blocked' => Network::isUrlBlocked($url), 'last_failure' => DateTimeFormat::utcNow(),
|
self::update(['url' => $url, 'failed' => true, 'blocked' => Network::isUrlBlocked($url), 'last_failure' => DateTimeFormat::utcNow(),
|
||||||
'next_contact' => $next_update, 'network' => Protocol::PHANTOM, 'detection-method' => null],
|
'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]);
|
Logger::info('Set failed status for existing server', ['url' => $url]);
|
||||||
if (self::isDefunct($gserver)) {
|
if (self::isDefunct($gserver)) {
|
||||||
self::archiveContacts($gserver['id']);
|
self::archiveContacts($gserver['id']);
|
||||||
}
|
}
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
self::insert(['url' => $url, 'nurl' => Strings::normaliseLink($url),
|
|
||||||
|
self::insert(['url' => $url, 'nurl' => $nurl,
|
||||||
'network' => Protocol::PHANTOM, 'created' => DateTimeFormat::utcNow(),
|
'network' => Protocol::PHANTOM, 'created' => DateTimeFormat::utcNow(),
|
||||||
'failed' => true, 'last_failure' => DateTimeFormat::utcNow()]);
|
'failed' => true, 'last_failure' => DateTimeFormat::utcNow()]);
|
||||||
Logger::info('Set failed status for new server', ['url' => $url]);
|
Logger::info('Set failed status for new server', ['url' => $url]);
|
||||||
|
@ -560,6 +571,9 @@ class GServer
|
||||||
self::detect($url, $network, $only_nodeinfo);
|
self::detect($url, $network, $only_nodeinfo);
|
||||||
}
|
}
|
||||||
return false;
|
return false;
|
||||||
|
} elseif (Network::isUrlBlocked($url)) {
|
||||||
|
Logger::info('Server domain is blocked', ['url' => $url]);
|
||||||
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
$valid_url = Network::isUrlValid($url);
|
$valid_url = Network::isUrlValid($url);
|
||||||
|
|
Loading…
Reference in a new issue