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="" 60AF=inet 61while getopts 'cvR:I:f:' ch "$@"; do 62 case $ch in 63 c) 64 CLEANUP=1 65 ;; 66 v) 67 VERBOSE=$((VERBOSE + 1)) 68 ;; 69 R) 70 RDOMAINS="$RDOMAINS $OPTARG" 71 ;; 72 I) 73 IFACE_NUMS="$IFACE_NUMS $OPTARG" 74 ;; 75 f) 76 AF=$OPTARG 77 ;; 78 *) 79 echo "usage: $(basename $0) [-cv][-R rodmains][-I iface_nums]" 80 exit 64 81 ;; 82 esac 83done 84