Fix php warnings + general code cleanup

This commit is contained in:
billz 2023-09-03 09:47:51 +02:00
parent 5457855aa1
commit 55c0a49911
4 changed files with 42 additions and 26 deletions

View File

@ -75,8 +75,11 @@ function DisplayAdBlockConfig()
$dnsmasq_state = ($dnsmasq[0] > 0); $dnsmasq_state = ($dnsmasq[0] > 0);
$serviceStatus = $dnsmasq_state && $enabled ? "up" : "down"; $serviceStatus = $dnsmasq_state && $enabled ? "up" : "down";
$adblock_custom_content = file_get_contents(RASPI_ADBLOCK_LISTPATH .'custom.txt'); if (file_exists(RASPI_ADBLOCK_LISTPATH .'custom.txt')) {
$adblock_custom_content = file_get_contents(RASPI_ADBLOCK_LISTPATH .'custom.txt');
} else {
$adblock_custom_content = '';
}
$adblock_log = ''; $adblock_log = '';
exec('sudo chmod o+r '.RASPI_DHCPCD_LOG); exec('sudo chmod o+r '.RASPI_DHCPCD_LOG);
$handle = fopen(RASPI_DHCPCD_LOG, "r"); $handle = fopen(RASPI_DHCPCD_LOG, "r");

View File

@ -58,7 +58,7 @@ function cidr2mask($cidr)
$ipLong = ip2long($ip); $ipLong = ip2long($ip);
$netmaskLong = bindec(str_pad(str_repeat('1', $prefixLength), 32, '0')); $netmaskLong = bindec(str_pad(str_repeat('1', $prefixLength), 32, '0'));
$netmask = long2ip($netmaskLong); $netmask = long2ip(intval($netmaskLong));
return $netmask; return $netmask;
} }
@ -430,8 +430,9 @@ function ParseConfig($arrConfig)
continue; continue;
} }
list($option, $value) = array_map("trim", explode("=", $line, 2)); if (strpos($line, "=") !== false) {
list($option, $value) = array_map("trim", explode("=", $line, 2));
}
if (empty($config[$option])) { if (empty($config[$option])) {
$config[$option] = $value ?: true; $config[$option] = $value ?: true;
} else { } else {

View File

@ -40,22 +40,25 @@ function DisplayHostAPDConfig()
exec($cmd, $txpower); exec($cmd, $txpower);
$txpower = intval($txpower[0]); $txpower = intval($txpower[0]);
if (isset($_POST['interface'])) {
$interface = escapeshellarg($_POST['interface']);
}
if (!RASPI_MONITOR_ENABLED) { if (!RASPI_MONITOR_ENABLED) {
if (isset($_POST['SaveHostAPDSettings'])) { if (isset($_POST['SaveHostAPDSettings'])) {
SaveHostAPDConfig($arrSecurity, $arrEncType, $arr80211Standard, $interfaces, $status); SaveHostAPDConfig($arrSecurity, $arrEncType, $arr80211Standard, $interfaces, $status);
} }
} }
$arrHostapdConf = parse_ini_file('/etc/raspap/hostapd.ini'); $arrHostapdConf = parse_ini_file(RASPI_CONFIG.'/hostapd.ini');
if (!RASPI_MONITOR_ENABLED) { if (!RASPI_MONITOR_ENABLED) {
if (isset($_POST['StartHotspot']) || isset($_POST['RestartHotspot'])) { if (isset($_POST['StartHotspot']) || isset($_POST['RestartHotspot'])) {
$status->addMessage('Attempting to start hotspot', 'info'); $status->addMessage('Attempting to start hotspot', 'info');
if ($arrHostapdConf['BridgedEnable'] == 1) { if ($arrHostapdConf['BridgedEnable'] == 1) {
exec('sudo /etc/raspap/hostapd/servicestart.sh --interface br0 --seconds 3', $return); exec('sudo '.RASPI_CONFIG.'/hostapd/servicestart.sh --interface br0 --seconds 3', $return);
} elseif ($arrHostapdConf['WifiAPEnable'] == 1) { } elseif ($arrHostapdConf['WifiAPEnable'] == 1) {
exec('sudo /etc/raspap/hostapd/servicestart.sh --interface uap0 --seconds 3', $return); exec('sudo '.RASPI_CONFIG.'/hostapd/servicestart.sh --interface uap0 --seconds 3', $return);
} else { } else {
exec('sudo /etc/raspap/hostapd/servicestart.sh --seconds 3', $return); exec('sudo '.RASPI_CONFIG.'/hostapd/servicestart.sh --seconds 3', $return);
} }
foreach ($return as $line) { foreach ($return as $line) {
$status->addMessage($line, 'info'); $status->addMessage($line, 'info');
@ -69,9 +72,11 @@ function DisplayHostAPDConfig()
} }
} }
exec('cat '. RASPI_HOSTAPD_CONFIG, $hostapdconfig); exec('cat '. RASPI_HOSTAPD_CONFIG, $hostapdconfig);
exec('iwgetid '. escapeshellarg($_POST['interface']). ' -r', $wifiNetworkID); if (isset($interface)) {
if (!empty($wifiNetworkID[0])) { exec('iwgetid '. $interface. ' -r', $wifiNetworkID);
$managedModeEnabled = true; if (!empty($wifiNetworkID[0])) {
$managedModeEnabled = true;
}
} }
$hostapdstatus = $system->hostapdStatus(); $hostapdstatus = $system->hostapdStatus();
$serviceStatus = $hostapdstatus[0] == 0 ? "down" : "up"; $serviceStatus = $hostapdstatus[0] == 0 ? "down" : "up";
@ -98,16 +103,18 @@ function DisplayHostAPDConfig()
$arrConfig['country_code'] = $country_code[0]; $arrConfig['country_code'] = $country_code[0];
} }
// set txpower with iw if value is non-default ('auto') // set txpower with iw if value is non-default ('auto')
if (isset($_POST['txpower']) && ($_POST['txpower'] != 'auto')) { if (isset($_POST['txpower'])) {
$txpower = intval($_POST['txpower']); if ($_POST['txpower'] != 'auto') {
$sdBm = $txpower * 100; $txpower = intval($_POST['txpower']);
exec('sudo /sbin/iw dev '.escapeshellarg($_POST['interface']).' set txpower fixed '.$sdBm, $return); $sdBm = $txpower * 100;
$status->addMessage('Setting transmit power to '.$_POST['txpower'].' dBm.', 'success'); exec('sudo /sbin/iw dev '.$interface.' set txpower fixed '.$sdBm, $return);
$txpower = $_POST['txpower']; $status->addMessage('Setting transmit power to '.$_POST['txpower'].' dBm.', 'success');
} elseif ($_POST['txpower'] == 'auto') { $txpower = $_POST['txpower'];
exec('sudo /sbin/iw dev '.escapeshellarg($_POST['interface']).' set txpower auto', $return); } elseif ($_POST['txpower'] == 'auto') {
$status->addMessage('Setting transmit power to '.$_POST['txpower'].'.', 'success'); exec('sudo /sbin/iw dev '.$interface.' set txpower auto', $return);
$txpower = $_POST['txpower']; $status->addMessage('Setting transmit power to '.$_POST['txpower'].'.', 'success');
$txpower = $_POST['txpower'];
}
} }
$countries_5Ghz_max48ch = RASPI_5GHZ_ISO_ALPHA2; $countries_5Ghz_max48ch = RASPI_5GHZ_ISO_ALPHA2;
@ -132,6 +139,8 @@ function DisplayHostAPDConfig()
if ($selectedHwMode === $hwModeDisabled) { if ($selectedHwMode === $hwModeDisabled) {
unset($selectedHwMode); unset($selectedHwMode);
} }
} else {
$hwModeDisabled = null;
} }
echo renderTemplate( echo renderTemplate(
@ -168,13 +177,16 @@ function DisplayHostAPDConfig()
*/ */
function SaveHostAPDConfig($wpa_array, $enc_types, $modes, $interfaces, $status) function SaveHostAPDConfig($wpa_array, $enc_types, $modes, $interfaces, $status)
{ {
// It should not be possible to send bad data for these fields so clearly // It should not be possible to send bad data for these fields.
// someone is up to something if they fail. Fail silently. // If wpa fields are absent, return false and log securely.
if (!(array_key_exists($_POST['wpa'], $wpa_array) if (!(array_key_exists($_POST['wpa'], $wpa_array)
&& array_key_exists($_POST['wpa_pairwise'], $enc_types) && array_key_exists($_POST['wpa_pairwise'], $enc_types)
&& array_key_exists($_POST['hw_mode'], $modes)) && array_key_exists($_POST['hw_mode'], $modes))
) { ) {
error_log("Attempting to set hostapd config with wpa='".$_POST['wpa']."', wpa_pairwise='".$_POST['wpa_pairwise']."' and hw_mode='".$_POST['hw_mode']."'"); // FIXME: log injection $err = "Attempting to set hostapd config with wpa='".escapeshellarg($_POST['wpa']);
$err .= "', wpa_pairwise='".$escapeshellarg(_POST['wpa_pairwise']);
$err .= "and hw_mode='".$escapeshellarg(_POST['hw_mode'])."'";
error_log($err);
return false; return false;
} }
// Validate input // Validate input

View File

@ -64,7 +64,7 @@ function DisplayOpenVPNConfig()
ftruncate($f, 0); ftruncate($f, 0);
fclose($f); fclose($f);
} }
} elseif (isset($_POST['log-openvpn']) || filesize('/tmp/openvpn.log') >0) { } elseif (isset($_POST['log-openvpn']) || file_exists('/tmp/openvpn.log')) {
$logEnable = 1; $logEnable = 1;
exec("sudo /etc/raspap/openvpn/openvpnlog.sh", $logOutput); exec("sudo /etc/raspap/openvpn/openvpnlog.sh", $logOutput);
$logOutput = file_get_contents('/tmp/openvpn.log'); $logOutput = file_get_contents('/tmp/openvpn.log');