Last commit for dhclient-adsuck: c14f3e8fa2f5527c7f91ee66124290d1a8a2cd9e

fix for a longstanding issue

Todd T. Fries [2012-01-09 20:37:03]
fix for a longstanding issue
- we tested for nameserver ips and domain name
- only proceeded if the domain name existed
- only needed the nameserver ips
- if a dhcp server did not present a domain name, we never updated adsuck

therefore, proceed when we get nameserver ips unconditionally!
#!/bin/sh

# Copyright (c) 2011 Todd T. Fries <todd@fries.net>
#
# Permission to use, copy, modify, and distribute this software for any
# purpose with or without fee is hereby granted, provided that the above
# copyright notice and this permission notice appear in all copies.
#
# THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
# WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
# MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
# ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
# WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
# ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
# OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.

. /etc/rc.conf

if [ "X$new_domain_name_servers" = "X" ]; then
	unset new_domain_name_servers
	unset new_domain_name
	exec /sbin/dhclient-script "$@"
fi

if [ "$adsuck_flags" != "NO" -a -x /usr/local/sbin/adsuck ]; then
	adsuck_resconf="/var/adsuck/files/resolv.conf"

	{
		egrep -v "search|nameserver" $adsuck_resconf
		for search in $new_domain_name; do
			echo "search $search"
		done

		for nameserver in $new_domain_name_servers; do
			echo "nameserver $nameserver"
		done
	} > ${adsuck_resconf}.tmp
	mv ${adsuck_resconf}.tmp $adsuck_resconf
	cat $adsuck_resconf
	if pgrep adsuck > /dev/null; then
		pkill -HUP adsuck
	else
		/usr/local/sbin/adsuck $adsuck_flags
	fi
	unset new_domain_name_servers
	unset new_domain_name
fi

exec /sbin/dhclient-script "$@"
ViewGit