dnsmasq: introduce "add_local_hostname" and "add_local_domain" options - add_local_domain defaults to 1 and controls whether the local domain is written as search directive to the local resolv.conf - add_local_hostname defaults to 1 and controls whether A and PTR records are created automatically for the local hostname These change supersedes http://patchwork.openwrt.org/patch/2207/ and http://patchwork.openwrt.org/patch/2208/

SVN-Revision: 32570
This commit is contained in:
Jo-Philipp Wich 2012-07-01 11:32:46 +00:00
parent c49f8068cd
commit faab751760

View file

@ -1,5 +1,5 @@
#!/bin/sh /etc/rc.common #!/bin/sh /etc/rc.common
# Copyright (C) 2007 OpenWrt.org # Copyright (C) 2007-2012 OpenWrt.org
START=60 START=60
@ -8,6 +8,9 @@ SERVICE_USE_PID=1
DNS_SERVERS="" DNS_SERVERS=""
DOMAIN="" DOMAIN=""
ADD_LOCAL_DOMAIN=1
ADD_LOCAL_HOSTNAME=1
CONFIGFILE="/var/etc/dnsmasq.conf" CONFIGFILE="/var/etc/dnsmasq.conf"
xappend() { xappend() {
@ -111,6 +114,9 @@ dnsmasq() {
config_get DOMAIN "$cfg" domain config_get DOMAIN "$cfg" domain
config_get_bool ADD_LOCAL_DOMAIN "$cfg" add_local_domain 1
config_get_bool ADD_LOCAL_HOSTNAME "$cfg" add_local_hostname 1
config_get_bool readethers "$cfg" readethers config_get_bool readethers "$cfg" readethers
[ "$readethers" = "1" -a \! -e "/etc/ethers" ] && touch /etc/ethers [ "$readethers" = "1" -a \! -e "/etc/ethers" ] && touch /etc/ethers
@ -490,14 +496,16 @@ start() {
echo >> $CONFIGFILE echo >> $CONFIGFILE
# add own hostname # add own hostname
[ -z "$lanaddr" ] || { [ $ADD_LOCAL_HOSTNAME -eq 1 ] && [ -n "$lanaddr" ] && {
local hostname="$(uci_get system.@system[0].hostname)" local hostname="$(uci_get system.@system[0].hostname)"
dhcp_domain_add "" "${hostname:-OpenWrt}" "$lanaddr" dhcp_domain_add "" "${hostname:-OpenWrt}" "$lanaddr"
} }
service_start /usr/sbin/dnsmasq -C $CONFIGFILE && { service_start /usr/sbin/dnsmasq -C $CONFIGFILE && {
rm -f /tmp/resolv.conf rm -f /tmp/resolv.conf
[ -n "$DOMAIN" ] && echo "search $DOMAIN" >> /tmp/resolv.conf [ $ADD_LOCAL_DOMAIN -eq 1 ] && [ -n "$DOMAIN" ] && {
echo "search $DOMAIN" >> /tmp/resolv.conf
}
DNS_SERVERS="$DNS_SERVERS 127.0.0.1" DNS_SERVERS="$DNS_SERVERS 127.0.0.1"
for DNS_SERVER in $DNS_SERVERS ; do for DNS_SERVER in $DNS_SERVERS ; do
echo "nameserver $DNS_SERVER" >> /tmp/resolv.conf echo "nameserver $DNS_SERVER" >> /tmp/resolv.conf