diff options
Diffstat (limited to 'net/ifconfig.sh.BSD.in')
-rw-r--r-- | net/ifconfig.sh.BSD.in | 264 |
1 files changed, 0 insertions, 264 deletions
diff --git a/net/ifconfig.sh.BSD.in b/net/ifconfig.sh.BSD.in deleted file mode 100644 index c7e98a28..00000000 --- a/net/ifconfig.sh.BSD.in +++ /dev/null @@ -1,264 +0,0 @@ -# Copyright (c) 2007-2008 Roy Marples <roy@marples.name> -# Released under the 2-clause BSD license. - -ifconfig_depend() -{ - program /sbin/ifconfig - provide interface -} - -_exists() -{ - # Only FreeBSD sees to have /dev/net .... is there something - # other than ifconfig we can use for the others? - if [ -d /dev/net ]; then - [ -e /dev/net/"${IFACE}" ] - else - ifconfig "${IFACE}" >/dev/null 2>&1 - fi -} - -_up() -{ - ifconfig "${IFACE}" up -} - -_down() -{ - ifconfig "${IFACE}" down -} - -_ifindex() -{ - local x= i=1 - case "${RC_UNAME}" in - FreeBSD|DragonFly) - for x in /dev/net[0-9]*; do - if [ "${x}" -ef /dev/net/"${IFACE}" ]; then - echo "${x#/dev/net}" - return 0 - fi - : $(( i += 1 )) - done - ;; - default) - for x in $(ifconfig -l); do - if [ "${x}" = "${IFACE}" ]; then - echo "${i}" - return 0 - fi - : $(( i += 1 )) - done - ;; - esac - - # Return the next available index - echo "${i}" - return 1 -} - -_ifconfig_ent() -{ - LC_ALL=C ifconfig "${IFACE}" 2>/dev/null | while read ent rest; do - case "${ent}" in - $1) echo "${rest}";; - esac - done -} - -_get_mac_address() -{ - local ent="ether" - case "${RC_UNAME}" in - NetBSD|OpenBSD) ent="address:";; - esac - - case $(_ifconfig_ent "${ent}") in - 00:00:00:00:00:00);; - 44:44:44:44:44:44);; - FF:FF:FF:FF:FF:FF);; - "") return 1;; - *) echo "${address}";; - esac - - return 0; -} - - -_is_wireless() -{ - case "$(_ifconfig_ent "media:")" in - IEEE802.11*|"IEEE 802.11 Wireless"*) return 0;; - *) return 1;; - esac -} - -_get_inet_address() -{ - local inet= address= n= netmask= rest= - LC_ALL=C ifconfig "${IFACE}" | while read inet address n netmask rest; do - if [ "${inet}" = "inet" ]; then - echo "${address}/$(_netmask2cidr "${netmask}")" - return 0 - fi - done -} - -_add_address() -{ - local inet6= - - case "$@" in - *:*) inet6=inet6;; - esac - - if [ "${metric:-0}" != "0" ]; then - set -- "$@" metric ${metric} - fi - - # ifconfig doesn't like CIDR addresses - case "${RC_UNAME}" in - OpenBSD) - local ip="${1%%/*}" cidr="${1##*/}" netmask= - if [ -n "${cidr}" -a "${cidr}" != "${ip}" ]; then - netmask="$(_cidr2netmask "${cidr}")" - shift - set -- "${ip}" netmask "${netmask}" "$@" - fi - ;; - esac - - ifconfig "${IFACE}" ${inet6} "$@" alias -} - -_add_route() -{ - if [ $# -gt 3 ]; then - if [ "$3" = "gw" -o "$3" = "via" ]; then - local one=$1 two=$2 - shift; shift; shift - set -- "${one}" "${two}" "$@" - fi - fi - - case "$@" in - *:*) route add -inet6 "$@";; - *) route add "$@";; - esac -} - -_delete_addresses() -{ - einfo "Removing addresses" - eindent - LC_ALL=C ifconfig "${IFACE}" | while read inet address ali rest; do - case "${inet}" in - inet|inet6) - if [ "${address}" = "alias" ]; then - address="${ali}" - fi - case "${address}" in - *"%${IFACE}"|::1) continue;; - 127.0.0.1) [ "${IFACE}" = "lo0" ] && continue;; - esac - einfo "${address}" - ifconfig "${IFACE}" "${inet}" "${address}" -alias - eend $? - ;; - esac - done - eoutdent - return 0 -} - -_show_address() -{ - einfo "received address $(_get_inet_address "${IFACE}")" -} - -_has_carrier() -{ - case "$(_ifconfig_ent "status:")" in - ""|active|associated) return 0;; - *) return 1;; - esac -} - -ifconfig_pre_start() -{ - local config="$(_get_array "ifconfig_${IFVAR}")" conf= arg= args= - local IFS="$__IFS" - - [ -z "${config}" ] && return 0 - - veinfo "Running ifconfig commands" - eindent - for conf in ${config}; do - unset IFS - args= - for arg in ${conf}; do - case ${arg} in - [Dd][Hh][Cc][Pp]);; - [Nn][Oo][Aa][Uu][Tt][Oo]);; - [Nn][Oo][Ss][Yy][Nn][Cc][Dd][Hh][Cc][Pp]);; - [Ss][Yy][Nn][Cc][Dd][Hh][Cc][Pp]);; - [Ww][Pp][Aa]);; - *) args="${args} ${arg}";; - esac - done - - [ -z "${args}" ] && continue - vebegin "ifconfig${args}" - eval ifconfig "${IFACE}" "${args}" - veend $? - done - eoutdent - - return 0 -} - -_ifconfig_ipv6_tentative() -{ - local inet= address= rest= - LC_ALL=C ifconfig "${IFACE}" | while read inet address rest; do - case "${inet}" in - inet6) - case "${rest}" in - *" "tentative*) return 2;; - esac - ;; - esac - done - [ $? = 2 ] -} - -ifconfig_post_start() -{ - if _ifconfig_ipv6_tentative; then - ebegin "Waiting for IPv6 addresses" - while true; do - _ifconfig_ipv6_tentative || break - done - eend 0 - fi -} - -# Is the interface administratively/operationally up? -# The 'UP' status in ifconfig is the administrative status -# Operational state does not seem to be available in BSD? -# 0: up -# 1: down -# 2: invalid arguments -is_admin_up() -{ - local iface="$1" - [ -z "$iface" ] && iface="$IFACE" - ifconfig "${iface}" | \ - sed -n '1,1{ /flags=.*[<,]UP[,>]/{ q 0 }}; q 1; ' -} - -is_oper_up() -{ - eerror "TODO: is_oper_up not available on BSD" - return 2 -} |