From: Stephen Hemminger Date: Fri, 19 Oct 2012 20:25:17 +0000 (-0700) Subject: vxlan: only send group address if defined X-Git-Tag: v3.7.0~21 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=b64da5a5e0899d9d0b7e4a6cf3ce9f8c1cad5335;p=thirdparty%2Fiproute2.git vxlan: only send group address if defined Don't send 0 as group address. --- diff --git a/ip/iplink_vxlan.c b/ip/iplink_vxlan.c index 7957781ca..ba5c4ab61 100644 --- a/ip/iplink_vxlan.c +++ b/ip/iplink_vxlan.c @@ -139,8 +139,10 @@ static int vxlan_parse_opt(struct link_util *lu, int argc, char **argv, return -1; } addattr32(n, 1024, IFLA_VXLAN_ID, vni); - addattr_l(n, 1024, IFLA_VXLAN_GROUP, &gaddr, 4); - addattr_l(n, 1024, IFLA_VXLAN_LOCAL, &saddr, 4); + if (gaddr) + addattr_l(n, 1024, IFLA_VXLAN_GROUP, &gaddr, 4); + if (saddr) + addattr_l(n, 1024, IFLA_VXLAN_LOCAL, &saddr, 4); if (link) addattr32(n, 1024, IFLA_VXLAN_LINK, link); addattr8(n, 1024, IFLA_VXLAN_TTL, ttl); @@ -179,16 +181,14 @@ static void vxlan_print_opt(struct link_util *lu, FILE *f, struct rtattr *tb[]) fprintf(f, "id %u ", vni); if (tb[IFLA_VXLAN_GROUP]) { - __u32 addr = rta_getattr_u32(tb[IFLA_VXLAN_GROUP]); - + __be32 addr = rta_getattr_u32(tb[IFLA_VXLAN_GROUP]); if (addr) fprintf(f, "group %s ", format_host(AF_INET, 4, &addr, s1, sizeof(s1))); } if (tb[IFLA_VXLAN_LOCAL]) { - unsigned addr = rta_getattr_u32(tb[IFLA_VXLAN_LOCAL]); - + __be32 addr = rta_getattr_u32(tb[IFLA_VXLAN_LOCAL]); if (addr) fprintf(f, "local %s ", format_host(AF_INET, 4, &addr, s1, sizeof(s1)));