diff options
-rw-r--r-- | etc/network.subr | 24 | ||||
-rwxr-xr-x | etc/pccard_ether | 6 |
2 files changed, 29 insertions, 1 deletions
diff --git a/etc/network.subr b/etc/network.subr index cb00fbd1..de2aaf4 100644 --- a/etc/network.subr +++ b/etc/network.subr @@ -237,6 +237,30 @@ wpaif() return 1 } +# ipv6if if +# Returns 0 if the interface should be configured for IPv6 and +# 1 otherwise. +ipv6if() +{ + if ! checkyesno ipv6_enable; then + return 1 + fi + case "${ipv6_network_interfaces}" in + [Aa][Uu][Tt][Oo]) + return 0 + ;; + ''|[Nn][Oo][Nn][Ee]) + return 1 + ;; + esac + for v6if in ${ipv6_network_interfaces}; do + if [ "${v6if}" = "${1}" ]; then + return 0 + fi + done + return 1 +} + # ifexists if # Returns 0 if the interface exists and 1 otherwise. ifexists() diff --git a/etc/pccard_ether b/etc/pccard_ether index d8128da..4bf9b52 100755 --- a/etc/pccard_ether +++ b/etc/pccard_ether @@ -89,7 +89,11 @@ pccard_ether_start() fi # IPv6 setup - if checkyesno ipv6_enable; then + if ipv6if $ifn; then + # XXX: network6_interface_setup assumes you're calling + # it with ALL the IPv6 interfaces at once and thus isn't + # really appropraite for this job, but it's the best we've + # got for now. network6_interface_setup $ifn fi } |