summaryrefslogtreecommitdiffstats
path: root/etc
diff options
context:
space:
mode:
authordougb <dougb@FreeBSD.org>2009-08-23 05:47:19 +0000
committerdougb <dougb@FreeBSD.org>2009-08-23 05:47:19 +0000
commitdcf16651e95c81bc93658a192aa5ff9c74ff7b23 (patch)
tree578719682a5ce9e376ea570e7803c9aed68cfab9 /etc
parent1849ab05a0714b2ab00529cd419f3bf5e8feabbb (diff)
downloadFreeBSD-src-dcf16651e95c81bc93658a192aa5ff9c74ff7b23.zip
FreeBSD-src-dcf16651e95c81bc93658a192aa5ff9c74ff7b23.tar.gz
Move is_wired_interface() from rc.d/wpa_supplicant into network.subr,
simplify it a bit, and make use of that method to determine if an interface is a candidate for IPv6 rtsol rather than listing all of the possible wireless interfaces that should _not_ get rtsol'ed. This change is only relevant for 8.0+ unless the "wlan mandatory" code gets ported back to RELENG_7.
Diffstat (limited to 'etc')
-rw-r--r--etc/network.subr22
-rwxr-xr-xetc/rc.d/wpa_supplicant12
2 files changed, 19 insertions, 15 deletions
diff --git a/etc/network.subr b/etc/network.subr
index 22bfc7d..c149854 100644
--- a/etc/network.subr
+++ b/etc/network.subr
@@ -816,6 +816,17 @@ hexprint()
echo ${str}
}
+is_wired_interface()
+{
+ local media
+
+ case `ifconfig $1 2>/dev/null` in
+ *media:?Ethernet*) media=Ethernet ;;
+ esac
+
+ test "$media" = "Ethernet"
+}
+
# Setup the interfaces for IPv6
network6_interface_setup()
{
@@ -858,14 +869,19 @@ network6_interface_setup()
ifconfig $i inet6 ${ipv6_ifconfig} alias
fi
+ # Wireless NIC cards are virtualized through the wlan interface
+ if ! is_wired_interface ${i}; then
+ case "${i}" in
+ wlan*) rtsol_available=yes ;;
+ *) rtsol_available=no ;;
+ esac
+ fi
+
if [ ${rtsol_available} = yes -a ${rtsol_interface} = yes ]
then
case ${i} in
lo0|gif[0-9]*|stf[0-9]*|faith[0-9]*|lp[0-9]*|sl[0-9]*|tun[0-9]*|pflog[0-9]*|pfsync[0-9]*)
;;
- # Wireless NIC cards are virtualized through the wlan interface
- an[0-9]*|ath[0-9]*|ipw[0-9]*|iwi[0-9]*|iwn[0-9]*|ral[0-9]*|wi[0-9]*|wl[0-9]*|wpi[0-9]*)
- ;;
*)
rtsol_interfaces="${rtsol_interfaces} ${i}"
;;
diff --git a/etc/rc.d/wpa_supplicant b/etc/rc.d/wpa_supplicant
index 192ca96..8514efc 100755
--- a/etc/rc.d/wpa_supplicant
+++ b/etc/rc.d/wpa_supplicant
@@ -18,18 +18,6 @@ if [ -z "$ifn" ]; then
return 1
fi
-is_wired_interface()
-{
- media=`ifconfig $1 2>/dev/null | while read line; do
- case "$line" in
- *media:?Ethernet*)
- echo Ethernet
- ;;
- esac
- done`
- test "$media" = "Ethernet"
-}
-
is_ndis_interface()
{
case `sysctl -n net.wlan.${1#wlan}.%parent 2>/dev/null` in
OpenPOWER on IntegriCloud