diff --git a/src/opnsense/mvc/app/controllers/OPNsense/Dnsmasq/Api/SettingsController.php b/src/opnsense/mvc/app/controllers/OPNsense/Dnsmasq/Api/SettingsController.php index 998ab467e..a25019e69 100644 --- a/src/opnsense/mvc/app/controllers/OPNsense/Dnsmasq/Api/SettingsController.php +++ b/src/opnsense/mvc/app/controllers/OPNsense/Dnsmasq/Api/SettingsController.php @@ -29,12 +29,24 @@ namespace OPNsense\Dnsmasq\Api; use OPNsense\Base\ApiMutableModelControllerBase; +use OPNsense\Core\Config; class SettingsController extends ApiMutableModelControllerBase { protected static $internalModelName = 'dnsmasq'; protected static $internalModelClass = '\OPNsense\Dnsmasq\Dnsmasq'; + /** + * @inheritdoc + */ + public function getAction() + { + $data = parent::getAction(); + $data[self::$internalModelName]['dhcp']['this_domain'] = (string)Config::getInstance()->object()->system->domain; + + return $data; + } + /* hosts */ public function searchHostAction() { diff --git a/src/opnsense/mvc/app/controllers/OPNsense/Dnsmasq/forms/general.xml b/src/opnsense/mvc/app/controllers/OPNsense/Dnsmasq/forms/general.xml index cb699d15f..65d0c0c0f 100644 --- a/src/opnsense/mvc/app/controllers/OPNsense/Dnsmasq/forms/general.xml +++ b/src/opnsense/mvc/app/controllers/OPNsense/Dnsmasq/forms/general.xml @@ -125,6 +125,12 @@ checkbox In the default mode, we insert the unqualified names of DHCP clients into the DNS, in which case they have to be unique. Using this option the unqualified name is no longer put in the DNS, only the qualified name. + + dnsmasq.dhcp.domain + + text + To ensure that all names have a domain part, there must be a default domain specified when dhcp-fqdn is set. Leave empty to use the system domain. + dnsmasq.dhcp.lease_max diff --git a/src/opnsense/mvc/app/models/OPNsense/Dnsmasq/Dnsmasq.xml b/src/opnsense/mvc/app/models/OPNsense/Dnsmasq/Dnsmasq.xml index 2c735dff1..a5cbcb0ef 100644 --- a/src/opnsense/mvc/app/models/OPNsense/Dnsmasq/Dnsmasq.xml +++ b/src/opnsense/mvc/app/models/OPNsense/Dnsmasq/Dnsmasq.xml @@ -38,6 +38,10 @@ Y + + Y + N + 0 diff --git a/src/opnsense/mvc/app/views/OPNsense/Dnsmasq/settings.volt b/src/opnsense/mvc/app/views/OPNsense/Dnsmasq/settings.volt index 35825b1e8..ee209d9bc 100644 --- a/src/opnsense/mvc/app/views/OPNsense/Dnsmasq/settings.volt +++ b/src/opnsense/mvc/app/views/OPNsense/Dnsmasq/settings.volt @@ -28,6 +28,14 @@ $( document ).ready(function() { let data_get_map = {'frm_settings':"/api/dnsmasq/settings/get"}; mapDataToFormUI(data_get_map).done(function(data){ + try { + $("#dnsmasq\\.dhcp\\.domain").attr( + "placeholder", + data.frm_settings.dnsmasq.dhcp.this_domain + ); + } catch (e) { + null; + } formatTokenizersUI(); $('.selectpicker').selectpicker('refresh'); updateServiceControlUI('dnsmasq'); diff --git a/src/opnsense/service/templates/OPNsense/Dnsmasq/dnsmasq.conf b/src/opnsense/service/templates/OPNsense/Dnsmasq/dnsmasq.conf index b48ae6961..1d8e3cfb0 100644 --- a/src/opnsense/service/templates/OPNsense/Dnsmasq/dnsmasq.conf +++ b/src/opnsense/service/templates/OPNsense/Dnsmasq/dnsmasq.conf @@ -31,6 +31,7 @@ dhcp-lease-max={{dnsmasq.dhcp.lease_max}} {% if dnsmasq.dhcp.fqdn == '1' %} dhcp-fqdn +domain={{dnsmasq.dhcp.domain|default(system.domain)}} {% endif %} {% if dnsmasq.dhcp.authoritative == '1' %}