aboutsummaryrefslogtreecommitdiffstats
path: root/include
diff options
context:
space:
mode:
Diffstat (limited to 'include')
-rw-r--r--include/zot.php26
1 files changed, 19 insertions, 7 deletions
diff --git a/include/zot.php b/include/zot.php
index 4f42ea2b4..13c4b7237 100644
--- a/include/zot.php
+++ b/include/zot.php
@@ -1,4 +1,4 @@
-<?php /** @file */
+32;278;2c<?php /** @file */
require_once('include/crypto.php');
require_once('include/items.php');
@@ -601,6 +601,7 @@ function import_xchan($arr,$ud_flags = UPDATE_FLAGS_UPDATED) {
$changed = false;
$what = '';
+ $addresses = array();
if(! (is_array($arr) && array_key_exists('success',$arr) && $arr['success'])) {
logger('import_xchan: invalid data packet: ' . print_r($arr,true));
@@ -837,6 +838,8 @@ function import_xchan($arr,$ud_flags = UPDATE_FLAGS_UPDATED) {
if(strpos($location['address'],'/') !== false)
$location['address'] = substr($location['address'],0,strpos($location['address'],'/'));
+ $addresses[] = $location['address'];
+
// match as many fields as possible in case anything at all changed.
$r = q("select * from hubloc where hubloc_hash = '%s' and hubloc_guid = '%s' and hubloc_guid_sig = '%s' and hubloc_url = '%s' and hubloc_url_sig = '%s' and hubloc_host = '%s' and hubloc_addr = '%s' and hubloc_callback = '%s' and hubloc_sitekey = '%s' ",
@@ -997,16 +1000,25 @@ function import_xchan($arr,$ud_flags = UPDATE_FLAGS_UPDATED) {
if(($changed) || ($ud_flags == UPDATE_FLAGS_FORCED)) {
$guid = random_string() . '@' . get_app()->get_hostname();
- update_modtime($xchan_hash,$guid,$arr['address'],$ud_flags);
+ if($addresses) {
+ foreach($addresses as $address) {
+ update_modtime($xchan_hash,$guid,$address,$ud_flags);
+ }
+ }
logger('import_xchan: changed: ' . $what,LOGGER_DEBUG);
}
elseif(! $ud_flags) {
// nothing changed but we still need to update the updates record
- q("update updates set ud_flags = ( ud_flags | %d ) where ud_addr = '%s' and not (ud_flags & %d) ",
- intval(UPDATE_FLAGS_UPDATED),
- dbesc($arr['address']),
- intval(UPDATE_FLAGS_UPDATED)
- );
+ if($addresses) {
+ foreach($addresses as $address) {
+
+ q("update updates set ud_flags = ( ud_flags | %d ) where ud_addr = '%s' and not (ud_flags & %d) ",
+ intval(UPDATE_FLAGS_UPDATED),
+ dbesc($address),
+ intval(UPDATE_FLAGS_UPDATED)
+ );
+ }
+ }
}
if(! x($ret,'message')) {