From: David Beitey <david@davidjb.com>
Date: Fri, 21 Dec 2018 02:51:56 +0000 (+0000)
Subject: luci-app-ddns: check existence of nslookup util rather than making DNS request
X-Git-Url: https://git.librecmc.org/?a=commitdiff_plain;h=cfe4ae16689fc842d043ce6beba1d4ebe3e5e7b3;p=oweals%2Fluci.git

luci-app-ddns: check existence of nslookup util rather than making DNS request

This saves a DNS request whenever the check is performed.  For systems with nameservers configured in `/etc/resolv.conf`, nslookup will sent a request to those servers (eg bypassing /etc/hosts), thus taking a lot more time than necessary.  For servers that are remote, this will take a *lot* longer than just checking if the nslookup util exists.

This change follows in the same vein as all the other checks and just using `which` without actually invoking the util's functionality.

Signed-off-by: David Beitey <david@davidjb.com>
---

diff --git a/applications/luci-app-ddns/luasrc/tools/ddns.lua b/applications/luci-app-ddns/luasrc/tools/ddns.lua
index 6f0c7f095..2b92e3e63 100755
--- a/applications/luci-app-ddns/luasrc/tools/ddns.lua
+++ b/applications/luci-app-ddns/luasrc/tools/ddns.lua
@@ -103,7 +103,7 @@ function env_info(type)
 		end
 
 		local function has_nslookup()
-			return (SYS.call( [[$(which nslookup) localhost 2>&1 | grep -qF "(null)"]] ) ~= 0)
+			return (SYS.call( [[which nslookup >/dev/null 2>&1]] ) == 0)
 		end
 
 		if type == "has_bindhost" then