xref: /openbsd/regress/sys/netinet/carp/carp_subr (revision 73471bf0)
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