diff --git a/includes/dhcp.php b/includes/dhcp.php
index 0ebf641b..d4f981ed 100755
--- a/includes/dhcp.php
+++ b/includes/dhcp.php
@@ -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);
diff --git a/locale/en_US/LC_MESSAGES/messages.po b/locale/en_US/LC_MESSAGES/messages.po
index dcd715ae..26677ce7 100644
--- a/locale/en_US/LC_MESSAGES/messages.po
+++ b/locale/en_US/LC_MESSAGES/messages.po
@@ -362,6 +362,24 @@ msgstr "Log DHCP requests"
msgid "Log DNS queries"
msgstr "Log DNS queries"
+msgid "Restrict access"
+msgstr "Restrict access"
+
+msgid "Limit network access to static clients"
+msgstr "Limit network access to static clients"
+
+msgid "Enable this option if you want RaspAP to ignore any clients which are not specified in the static leases list."
+msgstr "Enable this option if you want RaspAP to ignore any clients which are not specified in the static leases list."
+
+msgid "This option adds dhcp-ignore
to the dnsmasq configuration."
+msgstr "This option adds dhcp-ignore
to the dnsmasq configuration."
+
+msgid "Clients with a particular hardware MAC address can always be allocated the same IP address."
+msgstr "Clients with a particular hardware MAC address can always be allocated the same IP address."
+
+msgid "This option adds dhcp-host
entries to the dnsmasq configuration."
+msgstr "This option adds dhcp-host
entries to the dnsmasq configuration."
+
#: includes/hostapd.php
msgid "Basic"
msgstr "Basic"
diff --git a/templates/dhcp/static_leases.php b/templates/dhcp/static_leases.php
index 3b804270..aaa8cb12 100644
--- a/templates/dhcp/static_leases.php
+++ b/templates/dhcp/static_leases.php
@@ -1,48 +1,69 @@
+ + dhcp-host entries to the dnsmasq configuration.") ?> +
++ ignore any clients which are not specified in the static leases list.") ?> + dhcp-ignore to the dnsmasq configuration.") ?> +
+