Changeset 21639


Ignore:
Timestamp:
2010-05-30T20:40:22+02:00 (7 years ago)
Author:
jow
Message:

[backfire] merge r21638

Location:
branches/backfire/package/base-files/files
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • branches/backfire/package/base-files/files/lib/network/config.sh

    r21598 r21639  
    7171        local cfg="$1"; shift 
    7272 
     73        remove_dns "$cfg" 
     74 
     75        # We may be called by pppd's ip-up which has a nonstandard umask set. 
     76        # Create an empty file here and force its permission to 0644, otherwise 
     77        # dnsmasq will not be able to re-read the resolv.conf.auto . 
     78        [ ! -f /tmp/resolv.conf.auto ] && { 
     79                touch /tmp/resolv.conf.auto 
     80                chmod 0644 /tmp/resolv.conf.auto 
     81        } 
     82 
    7383        local dns 
    7484        local add 
     
    8090        done 
    8191 
    82         uci_set_state network "$cfg" dns "$add" 
     92        [ -n "$cfg" ] && { 
     93                uci_set_state network "$cfg" dns "$add" 
     94                uci_set_state network "$cfg" resolv_dns "$add" 
     95        } 
    8396} 
    8497 
     
    87100        local cfg="$1" 
    88101 
    89         local dns 
    90         config_get dns "$cfg" dns 
    91         for dns in $dns; do 
    92                 sed -i -e "/^nameserver $dns$/d" /tmp/resolv.conf.auto 
    93         done 
    94  
    95         uci_revert_state network "$cfg" dns 
     102        [ -n "$cfg" ] && { 
     103                [ -f /tmp/resolv.conf.auto ] && { 
     104                        local dns=$(uci_get_state network "$cfg" resolv_dns) 
     105                        for dns in $dns; do 
     106                                sed -i -e "/^nameserver $dns$/d" /tmp/resolv.conf.auto 
     107                        done 
     108                } 
     109 
     110                uci_revert_state network "$cfg" dns 
     111                uci_revert_state network "$cfg" resolv_dns 
     112        } 
    96113} 
    97114 
     
    213230        [ -z "$gateway" ] || $DEBUG route add default gw "$gateway" dev "$iface" 
    214231        [ -z "$ip6gw" ] || $DEBUG route -A inet6 add default gw "$ip6gw" dev "$iface" 
    215         [ -z "$dns" ] || { 
    216                 for ns in $dns; do 
    217                         grep "$ns" /tmp/resolv.conf.auto 2>/dev/null >/dev/null || { 
    218                                 echo "nameserver $ns" >> /tmp/resolv.conf.auto 
    219                         } 
    220                 done 
    221         } 
     232        [ -z "$dns" ] || add_dns "$config" $dns 
    222233 
    223234        config_get type "$config" TYPE 
     
    364375        local config="$1" 
    365376 
    366         local iface 
     377        local ifname 
    367378        config_get ifname "$config" ifname 
    368379 
    369380        local lock="/var/lock/dhcp-${ifname}" 
    370381        [ -f "$lock" ] && lock -u "$lock" 
     382 
     383        remove_dns "$config" 
    371384 
    372385        local pidfile="/var/run/dhcp-${ifname}.pid" 
  • branches/backfire/package/base-files/files/sbin/ifdown

    r21564 r21639  
    4141[ "bridge" = "$iftype" ] && brctl delbr "$ifname" >/dev/null 2>/dev/null 
    4242 
     43# remove the interface's dns entries 
     44remove_dns "$cfg" 
     45 
    4346# remove the interface's network state 
    4447uci_revert_state network "$1" 
  • branches/backfire/package/base-files/files/usr/share/udhcpc/default.script

    r21592 r21639  
    140140 
    141141        # DNS 
    142         config_get old_dns "$ifc" dns 
     142        old_dns=$(uci_get_state network "$ifc" dns) 
     143        old_domain=$(uci_get_state network "$ifc" dnsdomain) 
    143144        user_dns=$(uci_get "network.$ifc.dns") 
    144145        [ -n "$user_dns" ] && dns="$user_dns" 
    145146 
    146         [ -n "$dns" ] && [ ! -s "${RESOLV_CONF}" -o "$dns" != "$old_dns" ] && { 
     147        [ -n "$dns" ] && [ "$dns" != "$old_dns" -o -n "$user_dns" ] && { 
    147148                echo "udhcpc: setting dns servers: $dns" 
    148                 echo -n > "${RESOLV_CONF}.tmp" 
    149                 for i in $dns ; do 
    150                         echo "nameserver $i" >> "${RESOLV_CONF}.tmp" 
    151                 done 
    152                 ${domain:+echo search $domain} >> "${RESOLV_CONF}.tmp" 
    153                 mv "${RESOLV_CONF}.tmp" "$RESOLV_CONF" 
    154  
    155                 change_state network "$ifc" dnsdomain "$domain" 
    156                 change_state network "$ifc" dns "$dns" 
     149                add_dns "$ifc" $dns 
     150 
     151                [ -n "$domain" ] && [ "$domain" != "$old_domain" ] && { 
     152                        echo "udhcpc: setting dns domain: $domain" 
     153                        sed -i -e "${old_domain:+/^search $old_domain$/d; }/^search $domain$/d" "${RESOLV_CONF}" 
     154                        echo "search $domain" >> "${RESOLV_CONF}" 
     155                        change_state network "$ifc" dnsdomain "$domain" 
     156                } 
    157157        } 
    158158 
Note: See TracChangeset for help on using the changeset viewer.