|  |  | <?php
 | 
						
						
						
							|  |  | /* Functions for Networking */
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  | 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)
 | 
						
						
						
							|  |  | {
 | 
						
						
						
							|  |  |     $res = array();
 | 
						
						
						
							|  |  |     foreach ($array as $key => $val) {
 | 
						
						
						
							|  |  |         if (is_array($val)) {
 | 
						
						
						
							|  |  |             $res[] = "[$key]";
 | 
						
						
						
							|  |  |             foreach ($val as $skey => $sval) {
 | 
						
						
						
							|  |  |                 $res[] = "$skey = ".(is_numeric($sval) ? $sval : '"'.$sval.'"');
 | 
						
						
						
							|  |  |             }
 | 
						
						
						
							|  |  |         } else {
 | 
						
						
						
							|  |  |             $res[] = "$key = ".(is_numeric($val) ? $val : '"'.$val.'"');
 | 
						
						
						
							|  |  |         }
 | 
						
						
						
							|  |  |     }
 | 
						
						
						
							|  |  |     if (safefilerewrite($file, implode("\r\n", $res))) {
 | 
						
						
						
							|  |  |         return true;
 | 
						
						
						
							|  |  |     } else {
 | 
						
						
						
							|  |  |         return false;
 | 
						
						
						
							|  |  |     }
 | 
						
						
						
							|  |  | }
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  | function safefilerewrite($fileName, $dataToSave)
 | 
						
						
						
							|  |  | {
 | 
						
						
						
							|  |  |     if ($fp = fopen($fileName, 'w')) {
 | 
						
						
						
							|  |  |         $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));
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  |         //file was locked so now we can store information
 | 
						
						
						
							|  |  |         if ($canWrite) {
 | 
						
						
						
							|  |  |             fwrite($fp, $dataToSave);
 | 
						
						
						
							|  |  |             flock($fp, LOCK_UN);
 | 
						
						
						
							|  |  |         }
 | 
						
						
						
							|  |  |         fclose($fp);
 | 
						
						
						
							|  |  |         return true;
 | 
						
						
						
							|  |  |     } else {
 | 
						
						
						
							|  |  |         return false;
 | 
						
						
						
							|  |  |     }
 | 
						
						
						
							|  |  | }
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  | /**
 | 
						
						
						
							|  |  | *
 | 
						
						
						
							|  |  | * 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);
 | 
						
						
						
							|  |  |     ; ?>" />
 | 
						
						
						
							|  |  | <?php
 | 
						
						
						
							|  |  | }
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  | /**
 | 
						
						
						
							|  |  | *
 | 
						
						
						
							|  |  | * Validate CSRF Token
 | 
						
						
						
							|  |  | *
 | 
						
						
						
							|  |  | */
 | 
						
						
						
							|  |  | 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);
 | 
						
						
						
							|  |  | }
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  | /**
 | 
						
						
						
							|  |  | *
 | 
						
						
						
							|  |  | * Display a selector field for a form. Arguments are:
 | 
						
						
						
							|  |  | *   $name:     Field name
 | 
						
						
						
							|  |  | *   $options:  Array of options
 | 
						
						
						
							|  |  | *   $selected: Selected option (optional)
 | 
						
						
						
							|  |  | *       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"';
 | 
						
						
						
							|  |  |         }
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  |         echo '<option value="'.htmlspecialchars($key, ENT_QUOTES).'"'.$select.'>'.
 | 
						
						
						
							|  |  |             htmlspecialchars($label, ENT_QUOTES).'</option>' , PHP_EOL;
 | 
						
						
						
							|  |  |     }
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  |     echo '</select>' , PHP_EOL;
 | 
						
						
						
							|  |  | }
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  | /**
 | 
						
						
						
							|  |  | *
 | 
						
						
						
							|  |  | * @param string $input
 | 
						
						
						
							|  |  | * @param string $string
 | 
						
						
						
							|  |  | * @param int $offset
 | 
						
						
						
							|  |  | * @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;
 | 
						
						
						
							|  |  | }
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  | /**
 | 
						
						
						
							|  |  | *
 | 
						
						
						
							|  |  | * @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;
 | 
						
						
						
							|  |  | }
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  | /**
 | 
						
						
						
							|  |  | *
 | 
						
						
						
							|  |  | * @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';
 | 
						
						
						
							|  |  |     }
 | 
						
						
						
							|  |  | }
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  | /**
 | 
						
						
						
							|  |  | * Converts WPA security string to readable format
 | 
						
						
						
							|  |  | * @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);
 | 
						
						
						
							|  |  |             }
 | 
						
						
						
							|  |  |         }
 | 
						
						
						
							|  |  |     }
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  |     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
 | 
						
						
						
							|  |  | 					<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
 | 
						
						
						
							|  |  | 					<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];
 | 
						
						
						
							|  |  |         }
 | 
						
						
						
							|  |  |     } ?>
 | 
						
						
						
							|  |  | 	<div class="row">
 | 
						
						
						
							|  |  | 	<div class="col-lg-12">
 | 
						
						
						
							|  |  | 		<div class="panel panel-primary">
 | 
						
						
						
							|  |  | 			<div class="panel-heading"><i class="fa fa-lock fa-fw"></i> Configure OpenVPN </div>
 | 
						
						
						
							|  |  | 		<!-- /.panel-heading -->
 | 
						
						
						
							|  |  | 		<div class="panel-body">
 | 
						
						
						
							|  |  | 			<!-- Nav tabs -->
 | 
						
						
						
							|  |  | 			<ul class="nav nav-tabs">
 | 
						
						
						
							|  |  | 				<li class="active"><a href="#openvpnclient" data-toggle="tab">Client settings</a></li>
 | 
						
						
						
							|  |  | 				<li><a href="#openvpnserver" data-toggle="tab">Server settings</a></li>
 | 
						
						
						
							|  |  | 			</ul>
 | 
						
						
						
							|  |  | 			<!-- Tab panes -->
 | 
						
						
						
							|  |  | 			<div class="tab-content">
 | 
						
						
						
							|  |  | 				<p><?php echo $status; ?></p>
 | 
						
						
						
							|  |  | 				<div class="tab-pane fade in active" id="openvpnclient">
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  | 					<h4>Client settings</h4>
 | 
						
						
						
							|  |  | 					<form role="form" action="?page=save_hostapd_conf" method="POST">
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  | 					<div class="row">
 | 
						
						
						
							|  |  | 						<div class="form-group col-md-4">
 | 
						
						
						
							|  |  | 							<label>Select OpenVPN configuration file (.ovpn)</label>
 | 
						
						
						
							|  |  | 							<input type="file" name="openvpn-config">
 | 
						
						
						
							|  |  | 						</div>
 | 
						
						
						
							|  |  | 					</div>
 | 
						
						
						
							|  |  | 					<div class="row">
 | 
						
						
						
							|  |  | 						<div class="form-group col-md-4">
 | 
						
						
						
							|  |  | 							<label for="code">Client Log</label>
 | 
						
						
						
							|  |  | 							<input type="text" class="form-control" id="disabledInput" name="log-append" type="text" placeholder="<?php echo htmlspecialchars($arrClientConfig['log-append'], ENT_QUOTES); ?>" disabled="disabled" />
 | 
						
						
						
							|  |  | 						</div>
 | 
						
						
						
							|  |  | 					</div>
 | 
						
						
						
							|  |  | 				</div>
 | 
						
						
						
							|  |  | 				<div class="tab-pane fade" id="openvpnserver">
 | 
						
						
						
							|  |  | 					<h4>Server settings</h4>
 | 
						
						
						
							|  |  | 					<div class="row">
 | 
						
						
						
							|  |  | 						<div class="form-group col-md-4">
 | 
						
						
						
							|  |  | 						<label for="code">Port</label>
 | 
						
						
						
							|  |  | 						<input type="text" class="form-control" name="openvpn_port" value="<?php echo htmlspecialchars($arrServerConfig['port'], ENT_QUOTES); ?>" />
 | 
						
						
						
							|  |  | 						</div>
 | 
						
						
						
							|  |  | 					</div>
 | 
						
						
						
							|  |  | 					<div class="row">
 | 
						
						
						
							|  |  | 						<div class="form-group col-md-4">
 | 
						
						
						
							|  |  | 						<label for="code">Protocol</label>
 | 
						
						
						
							|  |  | 						<input type="text" class="form-control" name="openvpn_proto" value="<?php echo htmlspecialchars($arrServerConfig['proto'], ENT_QUOTES); ?>" />
 | 
						
						
						
							|  |  | 						</div>
 | 
						
						
						
							|  |  | 					</div>
 | 
						
						
						
							|  |  | 					<div class="row">
 | 
						
						
						
							|  |  | 						<div class="form-group col-md-4">
 | 
						
						
						
							|  |  | 						<label for="code">Root CA certificate</label>
 | 
						
						
						
							|  |  | 						<input type="text" class="form-control" name="openvpn_rootca" placeholder="<?php echo htmlspecialchars($arrServerConfig['ca'], ENT_QUOTES); ?>" disabled="disabled" />
 | 
						
						
						
							|  |  | 						</div>
 | 
						
						
						
							|  |  | 					</div>
 | 
						
						
						
							|  |  | 					<div class="row">
 | 
						
						
						
							|  |  | 						<div class="form-group col-md-4">
 | 
						
						
						
							|  |  | 						<label for="code">Server certificate</label>
 | 
						
						
						
							|  |  | 						<input type="text" class="form-control" name="openvpn_cert" placeholder="<?php echo htmlspecialchars($arrServerConfig['cert'], ENT_QUOTES); ?>" disabled="disabled" />
 | 
						
						
						
							|  |  | 						</div>
 | 
						
						
						
							|  |  | 					</div>
 | 
						
						
						
							|  |  | 					<div class="row">
 | 
						
						
						
							|  |  | 						<div class="form-group col-md-4">
 | 
						
						
						
							|  |  | 						<label for="code">Diffie Hellman parameters</label>
 | 
						
						
						
							|  |  | 						<input type="text" class="form-control" name="openvpn_dh" placeholder="<?php echo htmlspecialchars($arrServerConfig['dh'], ENT_QUOTES); ?>" disabled="disabled" />
 | 
						
						
						
							|  |  | 						</div>
 | 
						
						
						
							|  |  | 					</div>
 | 
						
						
						
							|  |  | 					<div class="row">
 | 
						
						
						
							|  |  | 						<div class="form-group col-md-4">
 | 
						
						
						
							|  |  | 						<label for="code">KeepAlive</label>
 | 
						
						
						
							|  |  | 						<input type="text" class="form-control" name="openvpn_keepalive" value="<?php echo htmlspecialchars($arrServerConfig['keepalive'], ENT_QUOTES); ?>" />
 | 
						
						
						
							|  |  | 						</div>
 | 
						
						
						
							|  |  | 					</div>
 | 
						
						
						
							|  |  | 					<div class="row">
 | 
						
						
						
							|  |  | 						<div class="form-group col-md-4">
 | 
						
						
						
							|  |  | 						<label for="code">Server log</label>
 | 
						
						
						
							|  |  | 						<input type="text" class="form-control" name="openvpn_status" placeholder="<?php echo htmlspecialchars($arrServerConfig['status'], ENT_QUOTES); ?>" disabled="disabled" />
 | 
						
						
						
							|  |  | 						</div>
 | 
						
						
						
							|  |  | 					</div>
 | 
						
						
						
							|  |  | 				</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;
 | 
						
						
						
							|  |  |                 } ?>
 | 
						
						
						
							|  |  | 				</form>
 | 
						
						
						
							|  |  | 		</div><!-- /.panel-body -->
 | 
						
						
						
							|  |  | 	</div><!-- /.panel-primary -->
 | 
						
						
						
							|  |  | 	<div class="panel-footer"> Information provided by openvpn</div>
 | 
						
						
						
							|  |  | </div><!-- /.col-lg-12 -->
 | 
						
						
						
							|  |  | </div><!-- /.row -->
 | 
						
						
						
							|  |  | <?php
 | 
						
						
						
							|  |  | }
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  | /**
 | 
						
						
						
							|  |  | *
 | 
						
						
						
							|  |  | *
 | 
						
						
						
							|  |  | */
 | 
						
						
						
							|  |  | /*LOKINET FUNCTIONS ADDED HERE*/
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  | function DisplayLokinetConfig()
 | 
						
						
						
							|  |  | {
 | 
						
						
						
							|  |  |     exec('pidof lokinet | wc -l', $lokinetstatus);
 | 
						
						
						
							|  |  |     $rulestate = exec("ip rule show default | grep lokinet | awk {'print $5'}", $output);
 | 
						
						
						
							|  |  |     $lokiversion = exec("dpkg -s lokinet | grep '^Version:'", $output);
 | 
						
						
						
							|  |  |     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 daemon 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">
 | 
						
						
						
							|  |  |               <div class="panel-heading"><i class="fa fa-eye-slash fa-fw"></i> Configure Lokinet</div>
 | 
						
						
						
							|  |  |         <!-- /.panel-heading -->
 | 
						
						
						
							|  |  |                 <div class="panel-body">
 | 
						
						
						
							|  |  |         <!-- Nav tabs -->
 | 
						
						
						
							|  |  |                   <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>
 | 
						
						
						
							|  |  |                 </ul>
 | 
						
						
						
							|  |  |         <!-- Tab panes -->
 | 
						
						
						
							|  |  |                   <div class="tab-content">
 | 
						
						
						
							|  |  |                 <p><?php echo $status; ?></p>
 | 
						
						
						
							|  |  |                 <p><?php echo "Current Lokinet $lokiversion"; ?></p>
 | 
						
						
						
							|  |  |                     <div class="tab-pane fade in active" id="basic">
 | 
						
						
						
							|  |  |                 <form role="form" action="?page=save_hostapd_conf" method="POST">
 | 
						
						
						
							|  |  | 	              <h5>Enter Exit Node Data to activate:</h5>
 | 
						
						
						
							|  |  |                 <label for="exitaddress">Exit Address:</label>
 | 
						
						
						
							|  |  |                 <input type="text" class="form-control" placeholder="enter exit address here" id="exitaddress" name="exitaddress">
 | 
						
						
						
							|  |  |                 <label for="exitkey">Exit Key: (optional)</label>
 | 
						
						
						
							|  |  |                 <input type="text" class="form-control" placeholder="enter exit key here" id="exitkey" name="exitkey">
 | 
						
						
						
							|  |  |                 <br/>
 | 
						
						
						
							|  |  |                 <?php
 | 
						
						
						
							|  |  |     GLOBAL $exitstatus;
 | 
						
						
						
							|  |  |     if ($exitstatus == FALSE) {
 | 
						
						
						
							|  |  |       echo '<input type="submit" class="btn btn-success" name="StartExit" value="Start Exit" />' , PHP_EOL;
 | 
						
						
						
							|  |  |     } else {
 | 
						
						
						
							|  |  |       echo '<input type="submit" class="btn btn-danger" name="StopExit" value="Stop Exit" />' , PHP_EOL;
 | 
						
						
						
							|  |  |     }
 | 
						
						
						
							|  |  |     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;
 | 
						
						
						
							|  |  |     } ?><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 gre$
 | 
						
						
						
							|  |  |                           </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>
 | 
						
						
						
							|  |  |                 </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 DisplayTorProxyConfig()
 | 
						
						
						
							|  |  | {
 | 
						
						
						
							|  |  |     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
 | 
						
						
						
							|  |  | 					<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
 | 
						
						
						
							|  |  | 					<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];
 | 
						
						
						
							|  |  |         }
 | 
						
						
						
							|  |  |     } ?>
 | 
						
						
						
							|  |  | 	<div class="row">
 | 
						
						
						
							|  |  | 	<div class="col-lg-12">
 | 
						
						
						
							|  |  | 		<div class="panel panel-primary">
 | 
						
						
						
							|  |  | 			<div class="panel-heading"><i class="fa fa-eye-slash fa-fw"></i> Configure TOR proxy</div>
 | 
						
						
						
							|  |  |         <!-- /.panel-heading -->
 | 
						
						
						
							|  |  |         <div class="panel-body">
 | 
						
						
						
							|  |  |         	<!-- Nav tabs -->
 | 
						
						
						
							|  |  |             <ul class="nav nav-tabs">
 | 
						
						
						
							|  |  |                 <li class="active"><a href="#basic" data-toggle="tab">Basic</a>
 | 
						
						
						
							|  |  |                 </li>
 | 
						
						
						
							|  |  |                 <li><a href="#relay" data-toggle="tab">Relay</a>
 | 
						
						
						
							|  |  |                 </li>
 | 
						
						
						
							|  |  |             </ul>
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  |             <!-- Tab panes -->
 | 
						
						
						
							|  |  |            	<div class="tab-content">
 | 
						
						
						
							|  |  |            		<p><?php echo $status; ?></p>
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  |             	<div class="tab-pane fade in active" id="basic">
 | 
						
						
						
							|  |  |             		<h4>Basic settings</h4>
 | 
						
						
						
							|  |  | 					<form role="form" action="?page=save_hostapd_conf" method="POST">
 | 
						
						
						
							|  |  | 					<div class="row">
 | 
						
						
						
							|  |  | 						<div class="form-group col-md-4">
 | 
						
						
						
							|  |  | 							<label for="code">VirtualAddrNetwork</label>
 | 
						
						
						
							|  |  | 							<input type="text" class="form-control" name="virtualaddrnetwork" value="<?php echo htmlspecialchars($arrConfig['VirtualAddrNetwork'], ENT_QUOTES); ?>" />
 | 
						
						
						
							|  |  | 						</div>
 | 
						
						
						
							|  |  | 					</div>
 | 
						
						
						
							|  |  | 					<div class="row">
 | 
						
						
						
							|  |  | 						<div class="form-group col-md-4">
 | 
						
						
						
							|  |  | 							<label for="code">AutomapHostsSuffixes</label>
 | 
						
						
						
							|  |  | 							<input type="text" class="form-control" name="automaphostssuffixes" value="<?php echo htmlspecialchars($arrConfig['AutomapHostsSuffixes'], ENT_QUOTES); ?>" />
 | 
						
						
						
							|  |  | 						</div>
 | 
						
						
						
							|  |  | 					</div>
 | 
						
						
						
							|  |  | 					<div class="row">
 | 
						
						
						
							|  |  | 						<div class="form-group col-md-4">
 | 
						
						
						
							|  |  | 							<label for="code">AutomapHostsOnResolve</label>
 | 
						
						
						
							|  |  | 							<input type="text" class="form-control" name="automaphostsonresolve" value="<?php echo htmlspecialchars($arrConfig['AutomapHostsOnResolve'], ENT_QUOTES); ?>" />
 | 
						
						
						
							|  |  | 						</div>
 | 
						
						
						
							|  |  | 					</div>
 | 
						
						
						
							|  |  | 					<div class="row">
 | 
						
						
						
							|  |  | 						<div class="form-group col-md-4">
 | 
						
						
						
							|  |  | 							<label for="code">TransListenAddress</label>
 | 
						
						
						
							|  |  | 							<input type="text" class="form-control" name="translistenaddress" value="<?php echo htmlspecialchars($arrConfig['TransListenAddress'], ENT_QUOTES); ?>" />
 | 
						
						
						
							|  |  | 						</div>
 | 
						
						
						
							|  |  | 					</div>
 | 
						
						
						
							|  |  | 					<div class="row">
 | 
						
						
						
							|  |  | 						<div class="form-group col-md-4">
 | 
						
						
						
							|  |  | 							<label for="code">DNSPort</label>
 | 
						
						
						
							|  |  | 							<input type="text" class="form-control" name="dnsport" value="<?php echo htmlspecialchars($arrConfig['DNSPort'], ENT_QUOTES); ?>" />
 | 
						
						
						
							|  |  | 						</div>
 | 
						
						
						
							|  |  | 					</div>
 | 
						
						
						
							|  |  | 					<div class="row">
 | 
						
						
						
							|  |  | 						<div class="form-group col-md-4">
 | 
						
						
						
							|  |  | 							<label for="code">DNSListenAddress</label>
 | 
						
						
						
							|  |  | 							<input type="text" class="form-control" name="dnslistenaddress" value="<?php echo htmlspecialchars($arrConfig['DNSListenAddress'], ENT_QUOTES); ?>" />
 | 
						
						
						
							|  |  | 						</div>
 | 
						
						
						
							|  |  | 					</div>
 | 
						
						
						
							|  |  | 				</div>
 | 
						
						
						
							|  |  | 				<div class="tab-pane fade" id="relay">
 | 
						
						
						
							|  |  |             		<h4>Relay settings</h4>
 | 
						
						
						
							|  |  |             		<div class="row">
 | 
						
						
						
							|  |  | 						<div class="form-group col-md-4">
 | 
						
						
						
							|  |  | 							<label for="code">ORPort</label>
 | 
						
						
						
							|  |  | 							<input type="text" class="form-control" name="orport" value="<?php echo htmlspecialchars($arrConfig['ORPort'], ENT_QUOTES); ?>" />
 | 
						
						
						
							|  |  | 						</div>
 | 
						
						
						
							|  |  | 					</div>
 | 
						
						
						
							|  |  | 					<div class="row">
 | 
						
						
						
							|  |  | 						<div class="form-group col-md-4">
 | 
						
						
						
							|  |  | 							<label for="code">ORListenAddress</label>
 | 
						
						
						
							|  |  | 							<input type="text" class="form-control" name="orlistenaddress" value="<?php echo htmlspecialchars($arrConfig['ORListenAddress'], ENT_QUOTES); ?>" />
 | 
						
						
						
							|  |  | 						</div>
 | 
						
						
						
							|  |  | 					</div>
 | 
						
						
						
							|  |  | 					<div class="row">
 | 
						
						
						
							|  |  | 						<div class="form-group col-md-4">
 | 
						
						
						
							|  |  | 							<label for="code">Nickname</label>
 | 
						
						
						
							|  |  | 							<input type="text" class="form-control" name="nickname" value="<?php echo htmlspecialchars($arrConfig['Nickname'], ENT_QUOTES); ?>" />
 | 
						
						
						
							|  |  | 						</div>
 | 
						
						
						
							|  |  | 					</div>
 | 
						
						
						
							|  |  | 					<div class="row">
 | 
						
						
						
							|  |  | 						<div class="form-group col-md-4">
 | 
						
						
						
							|  |  | 							<label for="code">Address</label>
 | 
						
						
						
							|  |  | 							<input type="text" class="form-control" name="address" value="<?php echo htmlspecialchars($arrConfig['Address'], ENT_QUOTES); ?>" />
 | 
						
						
						
							|  |  | 						</div>
 | 
						
						
						
							|  |  | 					</div>
 | 
						
						
						
							|  |  | 					<div class="row">
 | 
						
						
						
							|  |  | 						<div class="form-group col-md-4">
 | 
						
						
						
							|  |  | 							<label for="code">RelayBandwidthRate</label>
 | 
						
						
						
							|  |  | 							<input type="text" class="form-control" name="relaybandwidthrate" value="<?php echo htmlspecialchars($arrConfig['RelayBandwidthRate'], ENT_QUOTES); ?>" />
 | 
						
						
						
							|  |  | 						</div>
 | 
						
						
						
							|  |  | 					</div>
 | 
						
						
						
							|  |  | 					<div class="row">
 | 
						
						
						
							|  |  | 						<div class="form-group col-md-4">
 | 
						
						
						
							|  |  | 							<label for="code">RelayBandwidthBurst</label>
 | 
						
						
						
							|  |  | 							<input type="text" class="form-control" name="relaybandwidthburst" value="<?php echo htmlspecialchars($arrConfig['RelayBandwidthBurst'], ENT_QUOTES); ?>" />
 | 
						
						
						
							|  |  | 						</div>
 | 
						
						
						
							|  |  | 					</div>
 | 
						
						
						
							|  |  | 				</div>
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  | 				<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;
 | 
						
						
						
							|  |  |                 }; ?>
 | 
						
						
						
							|  |  | 				</form>
 | 
						
						
						
							|  |  | 			</div><!-- /.tab-content -->
 | 
						
						
						
							|  |  | 		</div><!-- /.panel-body -->
 | 
						
						
						
							|  |  | 		<div class="panel-footer"> Information provided by tor</div>
 | 
						
						
						
							|  |  |     </div><!-- /.panel-primary -->
 | 
						
						
						
							|  |  | </div><!-- /.col-lg-12 -->
 | 
						
						
						
							|  |  | </div><!-- /.row -->
 | 
						
						
						
							|  |  | <?php
 | 
						
						
						
							|  |  | }
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  | /**
 | 
						
						
						
							|  |  | *
 | 
						
						
						
							|  |  | *
 | 
						
						
						
							|  |  | */
 | 
						
						
						
							|  |  | 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;
 | 
						
						
						
							|  |  |         }
 | 
						
						
						
							|  |  |         /* Lokinet script commands start HERE
 | 
						
						
						
							|  |  |         ////
 | 
						
						
						
							|  |  |         //// LOKINET
 | 
						
						
						
							|  |  |         ////
 | 
						
						
						
							|  |  |         //*/
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  |     //START
 | 
						
						
						
							|  |  |     } elseif (isset($_POST['StartDaemon'])) {
 | 
						
						
						
							|  |  |         exec('sudo /var/lib/lokinet/lokilaunch.sh start');
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  |     //STOP
 | 
						
						
						
							|  |  |     } elseif (isset($_POST['StopDaemon'])) {
 | 
						
						
						
							|  |  |         exec('sudo /var/lib/lokinet/lokilaunch.sh stop');
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  |     //START EXIT
 | 
						
						
						
							|  |  |     } 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."'");
 | 
						
						
						
							|  |  |         echo "<pre><strong>$output</strong></pre>";
 | 
						
						
						
							|  |  |         GLOBAL $existatus;
 | 
						
						
						
							|  |  |         $exitstatus = TRUE;
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  |     //STOP EXIT
 | 
						
						
						
							|  |  |     } elseif (isset($_POST['StopExit'])) {
 | 
						
						
						
							|  |  |         exec ('sudo /var/lib/lokinet/lokilaunch.sh exitdown');
 | 
						
						
						
							|  |  |         GLOBAL $exitstatus;
 | 
						
						
						
							|  |  |         $exitstatus = FALSE;
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  |     //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>";
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  |     //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>";
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  |     //APPLY LOKINET-BOOTSTRAP
 | 
						
						
						
							|  |  |     } elseif (isset($_POST['ApplyLokinetSettings'])) {
 | 
						
						
						
							|  |  |         ?>
 | 
						
						
						
							|  |  |     <div class="alert alert-danger">
 | 
						
						
						
							|  |  |     Stopping Lokinet background daemon process.
 | 
						
						
						
							|  |  |     </div>
 | 
						
						
						
							|  |  |     <div class="alert alert-success">
 | 
						
						
						
							|  |  |     Applying Bootstrap
 | 
						
						
						
							|  |  |     </div>
 | 
						
						
						
							|  |  |     <?php
 | 
						
						
						
							|  |  |     $bootstrap = $_POST['lokinetbootstrap'];
 | 
						
						
						
							|  |  |         $bootstrap=str_replace("'", "", $bootstrap);
 | 
						
						
						
							|  |  |         $output = preg_replace('#\\x1b[[][^A-Za-z]*[A-Za-z]#', '', $output);
 | 
						
						
						
							|  |  |         $output = shell_exec('sudo /var/lib/lokinet/lokilaunch.sh bootstrap '.$bootstrap.'');
 | 
						
						
						
							|  |  |         echo "<pre><strong>$output</strong></pre>";
 | 
						
						
						
							|  |  |     }
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  |     DisplayLokinetConfig();
 | 
						
						
						
							|  |  | }
 | 
						
						
						
							|  |  | ?>
 |