some cleanup

This commit is contained in:
zotlabs 2019-04-11 20:26:38 -07:00
parent 7efc231b11
commit 5cb0e7600b
7 changed files with 149 additions and 170 deletions

View file

@ -889,8 +889,8 @@ class Libsync {
$current_site = true; $current_site = true;
} }
if($current_site && intval($r[0]['hubloc_error'])) { if($current_site && (intval($r[0]['hubloc_error']) || intval($r[0]['hubloc_deleted']))) {
q("update hubloc set hubloc_error = 0 where hubloc_id = %d", q("update hubloc set hubloc_error = 0, hubloc_deleted = 0 where hubloc_id = %d",
intval($r[0]['hubloc_id']) intval($r[0]['hubloc_id'])
); );
if(intval($r[0]['hubloc_orphancheck'])) { if(intval($r[0]['hubloc_orphancheck'])) {

View file

@ -3183,8 +3183,8 @@ class Libzot {
// a dead hub came back to life - reset any tombstones we might have // a dead hub came back to life - reset any tombstones we might have
if (intval($hub['hubloc_error'])) { if (intval($hub['hubloc_error']) || intval($hub['hubloc_deleted'])) {
q("update hubloc set hubloc_error = 0 where hubloc_id = %d and hubloc_site_id = '%s' ", q("update hubloc set hubloc_error = 0, hubloc_deleted = 0 where hubloc_id = %d and hubloc_site_id = '%s' ",
intval($hub['hubloc_id']), intval($hub['hubloc_id']),
dbesc($site_id) dbesc($site_id)
); );

View file

@ -3,10 +3,11 @@
namespace Zotlabs\Lib; namespace Zotlabs\Lib;
/** /**
* @brief Account configuration storage is built on top of the under-utilised xconfig. * @brief Site configuration storage is built on top of the under-utilised xconfig.
* *
* @see XConfig * @see XConfig
*/ */
class SConfig { class SConfig {
static public function Load($server_id) { static public function Load($server_id) {

View file

@ -1,75 +1,80 @@
<?php <?php
namespace Zotlabs\Module; namespace Zotlabs\Module;
use App;
use Zotlabs\Web\Controller;
use Zotlabs\Web\HTTPSig; use Zotlabs\Web\HTTPSig;
use Zotlabs\Lib\Libzot; use Zotlabs\Lib\Libzot;
use Zotlabs\Lib\SConfig;
class Magic extends \Zotlabs\Web\Controller { class Magic extends Controller {
function init() { function init() {
$ret = array('success' => false, 'url' => '', 'message' => ''); $ret = [
'success' => false,
'url' => '',
'message' => ''
];
logger('mod_magic: invoked', LOGGER_DEBUG); logger('mod_magic: invoked', LOGGER_DEBUG);
logger('args: ' . print_r($_REQUEST,true),LOGGER_DATA); logger('args: ' . print_r($_REQUEST,true),LOGGER_DATA);
$addr = ((x($_REQUEST,'addr')) ? $_REQUEST['addr'] : ''); $addr = ((x($_REQUEST,'addr')) ? $_REQUEST['addr'] : '');
$bdest = ((x($_REQUEST,'bdest')) ? $_REQUEST['bdest'] : ''); $bdest = ((x($_REQUEST,'bdest')) ? $_REQUEST['bdest'] : '');
$dest = ((x($_REQUEST,'dest')) ? $_REQUEST['dest'] : ''); $dest = ((x($_REQUEST,'dest')) ? $_REQUEST['dest'] : '');
$rev = ((x($_REQUEST,'rev')) ? intval($_REQUEST['rev']) : 0); $rev = ((x($_REQUEST,'rev')) ? intval($_REQUEST['rev']) : 0);
$owa = ((x($_REQUEST,'owa')) ? intval($_REQUEST['owa']) : 0); $owa = ((x($_REQUEST,'owa')) ? intval($_REQUEST['owa']) : 0);
$delegate = ((x($_REQUEST,'delegate')) ? $_REQUEST['delegate'] : ''); $delegate = ((x($_REQUEST,'delegate')) ? $_REQUEST['delegate'] : '');
if($bdest) // bdest is preferred as it is hex-encoded and can survive url rewrite and argument parsing
if ($bdest) {
$dest = hex2bin($bdest); $dest = hex2bin($bdest);
}
$parsed = parse_url($dest); $parsed = parse_url($dest);
if(! $parsed) { if (! $parsed) {
if($test) {
$ret['message'] .= 'could not parse ' . $dest . EOL;
return($ret);
}
goaway($dest); goaway($dest);
} }
$basepath = $parsed['scheme'] . '://' . $parsed['host'] . (($parsed['port']) ? ':' . $parsed['port'] : ''); $basepath = $parsed['scheme'] . '://' . $parsed['host'] . (($parsed['port']) ? ':' . $parsed['port'] : '');
$owapath = SConfig::get($basepath,'system','openwebauth', $basepath . '/owa');
// This is ready-made for a plugin that provides a blacklist or "ask me" before blindly authenticating. // This is ready-made for a plugin that provides a blacklist or "ask me" before blindly authenticating.
// By default, we'll proceed without asking. // By default, we'll proceed without asking.
$arr = array( $arr = [
'channel_id' => local_channel(), 'channel_id' => local_channel(),
'destination' => $dest, 'destination' => $dest,
'proceed' => true 'proceed' => true
); ];
call_hooks('magic_auth',$arr); call_hooks('magic_auth',$arr);
$dest = $arr['destination']; $dest = $arr['destination'];
if(! $arr['proceed']) { if (! $arr['proceed']) {
if($test) {
$ret['message'] .= 'cancelled by plugin.' . EOL;
return $ret;
}
goaway($dest); goaway($dest);
} }
if((get_observer_hash()) && (stripos($dest,z_root()) === 0)) { if((get_observer_hash()) && (stripos($dest,z_root()) === 0)) {
// We are already authenticated on this site and a registered observer. // We are already authenticated on this site and a registered observer.
// Just redirect. // First check if this is a delegate request on the local system and process accordingly.
// Otherwise redirect.
if($delegate) { if ($delegate) {
$r = q("select * from channel left join hubloc on channel_hash = hubloc_hash where hubloc_addr = '%s' limit 1", $r = q("select * from channel left join hubloc on channel_hash = hubloc_hash where hubloc_addr = '%s' limit 1",
dbesc($delegate) dbesc($delegate)
); );
if($r) { if ($r) {
$c = array_shift($r); $c = array_shift($r);
if(perm_is_allowed($c['channel_id'],get_observer_hash(),'delegate')) { if (perm_is_allowed($c['channel_id'],get_observer_hash(),'delegate')) {
$tmp = $_SESSION; $tmp = $_SESSION;
$_SESSION['delegate_push'] = $tmp; $_SESSION['delegate_push'] = $tmp;
$_SESSION['delegate_channel'] = $c['channel_id']; $_SESSION['delegate_channel'] = $c['channel_id'];
@ -84,16 +89,18 @@ class Magic extends \Zotlabs\Web\Controller {
goaway($dest); goaway($dest);
} }
if(local_channel()) { if (local_channel()) {
$channel = \App::get_channel(); $channel = App::get_channel();
// OpenWebAuth // OpenWebAuth
if($owa) { if ($owa) {
$dest = strip_zids($dest); $dest = strip_zids($dest);
$dest = strip_query_param($dest,'f'); $dest = strip_query_param($dest,'f');
// We now post to the OWA endpoint. This improves security by providing a signed digest
$data = json_encode([ 'OpenWebAuth' => random_string() ]); $data = json_encode([ 'OpenWebAuth' => random_string() ]);
$headers = []; $headers = [];
@ -105,14 +112,16 @@ class Magic extends \Zotlabs\Web\Controller {
$headers['(request-target)'] = 'post ' . '/owa'; $headers['(request-target)'] = 'post ' . '/owa';
$headers = HTTPSig::create_sig($headers,$channel['channel_prvkey'], channel_url($channel),true,'sha512'); $headers = HTTPSig::create_sig($headers,$channel['channel_prvkey'], channel_url($channel),true,'sha512');
$x = z_post_url($basepath . '/owa',$data,$redirects,[ 'headers' => $headers ]); $x = z_post_url($owapath,$data,$redirects,[ 'headers' => $headers ]);
logger('owa fetch returned: ' . print_r($x,true),LOGGER_DATA); logger('owa fetch returned: ' . print_r($x,true),LOGGER_DATA);
if($x['success']) { if ($x['success']) {
$j = json_decode($x['body'],true); $j = json_decode($x['body'],true);
if($j['success'] && $j['encrypted_token']) { if ($j['success'] && $j['encrypted_token']) {
// decrypt the token using our private key
$token = ''; $token = '';
openssl_private_decrypt(base64url_decode($j['encrypted_token']),$token,$channel['channel_prvkey']); openssl_private_decrypt(base64url_decode($j['encrypted_token']),$token,$channel['channel_prvkey']);
$x = strpbrk($dest,'?&'); $x = strpbrk($dest,'?&');
// redirect using the encrypted token which will be exchanged for an authenticated session
$args = (($x) ? '&owt=' . $token : '?f=&owt=' . $token) . (($delegate) ? '&delegate=1' : ''); $args = (($x) ? '&owt=' . $token : '?f=&owt=' . $token) . (($delegate) ? '&delegate=1' : '');
goaway($dest . $args); goaway($dest . $args);
} }

207
boot.php
View file

@ -1,6 +1,14 @@
<?php <?php
use Zotlabs\Lib\Libzot; use Zotlabs\Lib\Libzot;
use Zotlabs\Web\Session;
use Zotlabs\Web\HttpMeta;
use Zotlabs\Render\SmartyTemplate;
use Zotlabs\Render\Comanche;
use Zotlabs\Render\Theme;
use Zotlabs\Lib\DB_Upgrade;
use Zotlabs\Lib\System;
use Zotlabs\Daemon\Master;
/** /**
* @file boot.php * @file boot.php
@ -594,8 +602,6 @@ function sys_boot() {
@include('.htconfig.php'); @include('.htconfig.php');
if(defined('NOMADIC')) { if(defined('NOMADIC')) {
define ( 'PLATFORM_NAME', 'zap' ); define ( 'PLATFORM_NAME', 'zap' );
define ( 'PLATFORM_ARCHITECTURE', 'zap' ); define ( 'PLATFORM_ARCHITECTURE', 'zap' );
@ -630,7 +636,6 @@ function sys_boot() {
define( 'DEFAULT_NOTIFY_ICON', '/images/hz-white-64.png' ); define( 'DEFAULT_NOTIFY_ICON', '/images/hz-white-64.png' );
} }
// App::head_set_icon(DEFAULT_PLATFORM_ICON);
/* /*
* Try to open the database; * Try to open the database;
@ -653,7 +658,7 @@ function sys_boot() {
load_config('system'); load_config('system');
load_config('feature'); load_config('feature');
App::$session = new Zotlabs\Web\Session(); App::$session = new Session();
App::$session->init(); App::$session->init();
load_hooks(); load_hooks();
/** /**
@ -671,7 +676,7 @@ function startup() {
// Some hosting providers block/disable this // Some hosting providers block/disable this
@set_time_limit(0); @set_time_limit(0);
if(function_exists ('ini_set')) { if (function_exists ('ini_set')) {
// This has to be quite large to deal with embedded private photos // This has to be quite large to deal with embedded private photos
@ini_set('pcre.backtrack_limit', 500000); @ini_set('pcre.backtrack_limit', 500000);
@ -705,16 +710,17 @@ class App {
public static $profile_uid = 0; // If applicable, the channel_id of the "page owner" public static $profile_uid = 0; // If applicable, the channel_id of the "page owner"
public static $poi = null; // "person of interest", generally a referenced connection public static $poi = null; // "person of interest", generally a referenced connection
private static $oauth_key = null; // consumer_id of oauth request, if used private static $oauth_key = null; // consumer_id of oauth request, if used
public static $layout = array(); // Comanche parsed template public static $layout = []; // Comanche parsed template
public static $pdl = null; // Comanche page description public static $pdl = null; // Comanche page description
private static $perms = null; // observer permissions private static $perms = null; // observer permissions
private static $widgets = array(); // widgets for this page private static $widgets = []; // widgets for this page
public static $config = array(); // config cache public static $config = []; // config cache
public static $override_intltext_templates = array();
public static $override_markup_templates = array(); public static $override_intltext_templates = [];
public static $override_templateroot = null; public static $override_markup_templates = [];
public static $override_helproot = null; public static $override_templateroot = null;
public static $override_helpfiles = array(); public static $override_helproot = null;
public static $override_helpfiles = [];
public static $session = null; public static $session = null;
public static $groups; public static $groups;
@ -731,7 +737,7 @@ class App {
public static $contact; public static $contact;
public static $contacts; public static $contacts;
public static $content; public static $content;
public static $data = array(); public static $data = [];
public static $error = false; public static $error = false;
public static $emojitab = false; public static $emojitab = false;
public static $cmd; public static $cmd;
@ -745,21 +751,18 @@ class App {
public static $timezone; public static $timezone;
public static $interactive = true; public static $interactive = true;
public static $plugins; public static $plugins;
private static $apps = array(); private static $apps = [];
public static $identities; public static $identities;
public static $css_sources = array(); public static $css_sources = [];
public static $js_sources = array(); public static $js_sources = [];
public static $linkrel = array(); public static $linkrel = [];
public static $theme_info = array(); public static $theme_info = [];
public static $is_sys = false; public static $is_sys = false;
public static $nav_sel; public static $nav_sel;
public static $comanche; public static $comanche;
public static $httpheaders = null; public static $httpheaders = null;
public static $httpsig = null; public static $httpsig = null;
public static $channel_links;
public static $channel_links;
public static $category; public static $category;
// Allow themes to control internal parameters // Allow themes to control internal parameters
@ -777,33 +780,33 @@ class App {
* Mostly unimplemented yet. Only options 'template_engine' and * Mostly unimplemented yet. Only options 'template_engine' and
* beyond are used. * beyond are used.
*/ */
private static $theme = array( private static $theme = [
'sourcename' => '', 'sourcename' => '',
'videowidth' => 425, 'videowidth' => 425,
'videoheight' => 350, 'videoheight' => 350,
'force_max_items' => 0, 'force_max_items' => 0,
'thread_allow' => true, 'thread_allow' => true,
'stylesheet' => '', 'stylesheet' => '',
'template_engine' => 'smarty3', 'template_engine' => 'smarty3',
); ];
/** /**
* @brief An array of registered template engines ('name'=>'class name') * @brief An array of registered template engines ('name'=>'class name')
*/ */
public static $template_engines = array(); public static $template_engines = [];
/** /**
* @brief An array of instanced template engines ('name'=>'instance') * @brief An array of instanced template engines ('name'=>'instance')
*/ */
public static $template_engine_instance = array(); public static $template_engine_instance = [];
private static $ldelim = array( private static $ldelim = [
'internal' => '', 'internal' => '',
'smarty3' => '{{' 'smarty3' => '{{'
); ];
private static $rdelim = array( private static $rdelim = [
'internal' => '', 'internal' => '',
'smarty3' => '}}' 'smarty3' => '}}'
); ];
// These represent the URL which was used to access the page // These represent the URL which was used to access the page
@ -825,9 +828,11 @@ class App {
// we'll reset this after we read our config file // we'll reset this after we read our config file
date_default_timezone_set('UTC'); date_default_timezone_set('UTC');
self::$config = array('system'=>array()); self::$config = [
self::$page = array(); 'system' => []
self::$pager= array(); ];
self::$page = [];
self::$pager= [];
self::$query_string = ''; self::$query_string = '';
@ -919,24 +924,22 @@ class App {
* pagination * pagination
*/ */
self::$pager['page'] = ((x($_GET,'page') && intval($_GET['page']) > 0) ? intval($_GET['page']) : 1); self::$pager['page'] = ((x($_GET,'page') && intval($_GET['page']) > 0) ? intval($_GET['page']) : 1);
self::$pager['itemspage'] = 60; self::$pager['itemspage'] = 60;
self::$pager['start'] = (self::$pager['page'] * self::$pager['itemspage']) - self::$pager['itemspage']; self::$pager['start'] = (self::$pager['page'] * self::$pager['itemspage']) - self::$pager['itemspage'];
if(self::$pager['start'] < 0) self::$pager['total'] = 0;
if (self::$pager['start'] < 0) {
self::$pager['start'] = 0; self::$pager['start'] = 0;
self::$pager['total'] = 0; }
self::$meta = new HttpMeta();
/* /*
* register template engines * register template engines (probably just smarty, but this can be extended)
*/ */
self::$meta= new Zotlabs\Web\HttpMeta(); self::register_template_engine(get_class(new SmartyTemplate));
// create an instance of the smarty template engine so we can register it.
$smarty = new Zotlabs\Render\SmartyTemplate();
/// @todo validate if this is still the desired behavior
self::register_template_engine(get_class($smarty));
} }
@ -948,7 +951,7 @@ class App {
&& strlen(self::$config['system']['baseurl'])) { && strlen(self::$config['system']['baseurl'])) {
// get_baseurl() is a heavily used function. // get_baseurl() is a heavily used function.
// Do not use punify() here until we find a library that performs better than what we have now. // Do not use punify() here until we find a library that performs better than what we have now.
//$url = punify(self::$config['system']['baseurl']); // $url = punify(self::$config['system']['baseurl']);
$url = self::$config['system']['baseurl']; $url = self::$config['system']['baseurl'];
$url = trim($url,'\\/'); $url = trim($url,'\\/');
return $url; return $url;
@ -1009,9 +1012,9 @@ class App {
public static function get_channel_links() { public static function get_channel_links() {
$s = ''; $s = '';
$x = self::$channel_links; $x = self::$channel_links;
if($x && is_array($x) && count($x)) { if ($x && is_array($x) && count($x)) {
foreach($x as $y) { foreach ($x as $y) {
if($s) { if ($s) {
$s .= ','; $s .= ',';
} }
$s .= '<' . $y['url'] . '>; rel="' . $y['rel'] . '"; type="' . $y['type'] . '"'; $s .= '<' . $y['url'] . '>; rel="' . $y['rel'] . '"; type="' . $y['type'] . '"';
@ -1105,7 +1108,7 @@ class App {
if(! self::$meta->get_field('og:title')) if(! self::$meta->get_field('og:title'))
self::$meta->set('og:title',self::$page['title']); self::$meta->set('og:title',self::$page['title']);
self::$meta->set('generator', Zotlabs\Lib\System::get_platform_name()); self::$meta->set('generator', System::get_platform_name());
$i = head_get_icon(); $i = head_get_icon();
if($i) { if($i) {
@ -1179,8 +1182,8 @@ class App {
* *
* @return object Template Engine instance * @return object Template Engine instance
*/ */
public static function template_engine($name = ''){ public static function template_engine($name = '') {
if($name !== '') { if ($name !== '') {
$template_engine = $name; $template_engine = $name;
} }
else { else {
@ -1190,8 +1193,8 @@ class App {
} }
} }
if(isset(self::$template_engines[$template_engine])){ if (isset(self::$template_engines[$template_engine])) {
if(isset(self::$template_engine_instance[$template_engine])){ if (isset(self::$template_engine_instance[$template_engine])) {
return self::$template_engine_instance[$template_engine]; return self::$template_engine_instance[$template_engine];
} }
else { else {
@ -1202,6 +1205,8 @@ class App {
} }
} }
// If we fell through to this step, it is considered fatal.
echo "template engine <tt>$template_engine</tt> is not registered!\n"; echo "template engine <tt>$template_engine</tt> is not registered!\n";
killme(); killme();
} }
@ -1233,7 +1238,7 @@ class App {
public static function head_get_icon() { public static function head_get_icon() {
$icon = self::$data['pageicon']; $icon = self::$data['pageicon'];
if($icon && ! strpos($icon,'://')) if ($icon && ! strpos($icon,'://'))
$icon = z_root() . $icon; $icon = z_root() . $icon;
return $icon; return $icon;
} }
@ -1322,7 +1327,7 @@ function z_root() {
* @return string * @return string
*/ */
function absurl($path) { function absurl($path) {
if(strpos($path, '/') === 0) if (strpos($path, '/') === 0)
return z_path() . $path; return z_path() . $path;
return $path; return $path;
@ -1343,14 +1348,14 @@ function os_mkdir($path, $mode = 0777, $recursive = false) {
* @return boolean * @return boolean
*/ */
function rrmdir($path) { function rrmdir($path) {
if(is_dir($path) === true) { if (is_dir($path) === true) {
$files = array_diff(scandir($path), array('.', '..')); $files = array_diff(scandir($path), array('.', '..'));
foreach($files as $file) { foreach ($files as $file) {
rrmdir(realpath($path) . '/' . $file); rrmdir(realpath($path) . '/' . $file);
} }
return rmdir($path); return rmdir($path);
} }
elseif(is_file($path) === true) { elseif (is_file($path) === true) {
return unlink($path); return unlink($path);
} }
@ -1368,7 +1373,7 @@ function is_ajax() {
} }
function killme_if_ajax() { function killme_if_ajax() {
if(is_ajax()) { if (is_ajax()) {
killme(); killme();
} }
} }
@ -1381,9 +1386,10 @@ function killme_if_ajax() {
function check_config() { function check_config() {
$saved = get_config('system','urlverify'); $saved = get_config('system','urlverify');
if(! $saved) if (! $saved) {
set_config('system','urlverify',bin2hex(z_root())); set_config('system','urlverify', bin2hex(z_root()));
}
if(($saved) && ($saved != bin2hex(z_root()))) { if(($saved) && ($saved != bin2hex(z_root()))) {
// our URL changed. Do something. // our URL changed. Do something.
@ -1416,8 +1422,7 @@ function check_config() {
if (! $syschan_exists) if (! $syschan_exists)
create_sys_channel(); create_sys_channel();
$x = new \Zotlabs\Lib\DB_Upgrade(DB_UPDATE_VERSION); $x = new DB_Upgrade(DB_UPDATE_VERSION);
plugins_sync(); plugins_sync();
@ -1517,7 +1522,7 @@ function fix_system_urls($oldurl, $newurl) {
} }
} }
Zotlabs\Daemon\Master::Summon(array('Notifier', 'refresh_all', $c[0]['channel_id'])); Master::Summon( [ 'Notifier', 'refresh_all', $c[0]['channel_id'] ]);
} }
} }
@ -1752,7 +1757,7 @@ function notice($s) {
if(! session_id()) if(! session_id())
return; return;
if(! x($_SESSION, 'sysmsg')) $_SESSION['sysmsg'] = array(); if(! x($_SESSION, 'sysmsg')) $_SESSION['sysmsg'] = [];
// ignore duplicated error messages which haven't yet been displayed // ignore duplicated error messages which haven't yet been displayed
// - typically seen as multiple 'permission denied' messages // - typically seen as multiple 'permission denied' messages
@ -1780,7 +1785,7 @@ function info($s) {
if(! session_id()) if(! session_id())
return; return;
if(! x($_SESSION, 'sysmsg_info')) if(! x($_SESSION, 'sysmsg_info'))
$_SESSION['sysmsg_info'] = array(); $_SESSION['sysmsg_info'] = [];
if(in_array($s, $_SESSION['sysmsg_info'])) if(in_array($s, $_SESSION['sysmsg_info']))
return; return;
@ -1812,63 +1817,47 @@ function get_max_import_size() {
* *
* $cmd and string args are surrounded with "" * $cmd and string args are surrounded with ""
*/ */
function proc_run(){ function proc_run() {
$args = func_get_args(); $args = func_get_args();
$newargs = array();
if(! count($args)) if(! count($args))
return; return;
$args = flatten_array_recursive($args); $args = flatten_array_recursive($args);
$arr = [ $arr = [
'args' => $args, 'args' => $args,
'run_cmd' => true 'run_cmd' => true
]; ];
/** /**
* @hooks proc_run * @hooks proc_run
* Called when invoking PHP sub processes. * Called when invoking PHP sub processes.
* * \e array \b args * * \e array \b args
* * \e boolean \b run_cmd * * \e boolean \b run_cmd
*/ */
call_hooks('proc_run', $arr); call_hooks('proc_run', $arr);
if(! $arr['run_cmd']) if (! $arr['run_cmd'])
return; return;
if(count($args) && $args[0] === 'php') if (count($args) && $args[0] === 'php')
$args[0] = ((x(App::$config,'system')) && (x(App::$config['system'],'php_path')) && (strlen(App::$config['system']['php_path'])) ? App::$config['system']['php_path'] : 'php'); $args[0] = ((x(App::$config,'system')) && (x(App::$config['system'],'php_path')) && (strlen(App::$config['system']['php_path'])) ? App::$config['system']['php_path'] : 'php');
// redirect proc_run statements of legacy daemon processes to the newer Daemon Master object class
// We will keep this interface until everybody has transitioned. (2016-05-20)
if(strstr($args[1],'include/')) {
// convert 'include/foo.php' to 'Foo'
$orig = substr(ucfirst(substr($args[1],8)),0,-4);
logger('proc_run_redirect: ' . $orig);
if(file_exists('Zotlabs/Daemon/' . $orig . '.php')) {
array_shift($args); // daemons are all run by php, pop it off the top of the array
$args[0] = $orig; // replace with the new daemon name
logger('Redirecting old proc_run interface: ' . print_r($args,true), LOGGER_DEBUG, LOG_DEBUG);
\Zotlabs\Daemon\Master::Summon($args); // summon the daemon
return;
}
}
$args = array_map('escapeshellarg',$args); $args = array_map('escapeshellarg',$args);
$cmdline = implode($args," "); $cmdline = implode($args," ");
if(is_windows()) { if (is_windows()) {
$cwd = getcwd(); $cwd = getcwd();
$cmd = "cmd /c start \"title\" /D \"$cwd\" /b $cmdline"; $cmd = "cmd /c start \"title\" /D \"$cwd\" /b $cmdline";
proc_close(proc_open($cmd, array(), $foo)); proc_close(proc_open($cmd, [], $foo));
} }
else { else {
if(get_config('system','use_proc_open')) if (get_config('system','use_proc_open'))
proc_close(proc_open($cmdline ." &", array(), $foo)); proc_close(proc_open($cmdline ." &", [], $foo));
else else
exec($cmdline . ' > /dev/null &'); exec($cmdline . ' > /dev/null &');
} }
@ -1933,7 +1922,7 @@ function is_developer() {
function load_contact_links($uid) { function load_contact_links($uid) {
$ret = array(); $ret = [];
if(! $uid || x(App::$contacts,'empty')) if(! $uid || x(App::$contacts,'empty'))
return; return;
@ -2067,7 +2056,7 @@ function get_custom_nav($navname) {
*/ */
function load_pdl() { function load_pdl() {
App::$comanche = new Zotlabs\Render\Comanche(); App::$comanche = new Comanche();
if (! count(App::$layout)) { if (! count(App::$layout)) {
@ -2152,10 +2141,10 @@ function construct_page() {
} }
$current_theme = Zotlabs\Render\Theme::current(); $current_theme = Theme::current();
// logger('current_theme: ' . print_r($current_theme,true)); // logger('current_theme: ' . print_r($current_theme,true));
// Zotlabs\Render\Theme::debug(); // Theme::debug();
if (($p = theme_include($current_theme[0] . '.js')) != '') if (($p = theme_include($current_theme[0] . '.js')) != '')
head_add_js('/' . $p); head_add_js('/' . $p);
@ -2173,7 +2162,7 @@ function construct_page() {
if (($p = theme_include('mod_' . App::$module . '.css')) != '') if (($p = theme_include('mod_' . App::$module . '.css')) != '')
head_add_css('mod_' . App::$module . '.css'); head_add_css('mod_' . App::$module . '.css');
head_add_css(Zotlabs\Render\Theme::url($installing)); head_add_css(Theme::url($installing));
if (($p = theme_include('mod_' . App::$module . '.js')) != '') if (($p = theme_include('mod_' . App::$module . '.js')) != '')
head_add_js('mod_' . App::$module . '.js'); head_add_js('mod_' . App::$module . '.js');
@ -2414,7 +2403,7 @@ function z_check_cert() {
function cert_bad_email() { function cert_bad_email() {
return z_mail( return z_mail(
[ [
'toEmail' => \App::$config['system']['admin_email'], 'toEmail' => App::$config['system']['admin_email'],
'messageSubject' => sprintf(t('[$Projectname] Website SSL error for %s'), App::get_hostname()), 'messageSubject' => sprintf(t('[$Projectname] Website SSL error for %s'), App::get_hostname()),
'textVersion' => replace_macros(get_intltext_template('cert_bad_eml.tpl'), 'textVersion' => replace_macros(get_intltext_template('cert_bad_eml.tpl'),
[ [
@ -2438,7 +2427,7 @@ function check_cron_broken() {
$d = get_config('system','lastcron'); $d = get_config('system','lastcron');
if((! $d) || ($d < datetime_convert('UTC','UTC','now - 4 hours'))) { if((! $d) || ($d < datetime_convert('UTC','UTC','now - 4 hours'))) {
Zotlabs\Daemon\Master::Summon(array('Cron')); Master::Summon(array('Cron'));
set_config('system','lastcron',datetime_convert()); set_config('system','lastcron',datetime_convert());
} }
@ -2463,7 +2452,7 @@ function check_cron_broken() {
return z_mail( return z_mail(
[ [
'toEmail' => \App::$config['system']['admin_email'], 'toEmail' => App::$config['system']['admin_email'],
'messageSubject' => sprintf(t('[$Projectname] Cron tasks not running on %s'), App::get_hostname()), 'messageSubject' => sprintf(t('[$Projectname] Cron tasks not running on %s'), App::get_hostname()),
'textVersion' => replace_macros(get_intltext_template('cron_bad_eml.tpl'), 'textVersion' => replace_macros(get_intltext_template('cron_bad_eml.tpl'),
[ [

View file

@ -210,32 +210,19 @@ function mark_orphan_hubsxchans() {
if($dirmode == DIRECTORY_MODE_NORMAL) if($dirmode == DIRECTORY_MODE_NORMAL)
return; return;
$r = q("update hubloc set hubloc_error = 1 where hubloc_error = 0 $r = q("update hubloc set hubloc_deleted = 1 where hubloc_deleted = 0
and hubloc_network = 'zot6' and hubloc_connected < %s - interval %s", and hubloc_network = 'zot6' and hubloc_connected < %s - interval %s",
db_utcnow(), db_quoteinterval('36 day') db_utcnow(), db_quoteinterval('36 day')
); );
// $realm = get_directory_realm(); $r = q("select hubloc_id, hubloc_hash from hubloc where hubloc_deleted = 1 and hubloc_orphancheck = 0");
// if($realm == DIRECTORY_REALM) {
// $r = q("select * from site where site_access != 0 and site_register !=0 and ( site_realm = '%s' or site_realm = '') order by rand()",
// dbesc($realm)
// );
// }
// else {
// $r = q("select * from site where site_access != 0 and site_register !=0 and site_realm = '%s' order by rand()",
// dbesc($realm)
// );
// }
$r = q("select hubloc_id, hubloc_hash from hubloc where hubloc_error = 0 and hubloc_orphancheck = 0");
if($r) { if($r) {
foreach($r as $rr) { foreach($r as $rr) {
// see if any other hublocs are still alive for this channel // see if any other hublocs are still alive for this channel
$x = q("select * from hubloc where hubloc_hash = '%s' and hubloc_error = 0", $x = q("select * from hubloc where hubloc_hash = '%s' and hubloc_deleted = 0",
dbesc($rr['hubloc_hash']) dbesc($rr['hubloc_hash'])
); );
if($x) { if($x) {

View file

@ -212,13 +212,6 @@ function import_hublocs($channel, $hublocs, $seize, $moving = false) {
// continue; // continue;
// } // }
if(! array_key_exists('hubloc_primary',$hubloc)) {
$hubloc['hubloc_primary'] = (($hubloc['hubloc_flags'] & 0x0001) ? 1 : 0);
$hubloc['hubloc_orphancheck'] = (($hubloc['hubloc_flags'] & 0x0004) ? 1 : 0);
$hubloc['hubloc_error'] = (($hubloc['hubloc_status'] & 0x0003) ? 1 : 0);
$hubloc['hubloc_deleted'] = (($hubloc['hubloc_flags'] & 0x1000) ? 1 : 0);
}
if($moving && $hubloc['hubloc_hash'] === $channel['channel_hash'] && $hubloc['hubloc_url'] !== z_root()) { if($moving && $hubloc['hubloc_hash'] === $channel['channel_hash'] && $hubloc['hubloc_url'] !== z_root()) {
$hubloc['hubloc_deleted'] = 1; $hubloc['hubloc_deleted'] = 1;
} }