summaryrefslogtreecommitdiffstats
path: root/src.etc/network/functions
blob: e5967b7ae378b63612cbd1dc9859d7484ccb4434 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
#!/bin/sh

case "${0}" in
	/etc/network/if-*.d/*) ;;
	*) exit 1;;
esac
if [ "x${IFACE}" = 'x' ]; then
	exit 1
fi

get_iface_opts()
{
	local opt_cb="${1}"
	local script=
	local opts=
	local opt=

	script="$(printf '
		/^iface[ \\t][ \\t]*%s/,/^[^ \\t]/{
			/^$/q;
			s/^[ \\t][ \\t]*//p;
		}
		' "${IFACE}")"

	opts="$(sed -n "${script}" /var/run/net-ifaces)"
	if [ "x${opts}" = 'x' ]; then
		return 0
	fi

	while read -r opt; do
		${opt_cb} ${opt}
	done <<-EOF
		${opts}
		EOF

	return 0
}