From 97b990c9bf0c08e9088ea8dea54177c044eaa6ad Mon Sep 17 00:00:00 2001 From: redmatrix Date: Mon, 14 Sep 2015 19:16:25 -0700 Subject: site checking stuff --- include/checksites.php | 63 ++++++++++++++++++++++++++++++++++++++++++++++++++ include/hubloc.php | 11 ++++++--- include/poller.php | 3 +++ 3 files changed, 74 insertions(+), 3 deletions(-) create mode 100644 include/checksites.php diff --git a/include/checksites.php b/include/checksites.php new file mode 100644 index 000000000..ab91dc768 --- /dev/null +++ b/include/checksites.php @@ -0,0 +1,63 @@ + 1) && ($argv[1])) + $site_id = $argv[1]; + + if($site_id) + $sql_options = " and site_url = '" . dbesc($argv[1]) . "' "; + + $days = intval(get_config('system','sitecheckdays')); + if($days < 1) + $days = 30; + + + $r = q("select * from site where site_dead = 0 and site_update < %s - INTERVAL %s $sql_options ", + db_utcnow(), db_quoteinterval($days . ' DAY') + ); + + + if(! $r) + return; + + foreach($r as $rr) { + if(! strcasecmp($rr['site_url'],z_root())) + continue; + + $x = ping_site($rr['site_url']); + if($x['success']) { + logger('checksites: ' . $rr['site_url']); + q("update site set site_update = '%s' where site_url = '%s' ", + dbesc(datetime_convert()), + dbesc($rr['site_url']) + ); + } + else { + logger('marking dead site: ' . $x['message']); + q("update site set site_dead = 1 where site_url = '%s' ", + dbesc($rr['site_url']) + ); + } + } + + return; +} + +if (array_search(__file__,get_included_files())===0){ + checksites_run($argv,$argc); + killme(); +} diff --git a/include/hubloc.php b/include/hubloc.php index 8bd6d8d68..674a3885f 100644 --- a/include/hubloc.php +++ b/include/hubloc.php @@ -291,13 +291,18 @@ function ping_site($url) { $ret['message'] = 'no answer from ' . $url; return $ret; } - $packet_result = $r['body']; + $packet_result = json_decode($r['body'],true); if(! $packet_result['success']) { $ret['message'] = 'packet failure from ' . $url; return $ret; } - $ret['success'] = true; - return $ret; + if($packet_result['success']) { + $ret['success'] = true; + } + else { + $ret['message'] = 'unknown error from ' . $url; + } + return $ret; } diff --git a/include/poller.php b/include/poller.php index a1b25bf41..72f22d946 100644 --- a/include/poller.php +++ b/include/poller.php @@ -175,7 +175,10 @@ function poller_run($argv, $argc){ logger('regdir: ' . print_r(z_fetch_url(get_directory_primary() . '/regdir?f=&url=' . urlencode(z_root()) . '&realm=' . urlencode(get_directory_realm())),true)); } + // Check for dead sites + proc_run('php', 'include/checksites.php'); + // update searchable doc indexes proc_run('php', 'include/importdoc.php'); /** -- cgit v1.2.3