From 3d49bf0320cd6a35e34da9694d3eb957053845a3 Mon Sep 17 00:00:00 2001 From: friendica Date: Mon, 3 Mar 2014 21:00:42 -0800 Subject: directory sync issues --- boot.php | 5 ++--- include/dir_fns.php | 3 +++ include/zot.php | 16 ++++++++-------- install/update.php | 11 +++++++++-- mod/dirsearch.php | 7 ++++++- 5 files changed, 28 insertions(+), 14 deletions(-) diff --git a/boot.php b/boot.php index f60d7fc3d..19d79941c 100755 --- a/boot.php +++ b/boot.php @@ -47,7 +47,7 @@ define ( 'RED_PLATFORM', 'Red Matrix' ); define ( 'RED_VERSION', trim(file_get_contents('version.inc')) . 'R'); define ( 'ZOT_REVISION', 1 ); -define ( 'DB_UPDATE_VERSION', 1101 ); +define ( 'DB_UPDATE_VERSION', 1102 ); define ( 'EOL', '
' . "\r\n" ); define ( 'ATOM_TIME', 'Y-m-d\TH:i:s\Z' ); @@ -323,11 +323,10 @@ define ( 'POLL_OVERWRITE', 0x8000); // If you vote twice remove the prior define ( 'UPDATE_FLAGS_UPDATED', 0x0001); +define ( 'UPDATE_FLAGS_FORCED', 0x0002); define ( 'UPDATE_FLAGS_DELETED', 0x1000); - - /** * Maximum number of "people who like (or don't like) this" that we will list by name */ diff --git a/include/dir_fns.php b/include/dir_fns.php index c2e614831..aeee8492f 100644 --- a/include/dir_fns.php +++ b/include/dir_fns.php @@ -101,6 +101,9 @@ function sync_directories($dirmode) { $ud_flags = 0; if(is_array($t['flags']) && in_array('deleted',$t['flags'])) $ud_flags |= UPDATE_FLAGS_DELETED; + if(is_array($t['flags']) && in_array('forced',$t['flags'])) + $ud_flags |= UPDATE_FLAGS_FORCED; + $z = q("insert into updates ( ud_hash, ud_guid, ud_date, ud_flags, ud_addr ) values ( '%s', '%s', '%s', %d, '%s' ) ", dbesc($t['hash']), diff --git a/include/zot.php b/include/zot.php index a52abfecd..e80dabed9 100644 --- a/include/zot.php +++ b/include/zot.php @@ -305,7 +305,7 @@ function zot_refresh($them,$channel = null, $force = false) { return false; } - $x = import_xchan($j,(($force) ? (-1) : 1)); + $x = import_xchan($j,(($force) ? UPDATE_FLAGS_FORCED : UPDATE_FLAGS_UPDATED)); if(! $x['success']) return false; @@ -538,14 +538,14 @@ function zot_register_hub($arr) { /** - * @function import_xchan($arr,$ud_flags = 1) + * @function import_xchan($arr,$ud_flags = UPDATE_FLAGS_UPDATED) * Takes an associative array of a fetched discovery packet and updates * all internal data structures which need to be updated as a result. * * @param array $arr => json_decoded discovery packet * @param int $ud_flags - * Determines whether to create a directory update record if any changes occur, default 1 or true - * $ud_flags = (-1) indicates a forced refresh where we unconditionally create a directory update record + * Determines whether to create a directory update record if any changes occur, default is UPDATE_FLAGS_UPDATED (true) + * $ud_flags = UPDATE_FLAGS_FORCED indicates a forced refresh where we unconditionally create a directory update record * this typically occurs once a month for each channel as part of a scheduled ping to notify the directory * that the channel still exists * @@ -553,7 +553,7 @@ function zot_register_hub($arr) { * 'message' (optional error string only if success is false) */ -function import_xchan($arr,$ud_flags = 1) { +function import_xchan($arr,$ud_flags = UPDATE_FLAGS_UPDATED) { call_hooks('import_xchan', $arr); @@ -912,7 +912,7 @@ function import_xchan($arr,$ud_flags = 1) { } } - if(($changed) || ($ud_flags == (-1))) { + if(($changed) || ($ud_flags == UPDATE_FLAGS_FORCED)) { $guid = random_string() . '@' . get_app()->get_hostname(); update_modtime($xchan_hash,$guid,$arr['address'],$ud_flags); logger('import_xchan: changed: ' . $what,LOGGER_DEBUG); @@ -1644,7 +1644,7 @@ function process_profile_delivery($sender,$arr,$deliveries) { dbesc($sender['hash']) ); if($r) - import_directory_profile($sender['hash'],$arr,$r[0]['xchan_addr'], 1, 0); + import_directory_profile($sender['hash'],$arr,$r[0]['xchan_addr'], UPDATE_FLAGS_UPDATED, 0); } @@ -1655,7 +1655,7 @@ function process_profile_delivery($sender,$arr,$deliveries) { * */ -function import_directory_profile($hash,$profile,$addr,$ud_flags = 1, $suppress_update = 0) { +function import_directory_profile($hash,$profile,$addr,$ud_flags = UPDATE_FLAGS_UPDATED, $suppress_update = 0) { logger('import_directory_profile', LOGGER_DEBUG); if(! $hash) diff --git a/install/update.php b/install/update.php index 9c9b6129a..175b89285 100644 --- a/install/update.php +++ b/install/update.php @@ -1,6 +1,6 @@ $rr['ud_hash'], 'address' => $rr['ud_addr'], -- cgit v1.2.3