ip-up-vpn: Handle the case where INTERNAL_NETMASK4 is empty.

Also set the errno when inet_pton() fails.

Change-Id: Ib98ed593fe1ceabecef4b92bf939f44ecf9fa665
diff --git a/cmds/ip-up-vpn/ip-up-vpn.c b/cmds/ip-up-vpn/ip-up-vpn.c
index e9ee95d..0e6286f 100644
--- a/cmds/ip-up-vpn/ip-up-vpn.c
+++ b/cmds/ip-up-vpn/ip-up-vpn.c
@@ -40,6 +40,7 @@
 
 static int set_address(struct sockaddr *sa, const char *address) {
     sa->sa_family = AF_INET;
+    errno = EINVAL;
     return inet_pton(AF_INET, address, &((struct sockaddr_in *)sa)->sin_addr);
 }
 
@@ -124,10 +125,11 @@
         }
 
         /* Set the netmask. */
-        if (!set_address(&ifr.ifr_netmask, env("INTERNAL_NETMASK4")) ||
-                ioctl(s, SIOCSIFNETMASK, &ifr)) {
-            LOGE("Cannot set netmask: %s", strerror(errno));
-            return 1;
+        if (set_address(&ifr.ifr_netmask, env("INTERNAL_NETMASK4"))) {
+            if (ioctl(s, SIOCSIFNETMASK, &ifr)) {
+                LOGE("Cannot set netmask: %s", strerror(errno));
+                return 1;
+            }
         }
 
         /* TODO: Send few packets to trigger phase 2? */