diff options
Diffstat (limited to 'include')
-rw-r--r-- | include/follow.php | 34 | ||||
-rw-r--r-- | include/onepoll.php | 6 |
2 files changed, 25 insertions, 15 deletions
diff --git a/include/follow.php b/include/follow.php index 7fc4c2dc6..cf77c40ea 100644 --- a/include/follow.php +++ b/include/follow.php @@ -37,14 +37,26 @@ function new_contact($uid,$url,$channel,$interactive = false) { $ret = zot_finger($url,$channel); if($ret['success']) { - $j = json_decode($ret['body']); - + $j = json_decode($ret['body'],true); + } + else { + $result['message'] = t('Channel discovery failed. Website may be down or misconfigured.'); + logger('mod_follow: ' . $result['message']); + return $result; } logger('follow: ' . $url . ' ' . print_r($j,true)); - if(! ($j->success && $j->guid)) { - $result['message'] = t('Unable to communicate with requested channel.'); + if(! $j) { + $result['message'] = t('Response from remote channel was not understood.'); + logger('mod_follow: ' . $result['message']); + return $result; + } + + + if(! ($j['success'] && $j['guid'])) { + $result['message'] = t('Response from remote channel was incomplete.'); + logger('mod_follow: ' . $result['message']); return $result; } @@ -66,7 +78,7 @@ function new_contact($uid,$url,$channel,$interactive = false) { // do we have an xchan and hubloc? // If not, create them. - $x = import_xchan_from_json($j); + $x = import_xchan($j); if(! $x['success']) return $x; @@ -78,18 +90,18 @@ function new_contact($uid,$url,$channel,$interactive = false) { $global_perms = get_perms(); - if($j->permissions->data) { + if( array_key_exists('permissions',$j) && array_key_exists('data',$j['permissions'])) { $permissions = aes_unencapsulate(array( - 'data' => $j->permissions->data, - 'key' => $j->permissions->key, - 'iv' => $j->permissions->iv), + 'data' => $j['permissions']['data'], + 'key' => $j['permissions']['key'], + 'iv' => $j['permissions']['iv']), $channel['channel_prvkey']); if($permissions) - $permissions = json_decode($permissions); + $permissions = json_decode($permissions,true); logger('decrypted permissions: ' . print_r($permissions,true), LOGGER_DATA); } else - $permissions = $j->permissions; + $permissions = $j['permissions']; foreach($permissions as $k => $v) { if($v) { diff --git a/include/onepoll.php b/include/onepoll.php index 5bc7742d1..f97846026 100644 --- a/include/onepoll.php +++ b/include/onepoll.php @@ -38,7 +38,7 @@ function onepoll_run($argv, $argc){ FROM abook LEFT JOIN account on abook_account = account_id left join xchan on xchan_hash = abook_xchan where abook_id = %d AND (( abook_flags = %d ) OR ( abook_flags = %d )) - AND (( account_flags = %d ) OR ( account_flags = %d )) ORDER BY RAND()", + AND (( account_flags = %d ) OR ( account_flags = %d )) limit 1", intval($contact_id), intval(ABOOK_FLAG_HIDDEN), intval(0), @@ -47,12 +47,10 @@ function onepoll_run($argv, $argc){ ); if(! $contacts) { + logger('onepoll: abook_id not found: ' . $contact_id); return; } - if(! $contacts) - return; - $contact = $contacts[0]; $t = $contact['abook_updated']; |