ip(8) accepts -family ipv6 (-6) option at the toplevel. It is straightforward to support the existing option for modifying listener on IPv6 addresses.
Maintain the backward compatibility by leaving ip fou -6 flag implemented, while it's removed from the usage message. Signed-off-by: Sorah Fukumori <h...@sorah.jp> --- ip/ipfou.c | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/ip/ipfou.c b/ip/ipfou.c index ea126b08..9c697770 100644 --- a/ip/ipfou.c +++ b/ip/ipfou.c @@ -27,10 +27,10 @@ static void usage(void) { fprintf(stderr, - "Usage: ip fou add port PORT { ipproto PROTO | gue } [ -6 ]\n" + "Usage: ip fou add port PORT { ipproto PROTO | gue }\n" " [ local IFADDR ] [ peer IFADDR ]\n" " [ peer_port PORT ] [ dev IFNAME ]\n" - " ip fou del port PORT [ -6 ] [ local IFADDR ]\n" + " ip fou del port PORT [ local IFADDR ]\n" " [ peer IFADDR ] [ peer_port PORT ]\n" " [ dev IFNAME ]\n" " ip fou show\n" @@ -55,13 +55,17 @@ static int fou_parse_opt(int argc, char **argv, struct nlmsghdr *n, { const char *local = NULL, *peer = NULL; __u16 port, peer_port = 0; - __u8 family = AF_INET; + __u8 family = preferred_family; bool gue_set = false; int ipproto_set = 0; __u8 ipproto, type; int port_set = 0; int index = 0; + if (preferred_family == AF_UNSPEC) { + family = AF_INET; + } + while (argc > 0) { if (!matches(*argv, "port")) { NEXT_ARG(); -- 2.26.2