From 695abdcbd0350b95930bf9624a906524d25b47fe Mon Sep 17 00:00:00 2001 From: friendica Date: Thu, 20 Nov 2014 18:29:28 -0800 Subject: directory: don't try and sync a directory update that points to a hubloc we already know is dead and buried. --- include/onedirsync.php | 19 ++++++++++++++++++- 1 file changed, 18 insertions(+), 1 deletion(-) diff --git a/include/onedirsync.php b/include/onedirsync.php index 09c4c9d9a..cc7f9f22d 100644 --- a/include/onedirsync.php +++ b/include/onedirsync.php @@ -41,7 +41,7 @@ function onedirsync_run($argv, $argc){ intval(UPDATE_FLAGS_UPDATED) ); if($x) { - $y = q("update updates set ud_flags = ( ud_flags | %d ) where ud_addr = '%s' and not ( ud_flags & %d )>0 and ud_date < '%s' ", + $y = q("update updates set ud_flags = ( ud_flags | %d ) where ud_addr = '%s' and ( ud_flags & %d ) = 0 and ud_date < '%s' ", intval(UPDATE_FLAGS_UPDATED), dbesc($r[0]['ud_addr']), intval(UPDATE_FLAGS_UPDATED), @@ -50,6 +50,23 @@ function onedirsync_run($argv, $argc){ return; } + // ignore doing an update if this ud_addr refers to a known dead hubloc + + $h = q("select * from hubloc where hubloc_addr = '%s' limit 1", + dbesc($r[0]['ud_addr']) + ); + if($h && $h[0]['hubloc_status'] & HUBLOC_OFFLINE) { + $y = q("update updates set ud_flags = ( ud_flags | %d ) where ud_addr = '%s' and ( ud_flags & %d ) = 0 and ud_date < '%s' ", + intval(UPDATE_FLAGS_UPDATED), + dbesc($r[0]['ud_addr']), + intval(UPDATE_FLAGS_UPDATED), + dbesc($x[0]['ud_date']) + ); + + return; + } + + update_directory_entry($r[0]); return; -- cgit v1.2.3