pccard_ether revision 70108
1#!/bin/sh -
2#
3# $FreeBSD: head/etc/pccard_ether 70108 2000-12-17 08:16:06Z dougb $
4#
5# pccard_ether interfacename [start|stop] [ifconfig option]
6#
7# example: pccard_ether ep0 start -link0
8#
9
10stop_dhcp() {
11	if [ -r /sbin/dhclient ]; then
12		pidfile="/var/run/dhclient.${interface}.pid"
13		if [ -s ${pidfile} ]; then
14			kill `cat ${pidfile}`
15			rm ${pidfile}
16		fi
17	elif [ -r /usr/local/sbin/dhcpc ]; then
18		pidfile="/var/run/dhcpc.${interface}.pid"
19		if [ -s ${pidfile} ]; then
20			kill `cat ${pidfile}`
21			rm ${pidfile}
22		fi
23	fi
24}
25
26start_dhcp() {
27	stop_dhcp
28	if [ -r /sbin/dhclient ]; then
29		pidfile="/var/run/dhclient.${interface}.pid"
30		/sbin/dhclient -pf ${pidfile} $interface
31	elif [ -r /usr/local/sbin/dhcpc ]; then
32		/usr/local/sbin/dhcpc $interface
33	else
34		echo 'DHCP client software not available (isc-dhcp2)'
35	fi
36}
37
38# Suck in the configuration variables
39#
40if [ -r /etc/defaults/rc.conf ]; then
41	. /etc/defaults/rc.conf
42	source_rc_confs
43elif [ -r /etc/rc.conf ]; then
44	. /etc/rc.conf
45fi
46
47interface=$1
48shift
49startstop=$1
50shift
51
52case ${startstop} in
53[Ss][Tt][Aa][Rr][Tt] | '')
54	case ${pccard_ifconfig} in
55	[Nn][Oo] | '')
56		;;
57	[Dd][Hh][Cc][Pp])
58		start_dhcp
59		;;
60	*)
61		ifconfig ${interface} ${pccard_ifconfig} $*
62		;;
63	esac
64
65	case ${defaultrouter} in
66	[Nn][Oo] | '')
67		;;
68	*)
69		static_routes="default ${static_routes}"
70		route_default="default ${defaultrouter}"
71		;;
72	esac
73
74	# Set up any static routes.
75	#
76	if [ -n "${static_routes}" ]; then
77		# flush beforehand, just in case....
78		route -n flush
79		arp -d -a
80		for i in ${static_routes}; do
81			eval route_args=\$route_${i}
82			route add ${route_args}
83		done
84	fi
85
86	# IPv6 setup
87	case ${ipv6_enable} in
88	[Yy][Ee][Ss])
89		case ${ipv6_gateway_enable} in
90		[Yy][Ee][Ss])
91			;;
92		*)
93			sysctl -w net.inet6.ip6.forwarding=0
94			sysctl -w net.inet6.ip6.accept_rtadv=1
95			ifconfig ${interface} up
96			rtsol ${interface}
97			;;
98		esac
99		;;
100	esac
101	;;
102# Stop the interface
103*)
104	/sbin/ifconfig ${interface} delete
105	stop_dhcp
106	;;
107esac
108