| # Set net.<iface>.dnsN properties that contain the |
| # DNS server addresses given by the DHCP server. |
| |
| if [[ $interface == p2p* ]] |
| then |
| intf=p2p |
| else |
| intf=$interface |
| fi |
| |
| set_dns_props() |
| { |
| case "${new_domain_name_servers}" in |
| "") return 0;; |
| esac |
| |
| count=1 |
| for i in 1 2 3 4; do |
| setprop dhcp.${intf}.dns${i} "" |
| done |
| |
| count=1 |
| for dnsaddr in ${new_domain_name_servers}; do |
| setprop dhcp.${intf}.dns${count} ${dnsaddr} |
| count=$(($count + 1)) |
| done |
| |
| separator=" " |
| if [ -z "$new_domain_name" ]; then |
| separator="" |
| else |
| if [ -z "$new_domain_search" ]; then |
| separator="" |
| fi |
| fi |
| setprop dhcp.${interface}.domain "${new_domain_name}$separator${new_domain_search}" |
| } |
| |
| unset_dns_props() |
| { |
| for i in 1 2 3 4; do |
| setprop dhcp.${intf}.dns${i} "" |
| done |
| |
| setprop dhcp.${interface}.domain "" |
| } |
| |
| case "${reason}" in |
| BOUND|INFORM|REBIND|REBOOT|RENEW|TIMEOUT) set_dns_props;; |
| EXPIRE|FAIL|IPV4LL|RELEASE|STOP) unset_dns_props;; |
| esac |