Merge pull request #5 from RaspAP/feature/dhcp-ignore

Limit network access to static clients
This commit is contained in:
Bill Zimmerman
2021-02-23 07:31:12 +01:00
committed by GitHub
3 changed files with 82 additions and 37 deletions

View File

@@ -45,12 +45,15 @@ function DisplayDHCPConfig()
}
}
getWifiInterface();
$ap_iface = $_SESSION['ap_interface'];
$serviceStatus = $dnsmasq_state ? "up" : "down";
exec('cat '. RASPI_DNSMASQ_PREFIX.'raspap.conf', $return);
$conf = ParseConfig($return);
exec('cat '. RASPI_DNSMASQ_PREFIX.$ap_iface.'.conf', $return);
$conf = array_merge(ParseConfig($return));
$hosts = (array)$conf['dhcp-host'];
exec("ip -o link show | awk -F': ' '{print $2}'", $interfaces);
exec('cat ' . RASPI_DNSMASQ_LEASES, $leases);
$ap_iface = $_SESSION['ap_interface'];
echo renderTemplate(
"dhcp", compact(
@@ -59,7 +62,7 @@ function DisplayDHCPConfig()
"dnsmasq_state",
"ap_iface",
"conf",
"dhcpHost",
"hosts",
"interfaces",
"leases"
)
@@ -172,7 +175,7 @@ function updateDnsmasqConfig($iface,$status)
$mac = trim($_POST["static_leases"]["mac"][$i]);
$ip = trim($_POST["static_leases"]["ip"][$i]);
if ($mac != "" && $ip != "") {
$config .= "dhcp-host=$mac,$ip".PHP_EOL;
$config .= "dhcp-host=$mac,$ip".",set:known".PHP_EOL;
}
}
if ($_POST['no-resolv'] == "1") {
@@ -188,6 +191,9 @@ function updateDnsmasqConfig($iface,$status)
}
$config .= PHP_EOL;
}
if ($_POST['dhcp-ignore'] == "1") {
$config .= 'dhcp-ignore=tag:!known'.PHP_EOL;
}
file_put_contents("/tmp/dnsmasqdata", $config);
$msg = file_exists(RASPI_DNSMASQ_PREFIX.$iface.'.conf') ? 'updated' : 'added';
system('sudo cp /tmp/dnsmasqdata '.RASPI_DNSMASQ_PREFIX.$iface.'.conf', $result);