Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit f459d324 authored by Chia-chi Yeh's avatar Chia-chi Yeh
Browse files

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

Also set the errno when inet_pton() fails.

Change-Id: Ib98ed593fe1ceabecef4b92bf939f44ecf9fa665
parent e690f565
Loading
Loading
Loading
Loading
+6 −4
Original line number Diff line number Diff line
@@ -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,11 +125,12 @@ int main(int argc, char **argv)
        }

        /* Set the netmask. */
        if (!set_address(&ifr.ifr_netmask, env("INTERNAL_NETMASK4")) ||
                ioctl(s, SIOCSIFNETMASK, &ifr)) {
        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? */