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.") ?> +

+
+ + +
+
+ " class="form-control"> +
+
+ " class="form-control"> +
+
+ +
+
+ +
-
- - -
+
- " class="form-control"> + " class="form-control" autofocus="autofocus">
- " class="form-control"> + " class="form-control">
- +
- -
-
-
-
- " class="form-control" autofocus="autofocus"> -
-
- " class="form-control"> -
-
- -
-
+
+
+ +
+ aria-describedby="dhcp-ignore-description"> + +
+

+ ignore any clients which are not specified in the static leases list.") ?> + dhcp-ignore to the dnsmasq configuration.") ?> +

+
+
+
- +
+