mirror of
https://github.com/RaspAP/raspap-webgui.git
synced 2024-11-25 09:00:25 +00:00
Created new branch off master to help troubleshoot with #132
This commit is contained in:
parent
85c0c29923
commit
f61cc31b20
5 changed files with 104 additions and 0 deletions
|
@ -1,4 +1,52 @@
|
|||
<?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;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
/**
|
||||
*
|
||||
|
|
|
@ -10,6 +10,8 @@ function DisplayHostAPDConfig(){
|
|||
|
||||
$status = new StatusMessages();
|
||||
|
||||
$arrHostapdConf = parse_ini_file('/etc/raspap/hostapd.ini');
|
||||
|
||||
$arrConfig = array();
|
||||
$arrChannel = array('a','b','g');
|
||||
$arrSecurity = array( 1 => 'WPA', 2 => 'WPA2',3=> 'WPA+WPA2');
|
||||
|
@ -74,6 +76,7 @@ function DisplayHostAPDConfig(){
|
|||
<li class="active"><a href="#basic" data-toggle="tab">Basic</a></li>
|
||||
<li><a href="#security" data-toggle="tab">Security</a></li>
|
||||
<li><a href="#advanced" data-toggle="tab">Advanced</a></li>
|
||||
<li><a href="#logoutput" data-toggle="tab">Logfile Output</a></li>
|
||||
</ul>
|
||||
|
||||
<!-- Tab panes -->
|
||||
|
@ -130,8 +133,28 @@ function DisplayHostAPDConfig(){
|
|||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="tab-pane fade" id="logoutput">
|
||||
<?php
|
||||
if($arrHostapdConf['LogEnable'] == 1) {
|
||||
$log = file_get_contents('/tmp/hostapd.log');
|
||||
echo 'Logfile contents:<br /><textarea class="logoutput">'.$log.'</textarea>';
|
||||
} else {
|
||||
echo "Logfile output not enabled";
|
||||
}
|
||||
?>
|
||||
</div>
|
||||
<div class="tab-pane fade" id="advanced">
|
||||
<h4>Advanced settings</h4>
|
||||
<div class="row">
|
||||
<div class="col-md-4">
|
||||
<div class="form-check">
|
||||
<label class="form-check-label">
|
||||
Enable Logging <?php $checked = ''; if($arrHostapdConf['LogEnable'] == 1) { $checked = 'checked'; } ?>
|
||||
<input id="logEnable" name ="logEnable" type="checkbox" class="form-check-input" value="1" <?php echo $checked; ?> />
|
||||
</label>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="form-group col-md-4">
|
||||
<label for="code">Country Code</label>
|
||||
|
@ -431,6 +454,28 @@ function SaveHostAPDConfig($wpa_array, $enc_types, $modes, $interfaces, $status)
|
|||
|
||||
$good_input = true;
|
||||
|
||||
// Check for Logging Checkbox
|
||||
$logEnable = 0;
|
||||
echo "SOMETHING ".$arrHostapdConf['LogEnable'];
|
||||
echo 'logenable set:'.$_POST['logEnable'];
|
||||
if($arrHostapdConf['LogEnable'] == 0) {
|
||||
if(isset($_POST['logEnable'])) {
|
||||
// Need code to enable logfile logging here
|
||||
$logEnable = 1;
|
||||
exec('sudo /etc/raspap/hostapd/enablelog.sh');
|
||||
} else {
|
||||
exec('sudo /etc/raspap/hostapd/disablelog.sh');
|
||||
}
|
||||
} else {
|
||||
if(isset($_POST['logEnable'])) {
|
||||
$logEnable = 1;
|
||||
exec('sudo /etc/raspap/hostapd/enablelog.sh');
|
||||
} else {
|
||||
exec('sudo /etc/raspap/hostapd/disablelog.sh');
|
||||
}
|
||||
}
|
||||
write_php_ini(["LogEnable" => $logEnable],'/etc/raspap/hostapd.ini');
|
||||
|
||||
// Verify input
|
||||
if (strlen($_POST['ssid']) == 0 || strlen($_POST['ssid']) > 32) {
|
||||
// Not sure of all the restrictions of SSID
|
||||
|
|
|
@ -97,6 +97,12 @@ function create_raspap_directories() {
|
|||
sudo chown -R $raspap_user:$raspap_user "$raspap_dir" || install_error "Unable to change file ownership for '$raspap_dir'"
|
||||
}
|
||||
|
||||
# Generate logging enable/disable files for hostapd
|
||||
function create_logging_scripts() {
|
||||
sudo mkdir /etc/raspap/hostapd
|
||||
sudo mv /var/www/html/installers/*log.sh /etc/rasp/hostapd
|
||||
}
|
||||
|
||||
# Fetches latest files from github to webroot
|
||||
function download_latest_files() {
|
||||
if [ -d "$webroot_dir" ]; then
|
||||
|
|
3
installers/disablelog.sh
Executable file
3
installers/disablelog.sh
Executable file
|
@ -0,0 +1,3 @@
|
|||
#!/bin/bash
|
||||
/bin/sed -i 's|DAEMON_OPTS=" -f /tmp/hostapd.log"|#DAEMON_OPTS=""|' /etc/default/hostapd
|
||||
|
2
installers/enablelog.sh
Executable file
2
installers/enablelog.sh
Executable file
|
@ -0,0 +1,2 @@
|
|||
#!/bin/bash
|
||||
/bin/sed -i 's|#DAEMON_OPTS=""|DAEMON_OPTS=" -f /tmp/hostapd.log"|' /etc/default/hostapd
|
Loading…
Reference in a new issue