From 44858952740e4c668fb9ff0b0bbb037b13fba7d3 Mon Sep 17 00:00:00 2001 From: Franco Fichtner Date: Fri, 8 Apr 2022 14:22:22 +0200 Subject: [PATCH] dhcp: allow custom configuration from directories; closes #5313 --- plist | 2 ++ src/etc/dhcpd.opnsense.d/README | 1 + src/etc/dhcpd6.opnsense.d/README | 1 + src/etc/inc/plugins.inc.d/dhcpd.inc | 8 ++++++++ 4 files changed, 12 insertions(+) create mode 100644 src/etc/dhcpd.opnsense.d/README create mode 100644 src/etc/dhcpd6.opnsense.d/README diff --git a/plist b/plist index 98170dc58..5938bff15 100644 --- a/plist +++ b/plist @@ -6,6 +6,8 @@ /usr/local/etc/dh-parameters.2048.rfc7919 /usr/local/etc/dh-parameters.3072.rfc7919 /usr/local/etc/dh-parameters.4096.rfc7919 +/usr/local/etc/dhcpd.opnsense.d/README +/usr/local/etc/dhcpd6.opnsense.d/README /usr/local/etc/dnsmasq.conf.d/README /usr/local/etc/inc/IPv6.inc /usr/local/etc/inc/XMLRPC_Client.inc diff --git a/src/etc/dhcpd.opnsense.d/README b/src/etc/dhcpd.opnsense.d/README new file mode 100644 index 000000000..236e6b01b --- /dev/null +++ b/src/etc/dhcpd.opnsense.d/README @@ -0,0 +1 @@ +OPNsense: automatically included dhcpd.conf files for IPv4. diff --git a/src/etc/dhcpd6.opnsense.d/README b/src/etc/dhcpd6.opnsense.d/README new file mode 100644 index 000000000..1bf81ac22 --- /dev/null +++ b/src/etc/dhcpd6.opnsense.d/README @@ -0,0 +1 @@ +OPNsense: automatically included dhcpd.conf files for IPv6. diff --git a/src/etc/inc/plugins.inc.d/dhcpd.inc b/src/etc/inc/plugins.inc.d/dhcpd.inc index 01b96ddb4..e15e01da0 100644 --- a/src/etc/inc/plugins.inc.d/dhcpd.inc +++ b/src/etc/inc/plugins.inc.d/dhcpd.inc @@ -1251,6 +1251,10 @@ EOD; $dhcpdconf .= dhcpd_zones($ddns_zones); } + foreach (glob('/usr/local/etc/dhcpd.opnsense.d/*.conf') as $file) { + $dhcpdconf .= "\n\n# including custom file {$file}\n" . file_get_contents($file); + } + @file_put_contents('/var/dhcpd/etc/dhcpd.conf', $dhcpdconf); @touch('/var/dhcpd/var/db/dhcpd.leases'); @unlink('/var/dhcpd/var/run/dhcpd.pid'); @@ -1672,6 +1676,10 @@ EOD; $dhcpdv6conf .= "\nddns-update-style none;\n"; } + foreach (glob('/usr/local/etc/dhcpd6.opnsense.d/*.conf') as $file) { + $dhcpdv6conf .= "\n\n# including custom file {$file}\n" . file_get_contents($file); + } + @file_put_contents('/var/dhcpd/etc/dhcpdv6.conf', $dhcpdv6conf); @touch('/var/dhcpd/var/db/dhcpd6.leases'); @unlink('/var/dhcpd/var/run/dhcpdv6.pid');