code reformatted

pull/15/head
necro-nemesis 5 years ago
parent 348f376803
commit b1b2ab79b2

@ -1,38 +1,46 @@
<?php
/* Functions for Networking */
function mask2cidr($mask){
$long = ip2long($mask);
$base = ip2long('255.255.255.255');
return 32-log(($long ^ $base)+1,2);
function mask2cidr($mask)
{
$long = ip2long($mask);
$base = ip2long('255.255.255.255');
return 32-log(($long ^ $base)+1, 2);
}
/* Functions to write ini files */
function write_php_ini($array, $file) {
function write_php_ini($array, $file)
{
$res = array();
foreach($array as $key => $val) {
if(is_array($val)) {
foreach ($array as $key => $val) {
if (is_array($val)) {
$res[] = "[$key]";
foreach($val as $skey => $sval) $res[] = "$skey = ".(is_numeric($sval) ? $sval : '"'.$sval.'"');
foreach ($val as $skey => $sval) {
$res[] = "$skey = ".(is_numeric($sval) ? $sval : '"'.$sval.'"');
}
} else {
$res[] = "$key = ".(is_numeric($val) ? $val : '"'.$val.'"');
}
else $res[] = "$key = ".(is_numeric($val) ? $val : '"'.$val.'"');
}
if(safefilerewrite($file, implode("\r\n", $res))) {
if (safefilerewrite($file, implode("\r\n", $res))) {
return true;
} else {
return false;
}
}
function safefilerewrite($fileName, $dataToSave) {
function safefilerewrite($fileName, $dataToSave)
{
if ($fp = fopen($fileName, 'w')) {
$startTime = microtime(TRUE);
$startTime = microtime(true);
do {
$canWrite = flock($fp, LOCK_EX);
// If lock not obtained sleep for 0 - 100 milliseconds, to avoid collision and CPU load
if(!$canWrite) usleep(round(rand(0, 100)*1000));
} while ((!$canWrite)and((microtime(TRUE)-$startTime) < 5));
if (!$canWrite) {
usleep(round(rand(0, 100)*1000));
}
} while ((!$canWrite)and((microtime(true)-$startTime) < 5));
//file was locked so now we can store information
if ($canWrite) {
@ -53,9 +61,11 @@ function safefilerewrite($fileName, $dataToSave) {
* Add CSRF Token to form
*
*/
function CSRFToken() {
?>
<input id="csrf_token" type="hidden" name="csrf_token" value="<?php echo htmlspecialchars($_SESSION['csrf_token'], ENT_QUOTES);; ?>" />
function CSRFToken()
{
?>
<input id="csrf_token" type="hidden" name="csrf_token" value="<?php echo htmlspecialchars($_SESSION['csrf_token'], ENT_QUOTES);
; ?>" />
<?php
}
@ -64,20 +74,22 @@ function CSRFToken() {
* Validate CSRF Token
*
*/
function CSRFValidate() {
if ( hash_equals($_POST['csrf_token'], $_SESSION['csrf_token']) ) {
return true;
} else {
error_log('CSRF violation');
return false;
}
function CSRFValidate()
{
if (hash_equals($_POST['csrf_token'], $_SESSION['csrf_token'])) {
return true;
} else {
error_log('CSRF violation');
return false;
}
}
/**
* Test whether array is associative
*/
function isAssoc($arr) {
return array_keys($arr) !== range(0, count($arr) - 1);
function isAssoc($arr)
{
return array_keys($arr) !== range(0, count($arr) - 1);
}
/**
@ -89,25 +101,26 @@ function isAssoc($arr) {
* If $options is an associative array this should be the key
*
*/
function SelectorOptions($name, $options, $selected = null, $id = null) {
echo '<select class="form-control" name="'.htmlspecialchars($name, ENT_QUOTES).'"';
if (isset($id)) {
echo ' id="' . htmlspecialchars($id, ENT_QUOTES) .'"';
}
echo '>' , PHP_EOL;
foreach ( $options as $opt => $label) {
$select = '';
$key = isAssoc($options) ? $opt : $label;
if( $key == $selected ) {
$select = ' selected="selected"';
function SelectorOptions($name, $options, $selected = null, $id = null)
{
echo '<select class="form-control" name="'.htmlspecialchars($name, ENT_QUOTES).'"';
if (isset($id)) {
echo ' id="' . htmlspecialchars($id, ENT_QUOTES) .'"';
}
echo '<option value="'.htmlspecialchars($key, ENT_QUOTES).'"'.$select.'>'.
echo '>' , PHP_EOL;
foreach ($options as $opt => $label) {
$select = '';
$key = isAssoc($options) ? $opt : $label;
if ($key == $selected) {
$select = ' selected="selected"';
}
echo '<option value="'.htmlspecialchars($key, ENT_QUOTES).'"'.$select.'>'.
htmlspecialchars($label, ENT_QUOTES).'</option>' , PHP_EOL;
}
}
echo '</select>' , PHP_EOL;
echo '</select>' , PHP_EOL;
}
/**
@ -118,9 +131,10 @@ function SelectorOptions($name, $options, $selected = null, $id = null) {
* @param string $separator
* @return $string
*/
function GetDistString( $input,$string,$offset,$separator ) {
$string = substr( $input,strpos( $input,$string )+$offset,strpos( substr( $input,strpos( $input,$string )+$offset ), $separator ) );
return $string;
function GetDistString($input, $string, $offset, $separator)
{
$string = substr($input, strpos($input, $string)+$offset, strpos(substr($input, strpos($input, $string)+$offset), $separator));
return $string;
}
/**
@ -128,16 +142,17 @@ function GetDistString( $input,$string,$offset,$separator ) {
* @param array $arrConfig
* @return $config
*/
function ParseConfig( $arrConfig ) {
$config = array();
foreach( $arrConfig as $line ) {
$line = trim($line);
if( $line != "" && $line[0] != "#" ) {
$arrLine = explode( "=",$line );
$config[$arrLine[0]] = ( count($arrLine) > 1 ? $arrLine[1] : true );
}
}
return $config;
function ParseConfig($arrConfig)
{
$config = array();
foreach ($arrConfig as $line) {
$line = trim($line);
if ($line != "" && $line[0] != "#") {
$arrLine = explode("=", $line);
$config[$arrLine[0]] = (count($arrLine) > 1 ? $arrLine[1] : true);
}
}
return $config;
}
/**
@ -145,21 +160,22 @@ function ParseConfig( $arrConfig ) {
* @param string $freq
* @return $channel
*/
function ConvertToChannel( $freq ) {
if ($freq >= 2412 && $freq <= 2484) {
$channel = ($freq - 2407)/5;
} elseif ($freq >= 4915 && $freq <= 4980) {
$channel = ($freq - 4910)/5 + 182;
} elseif ($freq >= 5035 && $freq <= 5865) {
$channel = ($freq - 5030)/5 + 6;
} else {
$channel = -1;
}
if ($channel >= 1 && $channel <= 196) {
return $channel;
} else {
return 'Invalid Channel';
}
function ConvertToChannel($freq)
{
if ($freq >= 2412 && $freq <= 2484) {
$channel = ($freq - 2407)/5;
} elseif ($freq >= 4915 && $freq <= 4980) {
$channel = ($freq - 4910)/5 + 182;
} elseif ($freq >= 5035 && $freq <= 5865) {
$channel = ($freq - 5030)/5 + 6;
} else {
$channel = -1;
}
if ($channel >= 1 && $channel <= 196) {
return $channel;
} else {
return 'Invalid Channel';
}
}
/**
@ -167,65 +183,65 @@ function ConvertToChannel( $freq ) {
* @param string $security
* @return string
*/
function ConvertToSecurity( $security ) {
$options = array();
preg_match_all('/\[([^\]]+)\]/s', $security, $matches);
foreach($matches[1] as $match) {
if (preg_match('/^(WPA\d?)/', $match, $protocol_match)) {
$protocol = $protocol_match[1];
$matchArr = explode('-', $match);
if (count($matchArr) > 2) {
$options[] = htmlspecialchars($protocol . ' ('. $matchArr[2] .')', ENT_QUOTES);
} else {
$options[] = htmlspecialchars($protocol, ENT_QUOTES);
}
function ConvertToSecurity($security)
{
$options = array();
preg_match_all('/\[([^\]]+)\]/s', $security, $matches);
foreach ($matches[1] as $match) {
if (preg_match('/^(WPA\d?)/', $match, $protocol_match)) {
$protocol = $protocol_match[1];
$matchArr = explode('-', $match);
if (count($matchArr) > 2) {
$options[] = htmlspecialchars($protocol . ' ('. $matchArr[2] .')', ENT_QUOTES);
} else {
$options[] = htmlspecialchars($protocol, ENT_QUOTES);
}
}
}
if (count($options) === 0) {
// This could also be WEP but wpa_supplicant doesn't have a way to determine
// this.
// And you shouldn't be using WEP these days anyway.
return 'Open';
} else {
return implode('<br />', $options);
}
}
if (count($options) === 0) {
// This could also be WEP but wpa_supplicant doesn't have a way to determine
// this.
// And you shouldn't be using WEP these days anyway.
return 'Open';
} else {
return implode('<br />', $options);
}
}
/**
*
*
*/
function DisplayOpenVPNConfig() {
exec( 'cat '. RASPI_OPENVPN_CLIENT_CONFIG, $returnClient );
exec( 'cat '. RASPI_OPENVPN_SERVER_CONFIG, $returnServer );
exec( 'pidof openvpn | wc -l', $openvpnstatus);
if( $openvpnstatus[0] == 0 ) {
$status = '<div class="alert alert-warning alert-dismissable">OpenVPN is not running
function DisplayOpenVPNConfig()
{
exec('cat '. RASPI_OPENVPN_CLIENT_CONFIG, $returnClient);
exec('cat '. RASPI_OPENVPN_SERVER_CONFIG, $returnServer);
exec('pidof openvpn | wc -l', $openvpnstatus);
if ($openvpnstatus[0] == 0) {
$status = '<div class="alert alert-warning alert-dismissable">OpenVPN is not running
<button type="button" class="close" data-dismiss="alert" aria-hidden="true">×</button></div>';
} else {
$status = '<div class="alert alert-success alert-dismissable">OpenVPN is running
} else {
$status = '<div class="alert alert-success alert-dismissable">OpenVPN is running
<button type="button" class="close" data-dismiss="alert" aria-hidden="true">×</button></div>';
}
// parse client settings
foreach( $returnClient as $a ) {
if( $a[0] != "#" ) {
$arrLine = explode( " ",$a) ;
$arrClientConfig[$arrLine[0]]=$arrLine[1];
}
}
// parse server settings
foreach( $returnServer as $a ) {
if( $a[0] != "#" ) {
$arrLine = explode( " ",$a) ;
$arrServerConfig[$arrLine[0]]=$arrLine[1];
}
}
?>
}
// parse client settings
foreach ($returnClient as $a) {
if ($a[0] != "#") {
$arrLine = explode(" ", $a) ;
$arrClientConfig[$arrLine[0]]=$arrLine[1];
}
}
// parse server settings
foreach ($returnServer as $a) {
if ($a[0] != "#") {
$arrLine = explode(" ", $a) ;
$arrServerConfig[$arrLine[0]]=$arrLine[1];
}
} ?>
<div class="row">
<div class="col-lg-12">
<div class="panel panel-primary">
@ -305,12 +321,11 @@ function DisplayOpenVPNConfig() {
</div>
<input type="submit" class="btn btn-outline btn-primary" name="SaveOpenVPNSettings" value="Save settings" />
<?php
if($hostapdstatus[0] == 0) {
echo '<input type="submit" class="btn btn-success" name="StartOpenVPN" value="Start OpenVPN" />' , PHP_EOL;
} else {
echo '<input type="submit" class="btn btn-warning" name="StopOpenVPN" value="Stop OpenVPN" />' , PHP_EOL;
}
?>
if ($hostapdstatus[0] == 0) {
echo '<input type="submit" class="btn btn-success" name="StartOpenVPN" value="Start OpenVPN" />' , PHP_EOL;
} else {
echo '<input type="submit" class="btn btn-warning" name="StopOpenVPN" value="Stop OpenVPN" />' , PHP_EOL;
} ?>
</form>
</div><!-- /.panel-body -->
</div><!-- /.panel-primary -->
@ -326,18 +341,17 @@ function DisplayOpenVPNConfig() {
*/
/*LOKINET FUNCTIONS ADDED HERE*/
function DisplayLokinetConfig(){
exec( 'pidof lokinet | wc -l', $lokinetstatus);
function DisplayLokinetConfig()
{
exec('pidof lokinet | wc -l', $lokinetstatus);
if( $lokinetstatus[0] == 0 ) {
$status = '<div class="alert alert-danger alert-dismissable">Lokinet daemon is not running
if ($lokinetstatus[0] == 0) {
$status = '<div class="alert alert-danger alert-dismissable">Lokinet daemon is not running
<button type="button" class="close" data-dismiss="alert" aria-hidden="true">×</button></div>';
} else {
$status = '<div class="alert alert-success alert-dismissable">Lokinet is running
} else {
$status = '<div class="alert alert-success alert-dismissable">Lokinet is running
<button type="button" class="close" data-dismiss="alert" aria-hidden="true">×</button></div>';
}
?>
} ?>
<div class="row">
<div class="col-lg-12">
<div class="panel panel-primary">
@ -375,20 +389,19 @@ function DisplayLokinetConfig(){
<h5>Contact Loki user groups for the latest bootstrap file location</h5>
<input type="submit" class="btn btn-success" name="ApplyLokinetSettings" value="Apply Bootstrap" />
<?php
if( $lokinetstatus[0] == 0 ) {
echo '<input type="submit" class="btn btn-success" name="StartLokinet" value="Start Lokinet Service" />' , PHP_EOL;
} else {
echo '<input type="submit" class="btn btn-danger" name="StopLokinet" value="Stop Lokinet Service" />' , PHP_EOL;
}
$filename = '/home/pi/loki-network/lokinet.ini';
if ( file_exists($filename)) {
echo '<input type="submit" class="btn btn-danger" name="ReGenerateLokinet" value="Regenerate Lokinet.ini" />' , PHP_EOL;
} else {
echo '<input type="submit" class="btn btn-success" name="GenerateLokinet" value="Generate Lokinet.ini" />' , PHP_EOL;
}
?>
if ($lokinetstatus[0] == 0) {
echo '<input type="submit" class="btn btn-success" name="StartLokinet" value="Start Lokinet Service" />' , PHP_EOL;
} else {
echo '<input type="submit" class="btn btn-danger" name="StopLokinet" value="Stop Lokinet Service" />' , PHP_EOL;
}
$filename = '/home/pi/loki-network/lokinet.ini';
if (file_exists($filename)) {
echo '<input type="submit" class="btn btn-danger" name="ReGenerateLokinet" value="Regenerate Lokinet.ini" />' , PHP_EOL;
} else {
echo '<input type="submit" class="btn btn-success" name="GenerateLokinet" value="Generate Lokinet.ini" />' , PHP_EOL;
} ?>
<h5><strong><?php echo _("Your development support is greatly appreciated: Developer Loki Address"); ?></strong></h5>
<h5><strong><pre><?php echo _("LK8CGQ17G9R3ys3Xf33wCeViD2B95jgdpjAhcRsjuheJ784dumXn7g3RPAzedWpFq364jJKYL9dkQ8mY66sZG9BiCwrYHPmcZin1VP8Btf"); ?></pre></strong></h5>
</div>
@ -403,15 +416,14 @@ function DisplayLokinetConfig(){
</div>
</div>
</div>
<div class="tab-pane fade" id="youtube">
<div class="tab-pane fade" id="youtube">
<div class="container">
<h2>This is Loki</h2>
<div class="embed-responsive embed-responsive-16by9">
<iframe class="embed-responsive-item" src="https://www.youtube.com/embed/Lykh-NqkKys"></iframe>
<h2>This is Loki</h2>
<div class="embed-responsive embed-responsive-16by9">
<iframe class="embed-responsive-item" src="https://www.youtube.com/embed/Lykh-NqkKys"></iframe>
</div>
</div>
</div>
</form>
</div><!-- /.tab-content -->
</div><!-- /.panel-body -->
@ -420,35 +432,33 @@ function DisplayLokinetConfig(){
</div><!-- /.col-lg-12 -->
</div><!-- /.row -->
<?php
}
}
/**
*
*
*/
function DisplayTorProxyConfig(){
function DisplayTorProxyConfig()
{
exec('cat '. RASPI_TORPROXY_CONFIG, $return);
exec('pidof tor | wc -l', $torproxystatus);
exec( 'cat '. RASPI_TORPROXY_CONFIG, $return );
exec( 'pidof tor | wc -l', $torproxystatus);
if( $torproxystatus[0] == 0 ) {
$status = '<div class="alert alert-warning alert-dismissable">TOR is not running
if ($torproxystatus[0] == 0) {
$status = '<div class="alert alert-warning alert-dismissable">TOR is not running
<button type="button" class="close" data-dismiss="alert" aria-hidden="true">×</button></div>';
} else {
$status = '<div class="alert alert-success alert-dismissable">TOR is running
} else {
$status = '<div class="alert alert-success alert-dismissable">TOR is running
<button type="button" class="close" data-dismiss="alert" aria-hidden="true">×</button></div>';
}
$arrConfig = array();
foreach( $return as $a ) {
if( $a[0] != "#" ) {
$arrLine = explode( " ",$a) ;
$arrConfig[$arrLine[0]]=$arrLine[1];
}
}
}
?>
$arrConfig = array();
foreach ($return as $a) {
if ($a[0] != "#") {
$arrLine = explode(" ", $a) ;
$arrConfig[$arrLine[0]]=$arrLine[1];
}
} ?>
<div class="row">
<div class="col-lg-12">
<div class="panel panel-primary">
@ -549,12 +559,11 @@ function DisplayTorProxyConfig(){
<input type="submit" class="btn btn-outline btn-primary" name="SaveTORProxySettings" value="Save settings" />
<?php
if( $torproxystatus[0] == 0 ) {
echo '<input type="submit" class="btn btn-success" name="StartTOR" value="Start TOR" />' , PHP_EOL;
} else {
echo '<input type="submit" class="btn btn-warning" name="StopTOR" value="Stop TOR" />' , PHP_EOL;
};
?>
if ($torproxystatus[0] == 0) {
echo '<input type="submit" class="btn btn-success" name="StartTOR" value="Start TOR" />' , PHP_EOL;
} else {
echo '<input type="submit" class="btn btn-warning" name="StopTOR" value="Stop TOR" />' , PHP_EOL;
}; ?>
</form>
</div><!-- /.tab-content -->
</div><!-- /.panel-body -->
@ -569,75 +578,73 @@ function DisplayTorProxyConfig(){
*
*
*/
function SaveTORAndVPNConfig(){
if( isset($_POST['SaveOpenVPNSettings']) ) {
// TODO
} elseif( isset($_POST['SaveTORProxySettings']) ) {
// TODO
} elseif( isset($_POST['StartOpenVPN']) ) {
echo "Attempting to start openvpn";
exec( 'sudo /etc/init.d/openvpn start', $return );
foreach( $return as $line ) {
echo htmlspecialchars($line, ENT_QUOTES).'<br />' , PHP_EOL;
}
} elseif( isset($_POST['StopOpenVPN']) ) {
echo "Attempting to stop openvpn";
exec( 'sudo /etc/init.d/openvpn stop', $return );
foreach( $return as $line ) {
echo htmlspecialchars($line, ENT_QUOTES).'<br />' , PHP_EOL;
}
} elseif( isset($_POST['StartTOR']) ) {
echo "Attempting to start TOR";
exec( 'sudo /etc/init.d/tor start', $return );
foreach( $return as $line ) {
echo htmlspecialchars($line, ENT_QUOTES).'<br />' , PHP_EOL;
}
} elseif( isset($_POST['StopTOR']) ) {
echo "Attempting to stop TOR";
exec( 'sudo /etc/init.d/tor stop', $return );
foreach( $return as $line ) {
echo htmlspecialchars($line, ENT_QUOTES).'<br />' , PHP_EOL;
}
} elseif( isset($_POST['StartLokinet']) ) {
exec( 'sudo /home/pi/loki-network/lokilaunch.sh "start" > /dev/null &', $return);
?>
function SaveTORAndVPNConfig()
{
if (isset($_POST['SaveOpenVPNSettings'])) {
// TODO
} elseif (isset($_POST['SaveTORProxySettings'])) {
// TODO
} elseif (isset($_POST['StartOpenVPN'])) {
echo "Attempting to start openvpn";
exec('sudo /etc/init.d/openvpn start', $return);
foreach ($return as $line) {
echo htmlspecialchars($line, ENT_QUOTES).'<br />' , PHP_EOL;
}
} elseif (isset($_POST['StopOpenVPN'])) {
echo "Attempting to stop openvpn";
exec('sudo /etc/init.d/openvpn stop', $return);
foreach ($return as $line) {
echo htmlspecialchars($line, ENT_QUOTES).'<br />' , PHP_EOL;
}
} elseif (isset($_POST['StartTOR'])) {
echo "Attempting to start TOR";
exec('sudo /etc/init.d/tor start', $return);
foreach ($return as $line) {
echo htmlspecialchars($line, ENT_QUOTES).'<br />' , PHP_EOL;
}
} elseif (isset($_POST['StopTOR'])) {
echo "Attempting to stop TOR";
exec('sudo /etc/init.d/tor stop', $return);
foreach ($return as $line) {
echo htmlspecialchars($line, ENT_QUOTES).'<br />' , PHP_EOL;
}
} elseif (isset($_POST['StartLokinet'])) {
exec('sudo /home/pi/loki-network/lokilaunch.sh "start" > /dev/null &', $return); ?>
<div class="alert alert-success">
Starting Lokinet background daemon process.
</div>
<?php
} elseif( isset($_POST['StopLokinet']) ) {
exec( 'sudo /home/pi/loki-network/lokilaunch.sh "stop" > /dev/null &', $return);
?>
} elseif (isset($_POST['StopLokinet'])) {
exec('sudo /home/pi/loki-network/lokilaunch.sh "stop" > /dev/null &', $return); ?>
<div class="alert alert-danger">
Stopping Lokinet background daemon process.
</div>
<?php
} elseif( isset($_POST['GenerateLokinet']) ) {
?>
} elseif (isset($_POST['GenerateLokinet'])) {
?>
<div class="alert alert-warning">
Generating Lokinet Configuration
</div>
<?php
$output = shell_exec('sudo /home/pi/loki-network/lokilaunch.sh gen');
echo "<pre><strong>$output</strong></pre>";
} elseif( isset($_POST['ReGenerateLokinet']) ) {
?>
echo "<pre><strong>$output</strong></pre>";
} elseif (isset($_POST['ReGenerateLokinet'])) {
?>
<div class="alert alert-warning">
Regenerating Lokinet Configuration
</div>
<?php
$output = shell_exec('sudo /home/pi/loki-network/lokilaunch.sh gen');
echo "<pre><strong>$output</strong></pre>";
} elseif( isset($_POST['ApplyLokinetSettings']) ) {
$bootstrap = $_POST['lokinetbootstrap'];
?>
echo "<pre><strong>$output</strong></pre>";
} elseif (isset($_POST['ApplyLokinetSettings'])) {
$bootstrap = $_POST['lokinetbootstrap']; ?>
<div class="alert alert-warning">
Applying Bootstrap
</div>
<?php
$bootstrap=str_replace("'", "", $bootstrap);
$output = shell_exec('sudo /home/pi/./loki-network/lokilaunch.sh bootstrap '.$bootstrap.'');
echo "<pre><strong>$output</strong></pre>";
}
$output = shell_exec('sudo /home/pi/./loki-network/lokilaunch.sh bootstrap '.$bootstrap.'');
echo "<pre><strong>$output</strong></pre>";
}
}
?>

Loading…
Cancel
Save