[source] dnsmasq: add dhcp-script hook conditionally

LEDE Commits lede-commits at lists.infradead.org
Fri Jun 9 07:44:25 PDT 2017


dedeckeh pushed a commit to source.git, branch master:
https://git.lede-project.org/8b486ec2b52056b737a4ce64a2040a9a27a6bd60

commit 8b486ec2b52056b737a4ce64a2040a9a27a6bd60
Author: Hans Dedecker <dedeckeh at gmail.com>
AuthorDate: Fri Jun 9 16:24:12 2017 +0200

    dnsmasq: add dhcp-script hook conditionally
    
    Commit b32689afd6a661339861086c669e15c936293cf8 added support for dhcp-script hook.
    Adding dhcp-script config option results into two instances of dnsmasq being run
    which triggered oom issues on platforms having low memory.
    
    The dnsmasq dhcp-script config option will now only be added if at least one of the
    dhcp, tftp, neigh hotplug dirs has a regular hotplug file or if the dhcpscript uci
    config option is specified.
    
    Signed-off-by: Hans Dedecker <dedeckeh at gmail.com>
---
 package/network/services/dnsmasq/Makefile           |  2 +-
 package/network/services/dnsmasq/files/dnsmasq.init | 14 +++++++++++++-
 2 files changed, 14 insertions(+), 2 deletions(-)

diff --git a/package/network/services/dnsmasq/Makefile b/package/network/services/dnsmasq/Makefile
index 307b4de..5b1073f 100644
--- a/package/network/services/dnsmasq/Makefile
+++ b/package/network/services/dnsmasq/Makefile
@@ -9,7 +9,7 @@ include $(TOPDIR)/rules.mk
 
 PKG_NAME:=dnsmasq
 PKG_VERSION:=2.77
-PKG_RELEASE:=1
+PKG_RELEASE:=2
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz
 PKG_SOURCE_URL:=http://thekelleys.org.uk/dnsmasq/
diff --git a/package/network/services/dnsmasq/files/dnsmasq.init b/package/network/services/dnsmasq/files/dnsmasq.init
index 62a3169..2d05b77 100644
--- a/package/network/services/dnsmasq/files/dnsmasq.init
+++ b/package/network/services/dnsmasq/files/dnsmasq.init
@@ -89,6 +89,16 @@ log_once() {
 		logger -t dnsmasq "$@"
 }
 
+has_handler() {
+	local file
+
+	for file in /etc/hotplug.d/dhcp/* /etc/hotplug.d/tftp/* /etc/hotplug.d/neigh/*; do
+		[ -f "$file" ] && return 0
+	done
+
+	return 1
+}
+
 append_bool() {
 	local section="$1"
 	local option="$2"
@@ -832,8 +842,10 @@ dnsmasq_start()
 	config_get_bool readethers "$cfg" readethers
 	[ "$readethers" = "1" -a \! -e "/etc/ethers" ] && touch /etc/ethers
 
-	xappend "--dhcp-script=$DHCPSCRIPT"
 	config_get user_dhcpscript $cfg dhcpscript
+	if has_handler || [ -n "$user_dhcpscript" ]; then
+		xappend "--dhcp-script=$DHCPSCRIPT"
+	fi
 
 	config_get leasefile $cfg leasefile "/tmp/dhcp.leases"
 	[ -n "$leasefile" -a \! -e "$leasefile" ] && touch "$leasefile"



More information about the lede-commits mailing list