dnsmasq: add listen_address parameter

This patch adds a parser for the uci representation of
dnsmasq's "-a | --listen-address" option.

In summary, this option forces dnsmasq to listen on the
given IP address(es). Both interface and listen-address
options may be given, in which case the set of both
interfaces and addresses is used.

Note that if no interface option is given, but listen_address is,
dnsmasq will not automatically listen on the loopback interface.
To achieve this, the loopback IP addresses, 127.0.0.1 and/or ::1
must be explicitly added.

This option is useful for ujailed dnsmasq instances, that would
otherwise fail to work properly, because listening to the
"This host on this network" address (aka 0.0.0.0 see rfc1700 page 4)
may not be allowed.

Signed-off-by: Christian Lamparter <chunkeey@gmail.com>
Signed-off-by: Hans Dedecker <dedeckeh@gmail.com> (PKG_RELEASE increase)
master
Christian Lamparter 7 years ago committed by Hans Dedecker
parent 2cd32a3304
commit 7ffb707576
  1. 2
      package/network/services/dnsmasq/Makefile
  2. 5
      package/network/services/dnsmasq/files/dnsmasq.init

@ -9,7 +9,7 @@ include $(TOPDIR)/rules.mk
PKG_NAME:=dnsmasq PKG_NAME:=dnsmasq
PKG_VERSION:=2.78 PKG_VERSION:=2.78
PKG_RELEASE:=1 PKG_RELEASE:=2
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz
PKG_SOURCE_URL:=http://thekelleys.org.uk/dnsmasq/ PKG_SOURCE_URL:=http://thekelleys.org.uk/dnsmasq/

@ -142,6 +142,10 @@ append_interface() {
xappend "--interface=$ifname" xappend "--interface=$ifname"
} }
append_listenaddress() {
xappend "--listen-address=$1"
}
append_notinterface() { append_notinterface() {
network_get_device ifname "$1" || ifname="$1" network_get_device ifname "$1" || ifname="$1"
xappend "--except-interface=$ifname" xappend "--except-interface=$ifname"
@ -835,6 +839,7 @@ dnsmasq_start()
append_parm "$cfg" "maxport" "--max-port" append_parm "$cfg" "maxport" "--max-port"
append_parm "$cfg" "domain" "--domain" append_parm "$cfg" "domain" "--domain"
append_parm "$cfg" "local" "--server" append_parm "$cfg" "local" "--server"
config_list_foreach "$cfg" "listen_address" append_listenaddress
config_list_foreach "$cfg" "server" append_server config_list_foreach "$cfg" "server" append_server
config_list_foreach "$cfg" "rev_server" append_rev_server config_list_foreach "$cfg" "rev_server" append_rev_server
config_list_foreach "$cfg" "address" append_address config_list_foreach "$cfg" "address" append_address

Loading…
Cancel
Save