X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=include%2Fgprobe.php;h=788a9eb0447fef3ca489dfb0b26cbbbd90380092;hb=0cd9db9cb7f4c96f597e37590a536eaae123238d;hp=bd8503835b346eae7a4b04f337edfead95f65986;hpb=8c8e635d2e9149f035a612c969f0c6287427fc66;p=friendica.git diff --git a/include/gprobe.php b/include/gprobe.php index bd8503835b..788a9eb044 100644 --- a/include/gprobe.php +++ b/include/gprobe.php @@ -1,36 +1,15 @@ set_baseurl(get_config('system','url')); - - load_hooks(); +require_once 'include/probe.php'; +require_once 'include/socgraph.php'; +require_once 'include/datetime.php'; - if($argc != 2) +function gprobe_run(&$argv, &$argc){ + if ($argc != 2) { return; - + } $url = hex2bin($argv[1]); $r = q("SELECT `id`, `url`, `network` FROM `gcontact` WHERE `nurl` = '%s' ORDER BY `id` LIMIT 1", @@ -39,14 +18,13 @@ function gprobe_run(&$argv, &$argc){ logger("gprobe start for ".normalise_link($url), LOGGER_DEBUG); - if(! count($r)) { + if (!dbm::is_result($r)) { // Is it a DDoS attempt? $urlparts = parse_url($url); $result = Cache::get("gprobe:".$urlparts["host"]); if (!is_null($result)) { - $result = unserialize($result); if (in_array($result["network"], array(NETWORK_FEED, NETWORK_PHANTOM))) { logger("DDoS attempt detected for ".$urlparts["host"]." by ".$_SERVER["REMOTE_ADDR"].". server data: ".print_r($_SERVER, true), LOGGER_DEBUG); return; @@ -55,25 +33,24 @@ function gprobe_run(&$argv, &$argc){ $arr = probe_url($url); - if (is_null($result)) - Cache::set("gprobe:".$urlparts["host"],serialize($arr)); + if (is_null($result)) { + Cache::set("gprobe:".$urlparts["host"], $arr); + } - if (!in_array($arr["network"], array(NETWORK_FEED, NETWORK_PHANTOM))) + if (!in_array($arr["network"], array(NETWORK_FEED, NETWORK_PHANTOM))) { update_gcontact($arr); + } $r = q("SELECT `id`, `url`, `network` FROM `gcontact` WHERE `nurl` = '%s' ORDER BY `id` LIMIT 1", dbesc(normalise_link($url)) ); } - if(count($r)) - if ($r[0]["network"] == NETWORK_DFRN) + if (dbm::is_result($r)) { + // Check for accessibility and do a poco discovery + if (poco_last_updated($r[0]['url'], true) && ($r[0]["network"] == NETWORK_DFRN)) poco_load(0,0,$r[0]['id'], str_replace('/profile/','/poco/',$r[0]['url'])); + } logger("gprobe end for ".normalise_link($url), LOGGER_DEBUG); return; } - -if (array_search(__file__,get_included_files())===0){ - gprobe_run($_SERVER["argv"],$_SERVER["argc"]); - killme(); -}