net: ipv6: IPv6 environment variable cleanup

Fix "setenv gatewayip6".

Synchronize IPv6 local variables with environment variables
in netboot_update_env()

Signed-off-by: Sean Edmond <seanedmond@microsoft.com>
diff --git a/cmd/net.c b/cmd/net.c
index d5e2084..036b772 100644
--- a/cmd/net.c
+++ b/cmd/net.c
@@ -186,7 +186,7 @@
 
 static void netboot_update_env(void)
 {
-	char tmp[22];
+	char tmp[44];
 
 	if (net_gateway.s_addr) {
 		ip_to_string(net_gateway, tmp);
@@ -247,6 +247,27 @@
 		env_set("ntpserverip", tmp);
 	}
 #endif
+
+	if (IS_ENABLED(CONFIG_IPV6)) {
+		if (!ip6_is_unspecified_addr(&net_ip6) ||
+		    net_prefix_length != 0) {
+			sprintf(tmp, "%pI6c", &net_ip6);
+			if (net_prefix_length != 0)
+				sprintf(tmp, "%s/%d", tmp, net_prefix_length);
+
+			env_set("ip6addr", tmp);
+		}
+
+		if (!ip6_is_unspecified_addr(&net_server_ip6)) {
+			sprintf(tmp, "%pI6c", &net_server_ip6);
+			env_set("serverip6", tmp);
+		}
+
+		if (!ip6_is_unspecified_addr(&net_gateway6)) {
+			sprintf(tmp, "%pI6c", &net_gateway6);
+			env_set("gatewayip6", tmp);
+		}
+	}
 }
 
 /**