Changeset 36943


Ignore:
Timestamp:
2013-06-17T13:55:30+02:00 (5 years ago)
Author:
jow
Message:

dnsmasq: use host-record instead of address

Using "--address" for individual host A records is broken, use "--host-record" instead.
The following patch changes dnsmasq.init to build individual host records using "--host-record" instead of "--address".

Signed-off-by: Adam Gensler <openwrt at gnslr.us>

[jow: shorter description, simplified shell script code]

Location:
trunk/package/network/services/dnsmasq
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/package/network/services/dnsmasq/Makefile

    r36655 r36943  
    1010PKG_NAME:=dnsmasq 
    1111PKG_VERSION:=2.66 
    12 PKG_RELEASE:=2 
     12PKG_RELEASE:=3 
    1313 
    1414PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz 
  • trunk/package/network/services/dnsmasq/files/dnsmasq.init

    r36655 r36943  
    7575 
    7676append_bogusnxdomain() { 
    77        xappend "--bogus-nxdomain=$1" 
     77    xappend "--bogus-nxdomain=$1" 
    7878} 
    7979 
     
    394394dhcp_domain_add() { 
    395395        local cfg="$1" 
    396         local ip name names 
     396        local ip name names record 
    397397 
    398398        config_get names "$cfg" name "$2" 
     
    402402        [ -n "$ip" ] || return 0 
    403403 
    404         local oIFS="$IFS"; IFS="."; set -- $ip; IFS="$oIFS" 
    405         local raddr="${4:+$4.$3.$2.$1.in-addr.arpa}" 
    406  
    407404        for name in $names; do 
    408                 local fqdn="$name" 
    409  
    410                 [ "${fqdn%.*}" == "$fqdn" ] && \ 
    411                         fqdn="$fqdn${DOMAIN:+.$DOMAIN}" 
    412  
    413                 xappend "--address=/$fqdn/$ip" 
    414  
    415                 [ -n "$raddr" ] && { 
    416                         xappend "--ptr-record=$raddr,$fqdn" 
    417                         raddr="" 
    418                 } 
     405                record="${record:+$record/}$name" 
    419406        done 
     407 
     408        xappend "--address=/$record/$ip" 
    420409} 
    421410 
     
    468457 
    469458        xappend "--cname=${cname},${target}" 
     459} 
     460 
     461dhcp_hostrecord_add() { 
     462        local cfg="$1" 
     463        local names addresses record val 
     464 
     465        config_get names "$cfg" name "$2" 
     466        if [ -z "$names" ]; then 
     467                return 0 
     468        fi 
     469 
     470        config_get addresses "$cfg" ip "$3" 
     471        if [ -z "$addresses" ]; then 
     472                return 0 
     473        fi 
     474 
     475        for val in $names $addresses; do 
     476                record="${record:+$record,}$val" 
     477        done 
     478 
     479        xappend "--host-record=$record" 
    470480} 
    471481 
     
    502512        config_foreach dhcp_subscrid_add subscrid 
    503513        config_foreach dhcp_domain_add domain 
     514        config_foreach dhcp_hostrecord_add hostrecord 
     515 
     516        # add own hostname 
     517        [ $ADD_LOCAL_HOSTNAME -eq 1 ] && [ -n "$lanaddr" ] && { 
     518                local hostname="$(uci_get system @system[0] hostname OpenWrt)" 
     519                dhcp_hostrecord_add "" "$hostname${DOMAIN:+.$DOMAIN $hostname}" "$lanaddr" 
     520        } 
     521 
    504522        echo >> $CONFIGFILE 
    505523        config_foreach dhcp_srv_add srvhost 
     
    510528        config_foreach dhcp_cname_add cname 
    511529        echo >> $CONFIGFILE 
    512  
    513         # add own hostname 
    514         [ $ADD_LOCAL_HOSTNAME -eq 1 ] && [ -n "$lanaddr" ] && { 
    515                 local hostname="$(uci_get system.@system[0].hostname)" 
    516                 dhcp_domain_add "" "${hostname:-OpenWrt}" "$lanaddr" 
    517         } 
    518530 
    519531        service_start /usr/sbin/dnsmasq -C $CONFIGFILE && { 
Note: See TracChangeset for help on using the changeset viewer.