]> git.proxmox.com Git - mirror_iproute2.git/commitdiff
fou: Allowing configuring IPv6 listener
authorTom Herbert <tom@herbertland.com>
Thu, 4 Aug 2016 20:34:57 +0000 (13:34 -0700)
committerStephen Hemminger <shemming@brocade.com>
Fri, 12 Aug 2016 19:51:18 +0000 (12:51 -0700)
Signed-off-by: Tom Herbert <tom@herbertland.com>
ip/ipfou.c

index 2a6ae1755d3ee100ed2010b9277367a2ea7c54ca..0673d11ff6f9fec0ec664094806b1fb30d66db71 100644 (file)
@@ -25,8 +25,9 @@
 
 static void usage(void)
 {
-       fprintf(stderr, "Usage: ip fou add port PORT { ipproto PROTO  | gue }\n");
-       fprintf(stderr, "       ip fou del port PORT\n");
+       fprintf(stderr, "Usage: ip fou add port PORT "
+               "{ ipproto PROTO  | gue } [ -6 ]\n");
+       fprintf(stderr, "       ip fou del port PORT [ -6 ]\n");
        fprintf(stderr, "\n");
        fprintf(stderr, "Where: PROTO { ipproto-name | 1..255 }\n");
        fprintf(stderr, "       PORT { 1..65535 }\n");
@@ -50,6 +51,7 @@ static int fou_parse_opt(int argc, char **argv, struct nlmsghdr *n,
        __u8 ipproto, type;
        bool gue_set = false;
        int ipproto_set = 0;
+       unsigned short family = AF_INET;
 
        while (argc > 0) {
                if (!matches(*argv, "port")) {
@@ -71,6 +73,8 @@ static int fou_parse_opt(int argc, char **argv, struct nlmsghdr *n,
                        ipproto_set = 1;
                } else if (!matches(*argv, "gue")) {
                        gue_set = true;
+               } else if (!matches(*argv, "-6")) {
+                       family = AF_INET6;
                } else {
                        fprintf(stderr, "fou: unknown command \"%s\"?\n", *argv);
                        usage();
@@ -98,6 +102,7 @@ static int fou_parse_opt(int argc, char **argv, struct nlmsghdr *n,
 
        addattr16(n, 1024, FOU_ATTR_PORT, port);
        addattr8(n, 1024, FOU_ATTR_TYPE, type);
+       addattr16(n, 1024, FOU_ATTR_AF, family);
 
        if (ipproto_set)
                addattr8(n, 1024, FOU_ATTR_IPPROTO, ipproto);