public static function postJsonRpc(&$_result) { if (is_array($_result)) { if (config::byKey('market::allowDNS') == 1) { $dnsRestart = false; if (isset($_result['register::ngrokAddr']) && config::byKey('ngrok::addr') != $_result['register::ngrokAddr']) { config::save('ngrok::addr', $_result['register::ngrokAddr']); $dnsRestart = true; } if (isset($_result['register::ngrokToken']) && config::byKey('ngrok::token') != $_result['register::ngrokToken']) { config::save('ngrok::token', $_result['register::ngrokToken']); $dnsRestart = true; } if ($dnsRestart) { if (network::dns_run()) { network::dns_stop(); } network::dns_start(); } if (isset($_result['jeedom::url']) && config::byKey('jeedom::url') != $_result['jeedom::url']) { config::save('jeedom::url', $_result['jeedom::url']); } } if (isset($_result['register::ngrokAddr'])) { unset($_result['register::ngrokAddr']); } if (isset($_result['register::ngrokPort'])) { unset($_result['register::ngrokPort']); } if (isset($_result['register::ngrokToken'])) { unset($_result['register::ngrokToken']); } if (isset($_result['jeedom::url'])) { unset($_result['jeedom::url']); } if (isset($_result['register::hwkey_nok']) && $_result['register::hwkey_nok'] == 1) { config::save('jeedom::installKey', ''); } } }
public static function dns_start() { if (config::byKey('ngrok::addr') == '') { return; } network::dns_stop(); $config_file = '/tmp/ngrok_jeedom'; $logfile = log::getPathToLog('ngrok'); $uname = posix_uname(); if (strrpos($uname['machine'], 'arm') !== false) { $cmd = dirname(__FILE__) . '/../../script/ngrok/ngrok-arm'; } else { if ($uname['machine'] == 'x86_64') { $cmd = dirname(__FILE__) . '/../../script/ngrok/ngrok-x64'; } else { $cmd = dirname(__FILE__) . '/../../script/ngrok/ngrok-x86'; } } exec('chmod +x ' . $cmd); $cmd .= ' -config=' . $config_file . ' start jeedom'; if (!self::dns_run()) { $replace = array('#server_addr#' => 'dns.jeedom.com:4443', '#name#' => 'jeedom', '#proto#' => 'https', '#port#' => 80, '#remote_port#' => '', '#token#' => config::byKey('ngrok::token'), '#auth#' => '', '#subdomain#' => 'subdomain : ' . config::byKey('ngrok::addr')); $config = template_replace($replace, file_get_contents(dirname(__FILE__) . '/../../script/ngrok/config')); if (file_exists($config_file)) { unlink($config_file); } file_put_contents($config_file, $config); log::remove('ngrok'); log::add('ngork', 'debug', 'Lancement de ngork : ' . $cmd); exec($cmd . ' >> /dev/null 2>&1 &'); } return true; }
if ($jsonrpc->getMethod() == 'update::checkUpdate') { update::checkAllUpdate(); $jsonrpc->makeSuccess('ok'); } /* * ************************Network*************************** */ if ($jsonrpc->getMethod() == 'network::restartNgrok') { config::save('market::allowDNS', 1); if (network::dns_run()) { network::dns_stop(); } network::dns_start(); $jsonrpc->makeSuccess(); } if ($jsonrpc->getMethod() == 'network::stopNgrok') { config::save('market::allowDNS', 0); network::dns_stop(); $jsonrpc->makeSuccess(); } if ($jsonrpc->getMethod() == 'network::ngrokRun') { if (!isset($params['proto'])) { $params['proto'] = 'https'; } if (!isset($params['port'])) { $params['port'] = 80; } if (!isset($params['name'])) { $params['name'] = ''; } $jsonrpc->makeSuccess(network::dns_run()); } /* * ************************************************************************ */