Commit
6471541d6d2bc9f2af0ff92b280abbd1d933cf88 broke support for VLAN
interfaces. Releasing a public IP address depends on
ip_maskbits_iface() and for a VLAN interface this will return an
interface of the form <vlan>@<iface>, which can't be fed back into
"ip" commands.
Update ip_maskbits_iface() to drop the '@' and everything after it.
Signed-off-by: Martin Schwenke <martin@meltin.net>
Reviewed-by: Amitay Isaacs <amitay@gmail.com>
Reported-by: Jan Schwaratzki <jschwaratzki@ddn.com>
ip addr show to "${_addr}/${_bits}" 2>/dev/null | \
awk -v family="${_family}" \
- 'NR == 1 { iface = $2; sub(":$", "", iface) } \
+ 'NR == 1 { iface = $2; sub(":$", "", iface) ; \
+ sub("@.*", "", iface) } \
$1 ~ /inet/ { mask = $2; sub(".*/", "", mask); \
print mask, iface, family }'
}