sforkowany z mirror/friendica
"gprobe" removed
rodzic
85ae12a873
commit
88a39ea999
|
@ -580,9 +580,6 @@ class GContact
|
||||||
public static function getId($contact)
|
public static function getId($contact)
|
||||||
{
|
{
|
||||||
$gcontact_id = 0;
|
$gcontact_id = 0;
|
||||||
$doprobing = false;
|
|
||||||
$last_failure_str = '';
|
|
||||||
$last_contact_str = '';
|
|
||||||
|
|
||||||
if (empty($contact['network'])) {
|
if (empty($contact['network'])) {
|
||||||
Logger::notice('Empty network', ['url' => $contact['url'], 'callstack' => System::callstack()]);
|
Logger::notice('Empty network', ['url' => $contact['url'], 'callstack' => System::callstack()]);
|
||||||
|
@ -613,15 +610,6 @@ class GContact
|
||||||
$gcnt = DBA::selectFirst('gcontact', $fields, ['nurl' => Strings::normaliseLink($contact['url'])]);
|
$gcnt = DBA::selectFirst('gcontact', $fields, ['nurl' => Strings::normaliseLink($contact['url'])]);
|
||||||
if (DBA::isResult($gcnt)) {
|
if (DBA::isResult($gcnt)) {
|
||||||
$gcontact_id = $gcnt['id'];
|
$gcontact_id = $gcnt['id'];
|
||||||
|
|
||||||
// Update every 90 days
|
|
||||||
if (empty($gcnt['network']) || in_array($gcnt['network'], Protocol::FEDERATED)) {
|
|
||||||
$last_failure_str = $gcnt['last_failure'];
|
|
||||||
$last_failure = strtotime($gcnt['last_failure']);
|
|
||||||
$last_contact_str = $gcnt['last_contact'];
|
|
||||||
$last_contact = strtotime($gcnt['last_contact']);
|
|
||||||
$doprobing = (((time() - $last_contact) > (90 * 86400)) && ((time() - $last_failure) > (90 * 86400)));
|
|
||||||
}
|
|
||||||
} else {
|
} else {
|
||||||
$contact['location'] = $contact['location'] ?? '';
|
$contact['location'] = $contact['location'] ?? '';
|
||||||
$contact['about'] = $contact['about'] ?? '';
|
$contact['about'] = $contact['about'] ?? '';
|
||||||
|
@ -638,16 +626,10 @@ class GContact
|
||||||
$cnt = DBA::selectFirst('gcontact', ['id', 'network'], $condition, ['order' => ['id']]);
|
$cnt = DBA::selectFirst('gcontact', ['id', 'network'], $condition, ['order' => ['id']]);
|
||||||
if (DBA::isResult($cnt)) {
|
if (DBA::isResult($cnt)) {
|
||||||
$gcontact_id = $cnt['id'];
|
$gcontact_id = $cnt['id'];
|
||||||
$doprobing = (empty($cnt['network']) || in_array($cnt['network'], Protocol::FEDERATED));
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
DBA::unlock();
|
DBA::unlock();
|
||||||
|
|
||||||
if ($doprobing) {
|
|
||||||
Logger::notice('Probing', ['contact' => $last_contact_str, "failure" => $last_failure_str, "checking" => $contact['url']]);
|
|
||||||
Worker::add(PRIORITY_LOW, 'GProbe', $contact['url']);
|
|
||||||
}
|
|
||||||
|
|
||||||
return $gcontact_id;
|
return $gcontact_id;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -1074,8 +1074,6 @@ class Profile
|
||||||
|
|
||||||
Logger::log('Not authenticated. Invoking reverse magic-auth for ' . $my_url, Logger::DEBUG);
|
Logger::log('Not authenticated. Invoking reverse magic-auth for ' . $my_url, Logger::DEBUG);
|
||||||
|
|
||||||
Worker::add(PRIORITY_LOW, 'GProbe', $my_url);
|
|
||||||
|
|
||||||
// Remove the "addr" parameter from the destination. It is later added as separate parameter again.
|
// Remove the "addr" parameter from the destination. It is later added as separate parameter again.
|
||||||
$addr_request = 'addr=' . urlencode($addr);
|
$addr_request = 'addr=' . urlencode($addr);
|
||||||
$query = rtrim(str_replace($addr_request, '', $a->query_string), '?&');
|
$query = rtrim(str_replace($addr_request, '', $a->query_string), '?&');
|
||||||
|
|
|
@ -1,68 +0,0 @@
|
||||||
<?php
|
|
||||||
/**
|
|
||||||
* @file src/Worker/GProbe.php
|
|
||||||
*/
|
|
||||||
|
|
||||||
namespace Friendica\Worker;
|
|
||||||
|
|
||||||
use Friendica\Core\Cache;
|
|
||||||
use Friendica\Core\Logger;
|
|
||||||
use Friendica\Core\Protocol;
|
|
||||||
use Friendica\Database\DBA;
|
|
||||||
use Friendica\Model\GContact;
|
|
||||||
use Friendica\Network\Probe;
|
|
||||||
use Friendica\Protocol\PortableContact;
|
|
||||||
use Friendica\Util\Strings;
|
|
||||||
|
|
||||||
class GProbe {
|
|
||||||
public static function execute($url = '')
|
|
||||||
{
|
|
||||||
if (empty($url)) {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
$r = q(
|
|
||||||
"SELECT `id`, `url`, `network` FROM `gcontact` WHERE `nurl` = '%s' ORDER BY `id` LIMIT 1",
|
|
||||||
DBA::escape(Strings::normaliseLink($url))
|
|
||||||
);
|
|
||||||
|
|
||||||
Logger::log("gprobe start for ".Strings::normaliseLink($url), Logger::DEBUG);
|
|
||||||
|
|
||||||
if (!DBA::isResult($r)) {
|
|
||||||
// Is it a DDoS attempt?
|
|
||||||
$urlparts = parse_url($url);
|
|
||||||
|
|
||||||
$result = Cache::get("gprobe:".$urlparts["host"]);
|
|
||||||
if (!is_null($result)) {
|
|
||||||
if (in_array($result["network"], [Protocol::FEED, Protocol::PHANTOM])) {
|
|
||||||
Logger::debug("DDoS attempt detected for " . $urlparts["host"] . " by " . ($_SERVER["REMOTE_ADDR"] ?? ''), ['$_SERVER' => $_SERVER]);
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
$arr = Probe::uri($url);
|
|
||||||
|
|
||||||
if (is_null($result)) {
|
|
||||||
Cache::set("gprobe:".$urlparts["host"], $arr);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!in_array($arr["network"], [Protocol::FEED, Protocol::PHANTOM])) {
|
|
||||||
GContact::update($arr);
|
|
||||||
}
|
|
||||||
|
|
||||||
$r = q(
|
|
||||||
"SELECT `id`, `url`, `network` FROM `gcontact` WHERE `nurl` = '%s' ORDER BY `id` LIMIT 1",
|
|
||||||
DBA::escape(Strings::normaliseLink($url))
|
|
||||||
);
|
|
||||||
}
|
|
||||||
if (DBA::isResult($r)) {
|
|
||||||
// Check for accessibility and do a poco discovery
|
|
||||||
if (GContact::updateFromProbe($r[0]['url'], true) && ($r[0]["network"] == Protocol::DFRN)) {
|
|
||||||
PortableContact::loadWorker(0, 0, $r[0]['id'], str_replace('/profile/', '/poco/', $r[0]['url']));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
Logger::log("gprobe end for ".Strings::normaliseLink($url), Logger::DEBUG);
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
}
|
|
Ładowanie…
Reference in New Issue