Update functions

pull/44/head
necro-nemsis 2 years ago
parent 7385495bf1
commit 2d3fada462

@ -4,7 +4,7 @@
function mask2cidr($mask)
{
$long = ip2long($mask);
$base = ip2long('255.255.255.255');
$base = ip2long("255.255.255.255");
return 32 - log(($long ^ $base) + 1, 2);
}
@ -12,12 +12,14 @@ function mask2cidr($mask)
function write_php_ini($array, $file)
{
$res = array();
$res = [];
foreach ($array as $key => $val) {
if (is_array($val)) {
$res[] = "[$key]";
foreach ($val as $skey => $sval) {
$res[] = "$skey = ".(is_numeric($sval) ? $sval : '"'.$sval.'"');
$res[] =
"$skey = " .
(is_numeric($sval) ? $sval : '"' . $sval . '"');
}
} else {
$res[] = "$key = " . (is_numeric($val) ? $val : '"' . $val . '"');
@ -32,7 +34,7 @@ function write_php_ini($array, $file)
function safefilerewrite($fileName, $dataToSave)
{
if ($fp = fopen($fileName, 'w')) {
if ($fp = fopen($fileName, "w")) {
$startTime = microtime(true);
do {
$canWrite = flock($fp, LOCK_EX);
@ -40,7 +42,7 @@ function safefilerewrite($fileName, $dataToSave)
if (!$canWrite) {
usleep(round(rand(0, 100) * 1000));
}
} while ((!$canWrite)and((microtime(true)-$startTime) < 5));
} while (!$canWrite and microtime(true) - $startTime < 5);
//file was locked so now we can store information
if ($canWrite) {
@ -56,16 +58,18 @@ function safefilerewrite($fileName, $dataToSave)
//Function to get string between used for Mobile.sh
function get_string_between($string, $start, $end){
$string = ' ' . $string;
function get_string_between($string, $start, $end)
{
$string = " " . $string;
$ini = strpos($string, $start);
if ($ini == 0) return '';
if ($ini == 0) {
return "";
}
$ini += strlen($start);
$len = strpos($string, $end, $ini) - $ini;
return substr($string, $ini, $len);
}
/**
*
* Add CSRF Token to form
@ -74,8 +78,10 @@ function get_string_between($string, $start, $end){
function CSRFToken()
{
?>
<input id="csrf_token" type="hidden" name="csrf_token" value="<?php echo htmlspecialchars($_SESSION['csrf_token'], ENT_QUOTES);
; ?>" />
<input id="csrf_token" type="hidden" name="csrf_token" value="<?php echo htmlspecialchars(
$_SESSION["csrf_token"],
ENT_QUOTES
); ?>" />
<?php
}
@ -86,10 +92,10 @@ function CSRFToken()
*/
function CSRFValidate()
{
if (hash_equals($_POST['csrf_token'], $_SESSION['csrf_token'])) {
if (hash_equals($_POST["csrf_token"], $_SESSION["csrf_token"])) {
return true;
} else {
error_log('CSRF violation');
error_log("CSRF violation");
return false;
}
}
@ -113,24 +119,32 @@ function isAssoc($arr)
*/
function SelectorOptions($name, $options, $selected = null, $id = null)
{
echo '<select class="form-control" name="'.htmlspecialchars($name, ENT_QUOTES).'"';
echo '<select class="form-control" name="' .
htmlspecialchars($name, ENT_QUOTES) .
'"';
if (isset($id)) {
echo ' id="' . htmlspecialchars($id, ENT_QUOTES) . '"';
}
echo '>' , PHP_EOL;
echo ">", PHP_EOL;
foreach ($options as $opt => $label) {
$select = '';
$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 '<option value="' .
htmlspecialchars($key, ENT_QUOTES) .
'"' .
$select .
">" .
htmlspecialchars($label, ENT_QUOTES) .
"</option>",
PHP_EOL;
}
echo '</select>' , PHP_EOL;
echo "</select>", PHP_EOL;
}
/**
@ -143,7 +157,11 @@ function SelectorOptions($name, $options, $selected = null, $id = null)
*/
function GetDistString($input, $string, $offset, $separator)
{
$string = substr($input, strpos($input, $string)+$offset, strpos(substr($input, strpos($input, $string)+$offset), $separator));
$string = substr(
$input,
strpos($input, $string) + $offset,
strpos(substr($input, strpos($input, $string) + $offset), $separator)
);
return $string;
}
@ -154,12 +172,12 @@ function GetDistString($input, $string, $offset, $separator)
*/
function ParseConfig($arrConfig)
{
$config = array();
$config = [];
foreach ($arrConfig as $line) {
$line = trim($line);
if ($line != "" && $line[0] != "#") {
$arrLine = explode("=", $line);
$config[$arrLine[0]] = (count($arrLine) > 1 ? $arrLine[1] : true);
$config[$arrLine[0]] = count($arrLine) > 1 ? $arrLine[1] : true;
}
}
return $config;
@ -184,7 +202,7 @@ function ConvertToChannel($freq)
if ($channel >= 1 && $channel <= 196) {
return $channel;
} else {
return 'Invalid Channel';
return "Invalid Channel";
}
}
@ -195,14 +213,17 @@ function ConvertToChannel($freq)
*/
function ConvertToSecurity($security)
{
$options = array();
preg_match_all('/\[([^\]]+)\]/s', $security, $matches);
$options = [];
preg_match_all("/\[([^\]]+)\]/s", $security, $matches);
foreach ($matches[1] as $match) {
if (preg_match('/^(WPA\d?)/', $match, $protocol_match)) {
if (preg_match("/^(WPA\d?)/", $match, $protocol_match)) {
$protocol = $protocol_match[1];
$matchArr = explode('-', $match);
$matchArr = explode("-", $match);
if (count($matchArr) > 2) {
$options[] = htmlspecialchars($protocol . ' ('. $matchArr[2] .')', ENT_QUOTES);
$options[] = htmlspecialchars(
$protocol . " (" . $matchArr[2] . ")",
ENT_QUOTES
);
} else {
$options[] = htmlspecialchars($protocol, ENT_QUOTES);
}
@ -213,9 +234,9 @@ function ConvertToSecurity($security)
// 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';
return "Open";
} else {
return implode('<br />', $options);
return implode("<br />", $options);
}
}
@ -227,13 +248,16 @@ function ConvertToSecurity($security)
function DisplayLokinetConfig()
{
exec('pidof lokinet | wc -l', $lokinetstatus);
exec("pidof lokinet | wc -l", $lokinetstatus);
if ($lokinetstatus[0] != 0) {
$exitstatus = exec("lokinet-vpn --status");
} else {
$exitstatus = "no exits";
}
$rulestate = exec("ip rule show default | grep lokinet | awk {'print $5'}", $output);
$rulestate = exec(
"ip rule show default | grep lokinet | awk {'print $5'}",
$output
);
$lokiversion = exec("dpkg -s lokinet | grep '^Version:'", $output);
?>
<div class="row">
@ -246,8 +270,6 @@ function DisplayLokinetConfig()
<ul class="nav nav-tabs">
<li class="active"><a href="#basic" data-toggle="tab">Exit Node Settings</a>
</li>
<li><a href="#daemon" data-toggle="tab">Daemon Settings</a>
</li>
<li><a href="#Mobile" data-toggle="tab">Mobile APN</a>
</li>
<li><a href="#whois" data-toggle="tab">WHOIS</a>
@ -276,8 +298,9 @@ function DisplayLokinetConfig()
echo '<input type="submit" class="btn btn-success" name="StartDaemon" value="Start Daemon" />', PHP_EOL;
} else {
echo '<input type="submit" class="btn btn-danger" name="StopDaemon" value="Stop Daemon" />', PHP_EOL;
} ?><h5><?php echo _("Your development support is greatly appreciated | Loki Address:"); ?></h5>
<h5><pre><?php echo _("LA8VDcoJgiv2bSiVqyaT6hJ67LXbnQGpf9Uk3zh9ikUKPJUWeYbgsd9gxQ5ptM2hQNSsCaRETQ3GM9FLDe7BGqcm4ve69bh"); ?></pre></h5>
}
?><h5><?php echo "Your development support is greatly appreciated <br>Independent LabyrinthAP developer TechnicalTumbleweed's OXEN wallet address:"; ?></h5>
<h5><pre><?php echo "LA8VDcoJgiv2bSiVqyaT6hJ67LXbnQGpf9Uk3zh9ikUKPJUWeYbgsd9gxQ5ptM2hQNSsCaRETQ3GM9FLDe7BGqcm4ve69bh"; ?></pre></h5>
</div>
<div class="tab-pane fade" id="Mobile">
@ -286,10 +309,9 @@ function DisplayLokinetConfig()
<label for="apn">Mobile Provider APN:</label>
<input type="text" class="form-control" placeholder="enter apn address here" id="apn" name="apn">
<br/>
<?php
echo '<input type="submit" class="btn btn-success" name="apnaddress" value="Set APN" />' , PHP_EOL;
?><h5><?php echo _("Your development support is greatly appreciated | Loki Address:"); ?></h5>
<h5><pre><?php echo _("LA8VDcoJgiv2bSiVqyaT6hJ67LXbnQGpf9Uk3zh9ikUKPJUWeYbgsd9gxQ5ptM2hQNSsCaRETQ3GM9FLDe7BGqcm4ve69bh"); ?></pre></h5>
<?php echo '<input type="submit" class="btn btn-success" name="apnaddress" value="Set APN" />',
PHP_EOL; ?><h5><?php echo "Your development support is greatly appreciated <br>Independent LabyrinthAP developer TechnicalTumbleweed's OXEN wallet address:"; ?></h5>
<h5><pre><?php echo "LA8VDcoJgiv2bSiVqyaT6hJ67LXbnQGpf9Uk3zh9ikUKPJUWeYbgsd9gxQ5ptM2hQNSsCaRETQ3GM9FLDe7BGqcm4ve69bh"; ?></pre></h5>
</div>
<div class="tab-pane fade" id="whois">
@ -298,62 +320,13 @@ function DisplayLokinetConfig()
<label for="lokiaddress">Loki Address:</label>
<input type="text" class="form-control" placeholder="enter lokinet address here" id="lokiaddress" name="lokiaddress">
<br/>
<?php
echo '<input type="submit" class="btn btn-success" name="checkaddress" value="Submit" />' , PHP_EOL;
?><h5><?php echo _("Your development support is greatly appreciated | Loki Address:"); ?></h5>
<h5><pre><?php echo _("LA8VDcoJgiv2bSiVqyaT6hJ67LXbnQGpf9Uk3zh9ikUKPJUWeYbgsd9gxQ5ptM2hQNSsCaRETQ3GM9FLDe7BGqcm4ve69bh"); ?></pre></h5>
</div>
<div class="tab-pane fade" id="daemon">
<h4>Lokient Daemon</h4>
<div class="row">
<div class="col-lg-12">
<button type="button" class="btn btn-info" data-toggle="collapse" data-target="#instruct">Instructions</button>
<div id="instruct" class="collapse">The 3 buttons below must be armed (red) to connect to Lokinet. If there isn't a current lokinet.ini file found on the system the "Generate.ini" button will be green. The .ini file must be generated prior to connecting to Lokinet by pressing the button which will automatically write the required .ini file. Similarly the absense of a valid bootstrap will be indicated by a green "Bootstrap" button. Applying a bootstrap by pressing the apply button without submitting a valid URL in the textbox area will apply the original default bootstrap in place of one being provided. Stopping the daemon also exits Lokinet. To summarize, if necessary generate the .ini and bootstrap Lokinet then you are able to connect to Lokinet by starting the daemon and letting the network establish itself.
</div>
<div class="row">
<div class="form-group col-lg-12">
<h5>Enter a valid bootstrap url below and apply to overwrite the current bootstrap:</h5>
<label for="lokinetbootstrap">Bootstrap url:</label>
<input type="url" class="form-control" placeholder="https://seed.lokinet.org/lokinet.signed" id="lokinetbootstrap" name="lokinetbootstrap">
<br/>
<?php
$filename = '/var/lib/lokinet/lokinet.ini';
if ($lokinetstatus[0] == 0) {
echo '<input type="submit" class="btn btn-success" name="StartDaemon" value="Start Daemon" />' , PHP_EOL;
} else {
echo '<input type="submit" class="btn btn-danger" name="StopDaemon" value="Stop Daemon" />' , PHP_EOL;
}
if (file_exists($filename)) {
echo '<input type="submit" class="btn btn-danger" name="ReGenerateLokinet" value="Regenerate .ini" />' , PHP_EOL;
} else {
echo '<input type="submit" class="btn btn-success" name="GenerateLokinet" value="Generate .ini" />' , PHP_EOL;
} ?>
<input type="submit" class="btn btn-danger" name="ApplyLokinetSettings" value="Re-Bootstrap" />
<h5><?php echo _("Your development support is greatly appreciated | Loki Address:"); ?></h5>
<h5><pre><?php echo _("LA8VDcoJgiv2bSiVqyaT6hJ67LXbnQGpf9Uk3zh9ikUKPJUWeYbgsd9gxQ5ptM2hQNSsCaRETQ3GM9FLDe7BGqcm4ve69bh"); ?></pre></h5>
</form>
</div>
</div>
<?php echo '<input type="submit" class="btn btn-success" name="checkaddress" value="Submit" />',
PHP_EOL; ?><h5><?php echo "Your development support is greatly appreciated <br>Independent LabyrinthAP developer TechnicalTumbleweed's OXEN wallet address:"; ?></h5>
<h5><pre><?php echo "LA8VDcoJgiv2bSiVqyaT6hJ67LXbnQGpf9Uk3zh9ikUKPJUWeYbgsd9gxQ5ptM2hQNSsCaRETQ3GM9FLDe7BGqcm4ve69bh"; ?></pre></h5>
</div>
</div>
</div>
</div><!-- /.tab-content -->
</div><!-- /.panel-body -->
<div class="panel-footer">Contact Loki user groups on Session to obtain Exit Access</div>
</div><!-- /.panel-primary -->
</div><!-- /.col-lg-12 -->
</div><!-- /.row -->
<?php
}
/**
*
*
*/
function ActivateLokinetConfig()
{
/* Lokinet script commands start HERE
@ -363,23 +336,39 @@ function ActivateLokinetConfig()
//*/
//START
if (isset($_POST['StartDaemon'])) {
exec('sudo /var/lib/lokinet/lokilaunch.sh start');
if (isset($_POST["StartDaemon"])) {
exec("sudo /var/lib/lokinet/lokilaunch.sh start");
DisplayLokinetConfig();
//STOP
} elseif (isset($_POST['StopDaemon'])) {
exec ('sudo /var/lib/lokinet/lokilaunch.sh exitdown');
exec('sudo /var/lib/lokinet/lokilaunch.sh stop');
} elseif (isset($_POST["StopDaemon"])) {
exec("sudo /var/lib/lokinet/lokilaunch.sh exitdown");
exec("sudo /var/lib/lokinet/lokilaunch.sh stop");
DisplayLokinetConfig();
//START EXIT
} elseif (isset($_POST['StartExit'])) {
$exit = $_POST['exitaddress'];
$token = $_POST['exitkey'];
} elseif (isset($_POST["StartExit"])) {
$exit = $_POST["exitaddress"];
$token = $_POST["exitkey"];
$exit = str_replace("'", "", $exit);
$token = str_replace("'", "", $token);
$output = shell_exec("sudo /var/lib/lokinet/lokilaunch.sh exitup '".$exit."' '" .$token."'");
$output = shell_exec(
"sudo /var/lib/lokinet/lokilaunch.sh exitup '" .
$exit .
"' '" .
$token .
"'"
);
$exitstatus = exec("lokinet-vpn --status");
if ($exitstatus != "no exits") {
?><div class="alert alert-info"><?php
echo "Exit Enabled";
?></div><?php
} else {
?><div class="alert alert-danger"><?php
echo "WARNING EXIT DID NOT CONNECT";
?></div><?php
}
echo "<pre><strong>$output</strong></pre>";
?><form method="post"><?php
echo '<input type="submit" class="btn btn-success" name="Return" value="Return" />', PHP_EOL;
@ -387,54 +376,14 @@ function ActivateLokinetConfig()
?><form><br/><?php
//STOP EXIT
} elseif (isset($_POST['StopExit'])) {
exec ('sudo /var/lib/lokinet/lokilaunch.sh exitdown');
} elseif (isset($_POST["StopExit"])) {
exec("sudo /var/lib/lokinet/lokilaunch.sh exitdown");
DisplayLokinetConfig();
//GENERATE LOKINET.INI
} elseif (isset($_POST['GenerateLokinet'])) {
?>
<div class="alert alert-success">
Generating Lokinet Configuration
</div>
<?php
$output = shell_exec('sudo /var/lib/lokinet/lokilaunch.sh gen');
echo "<pre><strong>$output</strong></pre>";
?><form method="post"><?php
echo '<input type="submit" class="btn btn-success" name="Return" value="Return" />' , PHP_EOL;
echo "\n";
?><form><br/><?php
//REGENERATE LOKINET.INI
} elseif (isset($_POST['ReGenerateLokinet'])) {
?>
<div class="alert alert-success">
Regenerating Lokinet Configuration
</div>
<?php
$output = shell_exec('sudo /var/lib/lokinet/lokilaunch.sh gen');
echo "<pre><strong>$output</strong></pre>";
?><form method="post"><?php
echo '<input type="submit" class="btn btn-success" name="Return" value="Return" />' , PHP_EOL;
echo "\n";
?><form><br/><?php
//APPLY LOKINET-BOOTSTRAP
} elseif (isset($_POST['ApplyLokinetSettings'])) {
$bootstrap = $_POST['lokinetbootstrap'];
$bootstrap=str_replace("'", "", $bootstrap);
$output = shell_exec('sudo /var/lib/lokinet/lokilaunch.sh bootstrap '.$bootstrap.'');
$output = preg_replace('#\\x1b[[][^A-Za-z]*[A-Za-z]#', '', $output);
echo "<pre><strong>$output</strong></pre>";
?><form method="post"><?php
echo '<input type="submit" class="btn btn-success" name="Return" value="Return" />' , PHP_EOL;
echo "\n";
?><form><br/><?php
//WHOIS
} elseif (isset($_POST['checkaddress'])) {
$address = $_POST['lokiaddress'];
$output = shell_exec('sudo /var/lib/lokinet/lokilaunch.sh whois '.$address.'');
} elseif (isset($_POST["checkaddress"])) {
$address = $_POST["lokiaddress"];
$output = shell_exec("sudo /var/lib/lokinet/lokilaunch.sh whois " . $address . "");
echo "<pre><strong>$output</strong></pre>";
?><form method="post"><?php
echo '<input type="submit" class="btn btn-success" name="Return" value="Return" />', PHP_EOL;
@ -442,8 +391,8 @@ function ActivateLokinetConfig()
?><form><br/><?php
//Mobile
} elseif (isset($_POST['apnaddress'])) {
$apnvalue = $_POST['apn'];
} elseif (isset($_POST["apnaddress"])) {
$apnvalue = $_POST["apn"];
$file = "/var/lib/lokinet/mobile.sh";
$input = file_get_contents($file);
$parsed = get_string_between($input, "apn='", "',ip");
@ -455,16 +404,9 @@ function ActivateLokinetConfig()
echo '<input type="submit" class="btn btn-success" name="Reboot" value="Activate Now" />', PHP_EOL;
echo "\n";
?><form><br/><?php
} elseif (isset($_POST['Return'])) {
} elseif (isset($_POST["Return"])) {
DisplayLokinetConfig();
} elseif (isset($_POST['Reboot'])) {
shell_exec('sudo reboot now');
} elseif (isset($_POST["Reboot"])) {
shell_exec("sudo reboot now");
}
}

Loading…
Cancel
Save