Commit 0c229f70 authored by Peter Korsgaard's avatar Peter Korsgaard
Browse files

busybox: use a single udhcpc script, with or without avahi-autoipd



We're currently using two different udhcpc scripts, one in the busybox
package and another in the avahi one, which calls avahi-autoipd on
dhcp failures.

The avahi one actually only does something differently from the default
if avahi-autoipd is available, so let's just always use this one instead
of the complicated logic about writing the file if not present /
overwriting it afterwards.

Signed-off-by: default avatarPeter Korsgaard <jacmet@sunsite.dk>
parent dc6d9070
Loading
Loading
Loading
Loading
+0 −2
Original line number Diff line number Diff line
@@ -147,8 +147,6 @@ endef
AVAHI_POST_INSTALL_TARGET_HOOKS += AVAHI_REMOVE_INITSCRIPT

define AVAHI_INSTALL_AUTOIPD
	rm -rf $(TARGET_DIR)/etc/dhcp3/
	$(INSTALL) -D -m 0755 package/avahi/busybox-udhcpc-default.script $(TARGET_DIR)/usr/share/udhcpc/default.script
	$(INSTALL) -m 0755 package/avahi/S05avahi-setup.sh $(TARGET_DIR)/etc/init.d/
	rm -f $(TARGET_DIR)/var/lib/avahi-autoipd
	$(INSTALL) -d -m 0755 $(TARGET_DIR)/var/lib
+0 −58
Original line number Diff line number Diff line
#!/bin/sh

# udhcpc script edited by Tim Riker <Tim@Rikers.org>

[ -z "$1" ] && echo "Error: should be called from udhcpc" && exit 1

RESOLV_CONF="/etc/resolv.conf"
[ -n "$broadcast" ] && BROADCAST="broadcast $broadcast"
[ -n "$subnet" ] && NETMASK="netmask $subnet"

case "$1" in
	deconfig)
		grep -q -v ip= /proc/cmdline
		if [ $? -eq 0 ]; then
			/sbin/ifconfig $interface up
		fi
		grep -q -v nfsroot= /proc/cmdline
		if [ $? -eq 0 ]; then
			/sbin/ifconfig $interface 0.0.0.0
		fi
		if [ -x /usr/sbin/avahi-autoipd ]; then
			/usr/sbin/avahi-autoipd -k $interface
		fi
		;;

	leasefail|nak)
		if [ -x /usr/sbin/avahi-autoipd ]; then
			/usr/sbin/avahi-autoipd -wD $interface --no-chroot
		fi
		;;

	renew|bound)
		if [ -x /usr/sbin/avahi-autoipd ]; then
			/usr/sbin/avahi-autoipd -k $interface
		fi
		/sbin/ifconfig $interface $ip $BROADCAST $NETMASK

		if [ -n "$router" ] ; then
			echo "deleting routers"
			while route del default gw 0.0.0.0 dev $interface ; do
				:
			done

			for i in $router ; do
				route add default gw $i dev $interface
			done
		fi

		echo -n > $RESOLV_CONF
		[ -n "$domain" ] && echo search $domain >> $RESOLV_CONF
		for i in $dns ; do
			echo adding dns $i
			echo nameserver $i >> $RESOLV_CONF
		done
		;;
esac

exit 0
+20 −1
Original line number Diff line number Diff line
@@ -10,10 +10,29 @@ RESOLV_CONF="/etc/resolv.conf"

case "$1" in
	deconfig)
		grep -q -v ip= /proc/cmdline
		if [ $? -eq 0 ]; then
			/sbin/ifconfig $interface up
		fi
		grep -q -v nfsroot= /proc/cmdline
		if [ $? -eq 0 ]; then
			/sbin/ifconfig $interface 0.0.0.0
		fi
		if [ -x /usr/sbin/avahi-autoipd ]; then
			/usr/sbin/avahi-autoipd -k $interface
		fi
		;;

	leasefail|nak)
		if [ -x /usr/sbin/avahi-autoipd ]; then
			/usr/sbin/avahi-autoipd -wD $interface --no-chroot
		fi
		;;

	renew|bound)
		if [ -x /usr/sbin/avahi-autoipd ]; then
			/usr/sbin/avahi-autoipd -k $interface
		fi
		/sbin/ifconfig $interface $ip $BROADCAST $NETMASK

		if [ -n "$router" ] ; then