gre: allow 0 as a legal key value

There is nothing in the standard that says 0 can't be used as a key.
It makes sense to allow it. Also fix typo where ikey was printed for
when printing okey.
diff --git a/ip/link_gre.c b/ip/link_gre.c
index c783203..5002095 100644
--- a/ip/link_gre.c
+++ b/ip/link_gre.c
@@ -331,16 +331,14 @@
 	if (tb[IFLA_GRE_OFLAGS])
 		oflags = *(__u16 *)RTA_DATA(tb[IFLA_GRE_OFLAGS]);
 
-	if (iflags & GRE_KEY && tb[IFLA_GRE_IKEY] &&
-	    *(__u32 *)RTA_DATA(tb[IFLA_GRE_IKEY])) {
+	if ((iflags & GRE_KEY) && tb[IFLA_GRE_IKEY]) {
 		inet_ntop(AF_INET, RTA_DATA(tb[IFLA_GRE_IKEY]), s2, sizeof(s2));
 		fprintf(f, "ikey %s ", s2);
 	}
 
-	if (oflags & GRE_KEY && tb[IFLA_GRE_OKEY] &&
-	    *(__u32 *)RTA_DATA(tb[IFLA_GRE_OKEY])) {
+	if ((oflags & GRE_KEY) && tb[IFLA_GRE_OKEY]) {
 		inet_ntop(AF_INET, RTA_DATA(tb[IFLA_GRE_OKEY]), s2, sizeof(s2));
-		fprintf(f, "ikey %s ", s2);
+		fprintf(f, "okey %s ", s2);
 	}
 
 	if (iflags & GRE_SEQ)