From 98d392d47351bd8169a8a353ee3dbb5ca9927f07 Mon Sep 17 00:00:00 2001 From: billz Date: Fri, 19 May 2023 12:18:25 +0100 Subject: [PATCH] Implements nohook wpa_supplicant flag --- ajax/networking/get_netcfg.php | 2 ++ app/js/custom.js | 6 ++++++ includes/dhcp.php | 11 +++++++---- locale/en_US/LC_MESSAGES/messages.mo | Bin 33331 -> 33981 bytes locale/en_US/LC_MESSAGES/messages.po | 9 +++++++++ templates/dhcp/general.php | 13 +++++++++++++ 6 files changed, 37 insertions(+), 4 deletions(-) diff --git a/ajax/networking/get_netcfg.php b/ajax/networking/get_netcfg.php index aa207e1e..aee8e702 100644 --- a/ajax/networking/get_netcfg.php +++ b/ajax/networking/get_netcfg.php @@ -46,6 +46,7 @@ if (isset($interface)) { preg_match('/static\sdomain_name_server=(.*)/', $matched[0], $static_dns); preg_match('/fallback\sstatic_'.$interface.'/', $matched[0], $fallback); preg_match('/(?:no)?gateway/', $matched[0], $gateway); + preg_match('/nohook\swpa_supplicant/', $matched[0], $nohook_wpa_supplicant); $dhcpdata['Metric'] = $metric[1]; $dhcpdata['StaticIP'] = strpos($static_ip[1],'/') ? substr($static_ip[1], 0, strpos($static_ip[1],'/')) : $static_ip[1]; $dhcpdata['SubnetMask'] = cidr2mask($static_ip[1]); @@ -53,6 +54,7 @@ if (isset($interface)) { $dhcpdata['StaticDNS'] = $static_dns[1]; $dhcpdata['FallbackEnabled'] = empty($fallback) ? false: true; $dhcpdata['DefaultRoute'] = $gateway[0] == "gateway"; + $dhcpdata['NoHookWPASupplicant'] = $nohook_wpa_supplicant[0] == "nohook wpa_supplicant"; echo json_encode($dhcpdata); } diff --git a/app/js/custom.js b/app/js/custom.js index 40e181bc..93e91c2a 100644 --- a/app/js/custom.js +++ b/app/js/custom.js @@ -216,6 +216,12 @@ function loadInterfaceDHCPSelect() { $('#txtgateway').val(jsonData.StaticRouters); $('#chkfallback')[0].checked = jsonData.FallbackEnabled; $('#default-route').prop('checked', jsonData.DefaultRoute); + if (strInterface.startsWith("wl")) { + $('#nohook-wpa-supplicant').parent().parent().parent().show() + $('#nohook-wpa-supplicant').prop('checked', jsonData.NoHookWPASupplicant); + } else { + $('#nohook-wpa-supplicant').parent().parent().parent().hide() + } $('#txtrangestart').val(jsonData.RangeStart); $('#txtrangeend').val(jsonData.RangeEnd); $('#txtrangeleasetime').val(jsonData.leaseTime); diff --git a/includes/dhcp.php b/includes/dhcp.php index 9165e8ae..40570bbb 100755 --- a/includes/dhcp.php +++ b/includes/dhcp.php @@ -253,24 +253,27 @@ function updateDHCPConfig($iface,$status) { $cfg[] = '# RaspAP '.$iface.' configuration'; $cfg[] = 'interface '.$iface; - if (isset($_POST['StaticIP'])) { + if (isset($_POST['StaticIP']) && $_POST['StaticIP'] !== '') { $mask = ($_POST['SubnetMask'] !== '' && $_POST['SubnetMask'] !== '0.0.0.0') ? '/'.mask2cidr($_POST['SubnetMask']) : null; $cfg[] = 'static ip_address='.$_POST['StaticIP'].$mask; } - if (isset($_POST['DefaultGateway'])) { - $cfg[] = 'static routers='.$_POST['DefaultGateway']; + if (isset($_POST['DefaultGateway']) && $_POST['DefaultGateway'] !== '') { + $cfg[] = 'static routers='.$_POST['DefaultGateway']; } if ($_POST['DNS1'] !== '' || $_POST['DNS2'] !== '') { $cfg[] = 'static domain_name_server='.$_POST['DNS1'].' '.$_POST['DNS2']; } if ($_POST['Metric'] !== '') { - $cfg[] = 'metric '.$_POST['Metric']; + $cfg[] = 'metric '.$_POST['Metric']; } if ($_POST['Fallback'] == 1) { $cfg[] = 'profile static_'.$iface; $cfg[] = 'fallback static_'.$iface; } $cfg[] = $_POST['DefaultRoute'] == '1' ? 'gateway' : 'nogateway'; + if (( substr($iface, 0, 2) === "wl") && $_POST['NoHookWPASupplicant'] == '1') { + $cfg[] = 'nohook wpa_supplicant'; + } $dhcp_cfg = file_get_contents(RASPI_DHCPCD_CONFIG); if (!preg_match('/^interface\s'.$iface.'$/m', $dhcp_cfg)) { $cfg[] = PHP_EOL; diff --git a/locale/en_US/LC_MESSAGES/messages.mo b/locale/en_US/LC_MESSAGES/messages.mo index a534b42432dd25fa3bcd2b8f6a5b8ec7a562fe82..2e8e16f37499d0b5e8239a62349d1bf251eee7cc 100644 GIT binary patch delta 9334 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 h<xEq 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 HKlT3wOcd_) diff --git a/locale/en_US/LC_MESSAGES/messages.po b/locale/en_US/LC_MESSAGES/messages.po index 2a4672c8..89eb0f97 100644 --- a/locale/en_US/LC_MESSAGES/messages.po +++ b/locale/en_US/LC_MESSAGES/messages.po @@ -464,6 +464,15 @@ msgstr "This option adds dhcp-host entries to the dnsmasq configura msgid "This toggles the gateway/nogateway option for this interface in the DHCPCD configuration." msgstr "This toggles the gateway/nogateway option for this interface in the DHCPCD configuration." +msgid "This toggles the nohook wpa_supplicant option for this interface in the DHCPCD configuration." +msgstr "This toggles the nohook wpa_supplicant option for this interface in the DHCPCD configuration." + +msgid "Disable wpa_supplicant dhcp hook for this interface" +msgstr "Disable wpa_supplicant dhcp hook for this interface" + +msgid "If you manage wireless connections with wpa_supplicant itself, the hook may create unwanted connection events. This option disables the hook." +msgstr "If you manage wireless connections with wpa_supplicant itself, the hook may create unwanted connection events. This option disables the hook." + #: includes/hostapd.php msgid "Basic" msgstr "Basic" diff --git a/templates/dhcp/general.php b/templates/dhcp/general.php index 47c802f5..5f257c02 100644 --- a/templates/dhcp/general.php +++ b/templates/dhcp/general.php @@ -67,6 +67,19 @@ +
+
+
+ + + +
+

+ nohook wpa_supplicant option for this interface in the DHCPCD configuration.") ?> +

+
+
+
DHCP options