diff options
Diffstat (limited to 'net.Linux/ifconfig.sh')
-rw-r--r-- | net.Linux/ifconfig.sh | 83 |
1 files changed, 39 insertions, 44 deletions
diff --git a/net.Linux/ifconfig.sh b/net.Linux/ifconfig.sh index ff5c5437..12c71ebf 100644 --- a/net.Linux/ifconfig.sh +++ b/net.Linux/ifconfig.sh @@ -1,45 +1,29 @@ -# Copyright 2007 Roy Marples +# Copyright 2007-2008 Roy Marples # All rights reserved -# Redistribution and use in source and binary forms, with or without -# modification, are permitted provided that the following conditions -# are met: -# 1. Redistributions of source code must retain the above copyright -# notice, this list of conditions and the following disclaimer. -# 2. Redistributions in binary form must reproduce the above copyright -# notice, this list of conditions and the following disclaimer in the -# documentation and/or other materials provided with the distribution. -# -# THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND -# ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -# ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE -# FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL -# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS -# OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) -# HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT -# LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY -# OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF -# SUCH DAMAGE. - -ifconfig_depend() { +ifconfig_depend() +{ program /sbin/ifconfig provide interface } -_up() { +_up() +{ ifconfig "${IFACE}" up } -_down() { +_down() +{ ifconfig "${IFACE}" down } -_exists() { +_exists() +{ grep -Eq "^[[:space:]]*${IFACE}:" /proc/net/dev } -_ifindex() { +_ifindex() +{ local line= i=-2 while read line; do i=$((${i} + 1)) @@ -55,7 +39,8 @@ _ifindex() { return 1 } -_is_wireless() { +_is_wireless() +{ # Support new sysfs layout [ -d /sys/class/net/"${IFACE}"/wireless ] && return 0 @@ -63,15 +48,16 @@ _is_wireless() { grep -Eq "^[[:space:]]*${IFACE}:" /proc/net/wireless } -_set_flag() { +_set_flag() +{ ifconfig "${IFACE}" "$1" } -_get_mac_address() { +_get_mac_address() +{ local mac=$(LC_ALL=C ifconfig "${IFACE}" | \ sed -n -e 's/.* HWaddr \(..:..:..:..:..:..\).*/\1/p') - case "${mac}" in 00:00:00:00:00:00);; 44:44:44:44:44:44);; @@ -83,11 +69,13 @@ _get_mac_address() { return 1 } -_set_mac_address() { +_set_mac_address() +{ ifconfig "${IFACE}" hw ether "$1" } -_get_inet_address() { +_get_inet_address() +{ set -- $(LC_ALL=C ifconfig "${IFACE}" | sed -n -e 's/.*inet addr:\([^ ]*\).*Mask:\([^ ]*\).*/\1 \2/p') [ -z "$1" ] && return 1 @@ -97,7 +85,8 @@ _get_inet_address() { echo "/$(_netmask2cidr "$1")" } -_get_inet_addresses() { +_get_inet_addresses() +{ local iface=${IFACE} i=0 local addrs="$(_get_inet_address)" @@ -111,7 +100,8 @@ _get_inet_addresses() { echo "${addrs}" } -_cidr2netmask() { +_cidr2netmask() +{ local cidr="$1" netmask="" done=0 i=0 sum=0 cur=128 local octets= frac= @@ -141,7 +131,8 @@ _cidr2netmask() { echo "${netmask#.*}" } -_add_address() { +_add_address() +{ if [ "$1" = "127.0.0.1/8" -a "${IFACE}" = "lo" ]; then ifconfig "${IFACE}" "$@" 2>/dev/null return 0 @@ -189,7 +180,8 @@ _add_address() { ifconfig "${iface}" ${cmd} } -_add_route() { +_add_route() +{ local inet6= if [ -n "${metric}" ]; then @@ -214,7 +206,8 @@ _add_route() { route ${inet6} add "$@" dev "${IFACE}" } -_delete_addresses() { +_delete_addresses() +{ # We don't remove addresses from aliases case "${IFACE}" in *:*) return 0;; @@ -250,15 +243,18 @@ _delete_addresses() { return 0 } -_has_carrier() { +_has_carrier() +{ return 0 } -_tunnel() { +_tunnel() +{ iptunnel "$@" } -ifconfig_pre_start() { +ifconfig_pre_start() +{ # MTU support local mtu= eval mtu=\$mtu_${IFVAR} @@ -282,7 +278,8 @@ ifconfig_pre_start() { eend $? } -ifconfig_post_stop() { +ifconfig_post_stop() +{ # Don't delete sit0 as it's a special tunnel [ "${IFACE}" = "sit0" ] && return 0 @@ -292,5 +289,3 @@ ifconfig_post_stop() { iptunnel del "${IFACE}" eend $? } - -# vim: set ts=4 : |