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 7957781..ba5c4ab 100644
--- a/ip/iplink_vxlan.c
+++ b/ip/iplink_vxlan.c
@@ -139,8 +139,10 @@
 		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 @@
 	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)));