dnsmasq: always inform about disabled dhcp service
authorPetr Štetiar <ynezz@true.cz>
Tue, 28 Apr 2020 15:00:58 +0000 (17:00 +0200)
committerPetr Štetiar <ynezz@true.cz>
Wed, 29 Apr 2020 22:52:04 +0000 (00:52 +0200)
Init script checks for an already active DHCP server on the interface
and if such DHCP server is found, then it logs "refusing to start DHCP"
message, starts dnsmasq without DHCP service unless `option force 1` is
set and caches the DHCP server check result.

Each consecutive service start then uses this cached DHCP server check
result, but doesn't provide log feedback about disabled DHCP service
anymore.

So this patch ensures, that the log message about disabled DHCP service
on particular interface is always provided.

Acked-by: Hans Dedecker <dedeckeh@gmail.com>
Signed-off-by: Petr Štetiar <ynezz@true.cz>
package/network/services/dnsmasq/files/dnsmasq.init

index 1051087..9288971 100644 (file)
@@ -110,11 +110,6 @@ dhcp_check() {
 
        udhcpc -n -q -s /bin/true -t 1 -i "$ifname" >&- && rv=1 || rv=0
 
 
        udhcpc -n -q -s /bin/true -t 1 -i "$ifname" >&- && rv=1 || rv=0
 
-       [ $rv -eq 1 ] && \
-               logger -t dnsmasq \
-                       "found already running DHCP-server on interface '$ifname'" \
-                       "refusing to start, use 'option force 1' to override"
-
        echo $rv > "$stamp"
        return $rv
 }
        echo $rv > "$stamp"
        return $rv
 }
@@ -517,7 +512,12 @@ dhcp_add() {
 
        #check for an already active dhcp server on the interface, unless 'force' is set
        config_get_bool force "$cfg" force 0
 
        #check for an already active dhcp server on the interface, unless 'force' is set
        config_get_bool force "$cfg" force 0
-       [ $force -gt 0 ] || dhcp_check "$ifname" || return 0
+       [ $force -gt 0 ] || dhcp_check "$ifname" || {
+               logger -t dnsmasq \
+                       "found already running DHCP-server on interface '$ifname'" \
+                       "refusing to start, use 'option force 1' to override"
+               return 0
+       }
 
        config_get start "$cfg" start 100
        config_get limit "$cfg" limit 150
 
        config_get start "$cfg" start 100
        config_get limit "$cfg" limit 150