1# 2# Copyright (c) 2015 Vincent Gross <vgross@openbsd.org> 3# 4# Permission to use, copy, modify, and distribute this software for any 5# purpose with or without fee is hereby granted, provided that the above 6# copyright notice and this permission notice appear in all copies. 7# 8# THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES 9# WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF 10# MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR 11# ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES 12# WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN 13# ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF 14# OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. 15 16CLEANUP=0 17VERBOSE=0 18FAILS=0 19 20iface_exists() 21{ 22 ifconfig_out=`ifconfig "$1" 2>&1` 23 [ "${ifconfig_out}" != "$1: no such interface" ] 24} 25 26rdomain_is_used() 27{ 28 _rdomains=$(ifconfig |grep -v ^lo$1 | \ 29 sed -n '/^[a-z].* rdomain \([0-9]*\).*/s//\1/p' | sort | uniq) 30 for _r in $_rdomains; do 31 if [ $_r = $1 ]; then 32 return 1 33 fi 34 done 35 return 0 36} 37 38abort_test() 39{ 40 echo "** Aborted" >&2 41 [ $# -ge 0 ] && echo "$1" >&2 42 cleanup 43 exit 1 44} 45 46test() 47{ 48 if [ $VERBOSE -gt 0 ]; then 49 "$@" 50 else 51 "$@" > /dev/null 2>&1 52 fi 53 if [ $? -ne 0 ]; then 54 FAILS=$((FAILS + 1)) 55 fi 56} 57 58RDOMAINS="" 59IFACE_NUMS="" 60while getopts 'cvR:I:' ch "$@"; do 61 case $ch in 62 c) 63 CLEANUP=1 64 ;; 65 v) 66 VERBOSE=$((VERBOSE + 1)) 67 ;; 68 R) 69 RDOMAINS="$RDOMAINS $OPTARG" 70 ;; 71 I) 72 IFACE_NUMS="$IFACE_NUMS $OPTARG" 73 ;; 74 *) 75 echo "usage: $(basename $0) [-cv][-R rodmains][-I iface_nums]" 76 exit 64 77 ;; 78 esac 79done 80