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

Also set the errno when inet_pton() fails.

Change-Id: Ib98ed593fe1ceabecef4b92bf939f44ecf9fa665
This commit is contained in:
Chia-chi Yeh
2011-09-22 10:53:05 -07:00
parent e690f565fd
commit f459d324bf

View File

@@ -40,6 +40,7 @@ static const char *env(const char *name) {
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 @@ int main(int argc, char **argv)
}
/* 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? */