log API improvements and queue optimisation for singleton networks

This commit is contained in:
redmatrix 2015-12-31 12:26:41 -08:00
parent 5f61f57b2c
commit 2cf4ac26fd
7 changed files with 87 additions and 49 deletions

View File

@ -48,7 +48,7 @@ require_once('include/AccessList.php');
define ( 'PLATFORM_NAME', 'hubzilla' ); define ( 'PLATFORM_NAME', 'hubzilla' );
define ( 'RED_VERSION', trim(file_get_contents('version.inc')) . 'H'); define ( 'RED_VERSION', trim(file_get_contents('version.inc')) . 'H');
define ( 'STD_VERSION', '1.0' ); define ( 'STD_VERSION', '1.0.1' );
define ( 'ZOT_REVISION', 1 ); define ( 'ZOT_REVISION', 1 );
define ( 'DB_UPDATE_VERSION', 1161 ); define ( 'DB_UPDATE_VERSION', 1161 );

View File

@ -31,6 +31,7 @@ function deliver_run($argv, $argc) {
if(($r[0]['outq_posturl'] === z_root() . '/post') && ($r[0]['outq_msg'])) { if(($r[0]['outq_posturl'] === z_root() . '/post') && ($r[0]['outq_msg'])) {
logger('deliver: local delivery', LOGGER_DEBUG); logger('deliver: local delivery', LOGGER_DEBUG);
// local delivery // local delivery
// we should probably batch these and save a few delivery processes // we should probably batch these and save a few delivery processes

View File

@ -189,7 +189,6 @@ function notifier_run($argv, $argc){
$private = false; $private = false;
$packet_type = 'refresh'; $packet_type = 'refresh';
$packet_recips = array(array('guid' => $r[0]['xchan_guid'],'guid_sig' => $r[0]['xchan_guid_sig'],'hash' => $r[0]['xchan_hash'])); $packet_recips = array(array('guid' => $r[0]['xchan_guid'],'guid_sig' => $r[0]['xchan_guid_sig'],'hash' => $r[0]['xchan_hash']));
} }
} }
} }
@ -299,7 +298,7 @@ function notifier_run($argv, $argc){
$channel = $s[0]; $channel = $s[0];
if($channel['channel_hash'] !== $target_item['author_xchan'] && $channel['channel_hash'] !== $target_item['owner_xchan']) { if($channel['channel_hash'] !== $target_item['author_xchan'] && $channel['channel_hash'] !== $target_item['owner_xchan']) {
logger("notifier: Sending channel {$channel['channel_hash']} is not owner {$target_item['owner_xchan']} or author {$target_item['author_xchan']}"); logger("notifier: Sending channel {$channel['channel_hash']} is not owner {$target_item['owner_xchan']} or author {$target_item['author_xchan']}", LOGGER_NORMAL, LOG_WARNING);
return; return;
} }
@ -318,7 +317,7 @@ function notifier_run($argv, $argc){
return; return;
if(strpos($r[0]['postopts'],'nodeliver') !== false) { if(strpos($r[0]['postopts'],'nodeliver') !== false) {
logger('notifier: target item is undeliverable', LOGGER_DEBUG); logger('notifier: target item is undeliverable', LOGGER_DEBUG, LOG_NOTICE);
return; return;
} }
@ -354,8 +353,8 @@ function notifier_run($argv, $argc){
// $cmd === 'relay' indicates the owner is sending it to the original recipients // $cmd === 'relay' indicates the owner is sending it to the original recipients
// don't allow the item in the relay command to relay to owner under any circumstances, it will loop // don't allow the item in the relay command to relay to owner under any circumstances, it will loop
logger('notifier: relay_to_owner: ' . (($relay_to_owner) ? 'true' : 'false'), LOGGER_DATA); logger('notifier: relay_to_owner: ' . (($relay_to_owner) ? 'true' : 'false'), LOGGER_DATA, LOG_DEBUG);
logger('notifier: top_level_post: ' . (($top_level_post) ? 'true' : 'false'), LOGGER_DATA); logger('notifier: top_level_post: ' . (($top_level_post) ? 'true' : 'false'), LOGGER_DATA, LOG_DEBUG);
// tag_deliver'd post which needs to be sent back to the original author // tag_deliver'd post which needs to be sent back to the original author
@ -397,7 +396,7 @@ function notifier_run($argv, $argc){
// TODO verify this is needed - copied logic from same place in old code // TODO verify this is needed - copied logic from same place in old code
if(intval($target_item['item_deleted']) && (! intval($target_item['item_wall']))) { if(intval($target_item['item_deleted']) && (! intval($target_item['item_wall']))) {
logger('notifier: ignoring delete notification for non-wall item'); logger('notifier: ignoring delete notification for non-wall item', LOGGER_NORMAL, LOG_NOTICE);
return; return;
} }
} }
@ -412,13 +411,13 @@ function notifier_run($argv, $argc){
$x = $encoded_item; $x = $encoded_item;
$x['title'] = 'private'; $x['title'] = 'private';
$x['body'] = 'private'; $x['body'] = 'private';
logger('notifier: encoded item: ' . print_r($x,true), LOGGER_DATA); logger('notifier: encoded item: ' . print_r($x,true), LOGGER_DATA, LOG_DEBUG);
stringify_array_elms($recipients); stringify_array_elms($recipients);
if(! $recipients) if(! $recipients)
return; return;
// logger('notifier: recipients: ' . print_r($recipients,true)); // logger('notifier: recipients: ' . print_r($recipients,true), LOGGER_NORMAL, LOG_DEBUG);
$env_recips = (($private) ? array() : null); $env_recips = (($private) ? array() : null);
@ -446,7 +445,7 @@ function notifier_run($argv, $argc){
if(($private) && (! $env_recips)) { if(($private) && (! $env_recips)) {
// shouldn't happen // shouldn't happen
logger('notifier: private message with no envelope recipients.' . print_r($argv,true)); logger('notifier: private message with no envelope recipients.' . print_r($argv,true), LOGGER_NORMAL, LOG_NOTICE);
} }
logger('notifier: recipients (may be delivered to more if public): ' . print_r($recip_list,true), LOGGER_DEBUG); logger('notifier: recipients (may be delivered to more if public): ' . print_r($recip_list,true), LOGGER_DEBUG);
@ -461,7 +460,7 @@ function notifier_run($argv, $argc){
if(! $r) { if(! $r) {
logger('notifier: no hubs'); logger('notifier: no hubs', LOGGER_NORMAL, LOG_NOTICE);
return; return;
} }
@ -484,7 +483,7 @@ function notifier_run($argv, $argc){
foreach($hubs as $hub) { foreach($hubs as $hub) {
if(in_array($hub['hubloc_url'],$dead_hubs)) { if(in_array($hub['hubloc_url'],$dead_hubs)) {
logger('skipping dead hub: ' . $hub['hubloc_url'], LOGGER_DEBUG); logger('skipping dead hub: ' . $hub['hubloc_url'], LOGGER_DEBUG, LOG_INFO);
continue; continue;
} }
@ -504,7 +503,7 @@ function notifier_run($argv, $argc){
} }
} }
logger('notifier: will notify/deliver to these hubs: ' . print_r($hublist,true), LOGGER_DEBUG); logger('notifier: will notify/deliver to these hubs: ' . print_r($hublist,true), LOGGER_DEBUG, LOG_DEBUG);
foreach($dhubs as $hub) { foreach($dhubs as $hub) {
@ -514,6 +513,7 @@ function notifier_run($argv, $argc){
$narr = array( $narr = array(
'channel' => $channel, 'channel' => $channel,
'env_recips' => $env_recips, 'env_recips' => $env_recips,
'packet_recips' => $packet_recips,
'recipients' => $recipients, 'recipients' => $recipients,
'item' => $item, 'item' => $item,
'target_item' => $target_item, 'target_item' => $target_item,

View File

@ -124,6 +124,26 @@ function queue_deliver($outq, $immediate = false) {
dbesc($outq['outq_hash']) dbesc($outq['outq_hash'])
); );
remove_queue_item($outq['outq_hash']); remove_queue_item($outq['outq_hash']);
// server is responding - see if anything else is going to this destination and is piled up
// and try to send some more. We're relying on the fact that delivery_loop() results in an
// immediate delivery otherwise we could get into a queue loop.
if(! $immediate) {
$x = q("select outq_hash from outq where outq_posturl = '%s' and outq_delivered = 0",
dbesc($outq['outq_posturl'])
);
$piled_up = array();
if($x) {
foreach($x as $xx) {
$piled_up[] = $xx['outq_hash'];
}
}
if($piled_up) {
delivery_loop($piled_up);
}
}
} }
else { else {
logger('deliver: queue post returned ' . $result['return_code'] logger('deliver: queue post returned ' . $result['return_code']

View File

@ -538,7 +538,7 @@ function attribute_contains($attr, $s) {
* @param int $level A log level. * @param int $level A log level.
*/ */
function logger($msg, $level = 0) { function logger($msg, $level = LOGGER_NORMAL, $priority = LOG_INFO) {
// turn off logger in install mode // turn off logger in install mode
global $a; global $a;
global $db; global $db;
@ -559,8 +559,8 @@ function logger($msg, $level = 0) {
$where = basename($stack[0]['file']) . ':' . $stack[0]['line'] . ':' . $stack[1]['function'] . ': '; $where = basename($stack[0]['file']) . ':' . $stack[0]['line'] . ':' . $stack[1]['function'] . ': ';
} }
$s = datetime_convert() . ':' . session_id() . ' ' . $where . $msg . PHP_EOL; $s = datetime_convert() . ':' . log_priority_str($priority) . ':' . session_id() . ':' . $where . $msg . PHP_EOL;
$pluginfo = array('filename' => $logfile, 'loglevel' => $level, 'message' => $s,'logged' => false); $pluginfo = array('filename' => $logfile, 'loglevel' => $level, 'message' => $s,'priority' => $priority, 'logged' => false);
call_hooks('logger',$pluginfo); call_hooks('logger',$pluginfo);
@ -568,6 +568,23 @@ function logger($msg, $level = 0) {
@file_put_contents($pluginfo['filename'], $pluginfo['message'], FILE_APPEND); @file_put_contents($pluginfo['filename'], $pluginfo['message'], FILE_APPEND);
} }
function log_priority_str($priority) {
$parr = array(
LOG_EMERG => 'LOG_EMERG',
LOG_ALERT => 'LOG_ALERT',
LOG_CRIT => 'LOG_CRIT',
LOG_ERR => 'LOG_ERR',
LOG_WARNING => 'LOG_WARNING',
LOG_NOTICE => 'LOG_NOTICE',
LOG_INFO => 'LOG_INFO',
LOG_DEBUG => 'LOG_DEBUG'
);
if($parr[$priority])
return $parr[$priority];
return 'LOG_UNDEFINED';
}
/** /**
* @brief This is a special logging facility for developers. * @brief This is a special logging facility for developers.
* *

View File

@ -142,7 +142,7 @@ function zot_build_packet($channel, $type = 'notify', $recipients = null, $remot
$data[$k] = $v; $data[$k] = $v;
} }
logger('zot_build_packet: ' . print_r($data,true), LOGGER_DATA); logger('zot_build_packet: ' . print_r($data,true), LOGGER_DATA, LOG_DEBUG);
// Hush-hush ultra top-secret mode // Hush-hush ultra top-secret mode
@ -194,7 +194,7 @@ function zot_finger($webbie, $channel = null, $autofallback = true) {
logger('zot_finger: no address :' . $webbie); logger('zot_finger: no address :' . $webbie);
return array('success' => false); return array('success' => false);
} }
logger('using xchan_addr: ' . $xchan_addr, LOGGER_DATA); logger('using xchan_addr: ' . $xchan_addr, LOGGER_DATA, LOG_DEBUG);
// potential issue here; the xchan_addr points to the primary hub. // potential issue here; the xchan_addr points to the primary hub.
// The webbie we were called with may not, so it might not be found // The webbie we were called with may not, so it might not be found
@ -211,7 +211,7 @@ function zot_finger($webbie, $channel = null, $autofallback = true) {
if ($r[0]['hubloc_network'] && $r[0]['hubloc_network'] !== 'zot') { if ($r[0]['hubloc_network'] && $r[0]['hubloc_network'] !== 'zot') {
logger('zot_finger: alternate network: ' . $webbie); logger('zot_finger: alternate network: ' . $webbie);
logger('url: '.$url.', net: '.var_export($r[0]['hubloc_network'],true), LOGGER_DATA); logger('url: '.$url.', net: '.var_export($r[0]['hubloc_network'],true), LOGGER_DATA, LOG_DEBUG);
return array('success' => false); return array('success' => false);
} }
} else { } else {
@ -288,9 +288,9 @@ function zot_refresh($them, $channel = null, $force = false) {
return true; return true;
} }
logger('zot_refresh: them: ' . print_r($them,true), LOGGER_DATA); logger('zot_refresh: them: ' . print_r($them,true), LOGGER_DATA, LOG_DEBUG);
if ($channel) if ($channel)
logger('zot_refresh: channel: ' . print_r($channel,true), LOGGER_DATA); logger('zot_refresh: channel: ' . print_r($channel,true), LOGGER_DATA, LOG_DEBUG);
$url = null; $url = null;
@ -353,7 +353,7 @@ function zot_refresh($them, $channel = null, $force = false) {
$result = z_post_url($url . $rhs,$postvars); $result = z_post_url($url . $rhs,$postvars);
logger('zot_refresh: zot-info: ' . print_r($result,true), LOGGER_DATA); logger('zot_refresh: zot-info: ' . print_r($result,true), LOGGER_DATA, LOG_DEBUG);
if ($result['success']) { if ($result['success']) {
@ -381,7 +381,7 @@ function zot_refresh($them, $channel = null, $force = false) {
$channel['channel_prvkey']); $channel['channel_prvkey']);
if($permissions) if($permissions)
$permissions = json_decode($permissions,true); $permissions = json_decode($permissions,true);
logger('decrypted permissions: ' . print_r($permissions,true), LOGGER_DATA); logger('decrypted permissions: ' . print_r($permissions,true), LOGGER_DATA, LOG_DEBUG);
} }
else else
$permissions = $j['permissions']; $permissions = $j['permissions'];
@ -614,7 +614,7 @@ function zot_register_hub($arr) {
$x = z_fetch_url($url); $x = z_fetch_url($url);
logger('zot_register_hub: ' . print_r($x,true), LOGGER_DATA); logger('zot_register_hub: ' . print_r($x,true), LOGGER_DATA, LOG_DEBUG);
if($x['success']) { if($x['success']) {
$record = json_decode($x['body'],true); $record = json_decode($x['body'],true);
@ -754,8 +754,8 @@ function import_xchan($arr,$ud_flags = UPDATE_FLAGS_UPDATED, $ud_arr = null) {
dbesc($xchan_hash) dbesc($xchan_hash)
); );
logger('import_xchan: update: existing: ' . print_r($r[0],true), LOGGER_DATA); logger('import_xchan: update: existing: ' . print_r($r[0],true), LOGGER_DATA, LOG_DEBUG);
logger('import_xchan: update: new: ' . print_r($arr,true), LOGGER_DATA); logger('import_xchan: update: new: ' . print_r($arr,true), LOGGER_DATA, LOG_DEBUG);
$what .= 'xchan '; $what .= 'xchan ';
$changed = true; $changed = true;
} }
@ -955,7 +955,7 @@ function import_xchan($arr,$ud_flags = UPDATE_FLAGS_UPDATED, $ud_arr = null) {
$ret['hash'] = $xchan_hash; $ret['hash'] = $xchan_hash;
} }
logger('import_xchan: result: ' . print_r($ret,true), LOGGER_DATA); logger('import_xchan: result: ' . print_r($ret,true), LOGGER_DATA, LOG_DEBUG);
return $ret; return $ret;
} }
@ -980,7 +980,7 @@ function zot_process_response($hub, $arr, $outq) {
if (! $x) { if (! $x) {
logger('zot_process_response: No json from ' . $hub); logger('zot_process_response: No json from ' . $hub);
logger('zot_process_response: headers: ' . print_r($arr['header'],true), LOGGER_DATA); logger('zot_process_response: headers: ' . print_r($arr['header'],true), LOGGER_DATA, LOG_DEBUG);
} }
if(is_array($x) && array_key_exists('delivery_report',$x) && is_array($x['delivery_report'])) { if(is_array($x) && array_key_exists('delivery_report',$x) && is_array($x['delivery_report'])) {
@ -1015,7 +1015,7 @@ function zot_process_response($hub, $arr, $outq) {
// async messages remain in the queue until processed. // async messages remain in the queue until processed.
if(intval($outq['outq_async'])) if(intval($outq['outq_async']))
queue_set_delivered($outq['outq_hash'],$outq['outq_channel']); remove_queue_item($outq['outq_hash'],$outq['outq_channel']);
logger('zot_process_response: ' . print_r($x,true), LOGGER_DEBUG); logger('zot_process_response: ' . print_r($x,true), LOGGER_DEBUG);
} }
@ -1037,7 +1037,7 @@ function zot_process_response($hub, $arr, $outq) {
*/ */
function zot_fetch($arr) { function zot_fetch($arr) {
logger('zot_fetch: ' . print_r($arr,true), LOGGER_DATA); logger('zot_fetch: ' . print_r($arr,true), LOGGER_DATA, LOG_DEBUG);
$url = $arr['sender']['url'] . $arr['callback']; $url = $arr['sender']['url'] . $arr['callback'];
@ -1134,7 +1134,7 @@ function zot_import($arr, $sender_url) {
$i['notify'] = json_decode(crypto_unencapsulate($i['notify'],get_config('system','prvkey')),true); $i['notify'] = json_decode(crypto_unencapsulate($i['notify'],get_config('system','prvkey')),true);
} }
logger('zot_import: notify: ' . print_r($i['notify'],true), LOGGER_DATA); logger('zot_import: notify: ' . print_r($i['notify'],true), LOGGER_DATA, LOG_DEBUG);
$hub = zot_gethub($i['notify']['sender']); $hub = zot_gethub($i['notify']['sender']);
if((! $hub) || ($hub['hubloc_url'] != $sender_url)) { if((! $hub) || ($hub['hubloc_url'] != $sender_url)) {
@ -1151,7 +1151,7 @@ function zot_import($arr, $sender_url) {
if(array_key_exists('message',$i) && array_key_exists('type',$i['message']) && $i['message']['type'] === 'rating') { if(array_key_exists('message',$i) && array_key_exists('type',$i['message']) && $i['message']['type'] === 'rating') {
// rating messages are processed only by directory servers // rating messages are processed only by directory servers
logger('Rating received: ' . print_r($arr,true), LOGGER_DATA); logger('Rating received: ' . print_r($arr,true), LOGGER_DATA, LOG_DEBUG);
$result = process_rating_delivery($i['notify']['sender'],$i['message']); $result = process_rating_delivery($i['notify']['sender'],$i['message']);
continue; continue;
} }
@ -1261,8 +1261,8 @@ function zot_import($arr, $sender_url) {
continue; continue;
} }
logger('Activity received: ' . print_r($arr,true), LOGGER_DATA); logger('Activity received: ' . print_r($arr,true), LOGGER_DATA, LOG_DEBUG);
logger('Activity recipients: ' . print_r($deliveries,true), LOGGER_DATA); logger('Activity recipients: ' . print_r($deliveries,true), LOGGER_DATA, LOG_DEBUG);
$relay = ((array_key_exists('flags',$i['message']) && in_array('relay',$i['message']['flags'])) ? true : false); $relay = ((array_key_exists('flags',$i['message']) && in_array('relay',$i['message']['flags'])) ? true : false);
$result = process_delivery($i['notify']['sender'],$arr,$deliveries,$relay,false,$message_request); $result = process_delivery($i['notify']['sender'],$arr,$deliveries,$relay,false,$message_request);
@ -1270,16 +1270,16 @@ function zot_import($arr, $sender_url) {
elseif($i['message']['type'] === 'mail') { elseif($i['message']['type'] === 'mail') {
$arr = get_mail_elements($i['message']); $arr = get_mail_elements($i['message']);
logger('Mail received: ' . print_r($arr,true), LOGGER_DATA); logger('Mail received: ' . print_r($arr,true), LOGGER_DATA, LOG_DEBUG);
logger('Mail recipients: ' . print_r($deliveries,true), LOGGER_DATA); logger('Mail recipients: ' . print_r($deliveries,true), LOGGER_DATA, LOG_DEBUG);
$result = process_mail_delivery($i['notify']['sender'],$arr,$deliveries); $result = process_mail_delivery($i['notify']['sender'],$arr,$deliveries);
} }
elseif($i['message']['type'] === 'profile') { elseif($i['message']['type'] === 'profile') {
$arr = get_profile_elements($i['message']); $arr = get_profile_elements($i['message']);
logger('Profile received: ' . print_r($arr,true), LOGGER_DATA); logger('Profile received: ' . print_r($arr,true), LOGGER_DATA, LOG_DEBUG);
logger('Profile recipients: ' . print_r($deliveries,true), LOGGER_DATA); logger('Profile recipients: ' . print_r($deliveries,true), LOGGER_DATA, LOG_DEBUG);
$result = process_profile_delivery($i['notify']['sender'],$arr,$deliveries); $result = process_profile_delivery($i['notify']['sender'],$arr,$deliveries);
} }
@ -1288,16 +1288,16 @@ function zot_import($arr, $sender_url) {
$arr = $i['message']; $arr = $i['message'];
logger('Channel sync received: ' . print_r($arr,true), LOGGER_DATA); logger('Channel sync received: ' . print_r($arr,true), LOGGER_DATA, LOG_DEBUG);
logger('Channel sync recipients: ' . print_r($deliveries,true), LOGGER_DATA); logger('Channel sync recipients: ' . print_r($deliveries,true), LOGGER_DATA, LOG_DEBUG);
$result = process_channel_sync_delivery($i['notify']['sender'],$arr,$deliveries); $result = process_channel_sync_delivery($i['notify']['sender'],$arr,$deliveries);
} }
elseif($i['message']['type'] === 'location') { elseif($i['message']['type'] === 'location') {
$arr = $i['message']; $arr = $i['message'];
logger('Location message received: ' . print_r($arr,true), LOGGER_DATA); logger('Location message received: ' . print_r($arr,true), LOGGER_DATA, LOG_DEBUG);
logger('Location message recipients: ' . print_r($deliveries,true), LOGGER_DATA); logger('Location message recipients: ' . print_r($deliveries,true), LOGGER_DATA, LOG_DEBUG);
$result = process_location_delivery($i['notify']['sender'],$arr,$deliveries); $result = process_location_delivery($i['notify']['sender'],$arr,$deliveries);
} }
@ -1483,7 +1483,7 @@ function public_recips($msg) {
} }
} }
logger('public_recips: ' . print_r($r,true), LOGGER_DATA); logger('public_recips: ' . print_r($r,true), LOGGER_DATA, LOG_DEBUG);
return $r; return $r;
} }
@ -1501,7 +1501,7 @@ function public_recips($msg) {
*/ */
function allowed_public_recips($msg) { function allowed_public_recips($msg) {
logger('allowed_public_recips: ' . print_r($msg,true),LOGGER_DATA); logger('allowed_public_recips: ' . print_r($msg,true),LOGGER_DATA, LOG_DEBUG);
if(array_key_exists('public_scope',$msg['message'])) if(array_key_exists('public_scope',$msg['message']))
$scope = $msg['message']['public_scope']; $scope = $msg['message']['public_scope'];
@ -2873,7 +2873,7 @@ function build_sync_packet($uid = 0, $packet = null, $groups_changed = false) {
logger('build_sync_packet'); logger('build_sync_packet');
if($packet) if($packet)
logger('packet: ' . print_r($packet, true),LOGGER_DATA); logger('packet: ' . print_r($packet, true),LOGGER_DATA, LOG_DEBUG);
if(! $uid) if(! $uid)
$uid = local_channel(); $uid = local_channel();
@ -2967,7 +2967,7 @@ function build_sync_packet($uid = 0, $packet = null, $groups_changed = false) {
$interval = ((get_config('system','delivery_interval') !== false) $interval = ((get_config('system','delivery_interval') !== false)
? intval(get_config('system','delivery_interval')) : 2 ); ? intval(get_config('system','delivery_interval')) : 2 );
logger('build_sync_packet: packet: ' . print_r($info,true), LOGGER_DATA); logger('build_sync_packet: packet: ' . print_r($info,true), LOGGER_DATA, LOG_DEBUG);
foreach($synchubs as $hub) { foreach($synchubs as $hub) {
$hash = random_string(); $hash = random_string();
@ -3864,7 +3864,7 @@ function zotinfo($arr) {
function check_zotinfo($channel,$locations,&$ret) { function check_zotinfo($channel,$locations,&$ret) {
// logger('locations: ' . print_r($locations,true),LOGGER_DATA); // logger('locations: ' . print_r($locations,true),LOGGER_DATA, LOG_DEBUG);
// This function will likely expand as we find more things to detect and fix. // This function will likely expand as we find more things to detect and fix.
// 1. Because magic-auth is reliant on it, ensure that the system channel has a valid hubloc // 1. Because magic-auth is reliant on it, ensure that the system channel has a valid hubloc
@ -4085,7 +4085,7 @@ function zot_reply_pickup($data) {
$sitekey = $hubsite['hubloc_sitekey']; $sitekey = $hubsite['hubloc_sitekey'];
logger('mod_zot: Checking sitekey: ' . $sitekey, LOGGER_DATA); logger('mod_zot: Checking sitekey: ' . $sitekey, LOGGER_DATA, LOG_DEBUG);
if(rsa_verify($data['callback'],base64url_decode($data['callback_sig']),$sitekey)) { if(rsa_verify($data['callback'],base64url_decode($data['callback_sig']),$sitekey)) {
$forgery = false; $forgery = false;

View File

@ -1 +1 @@
2015-12-29.1261 2015-12-31.1263