VPN: tolerate duplicated routes.

Change-Id: I0f9efa8c3af3d4859358438745a5cd2c4ad376ca
This commit is contained in:
Chia-chi Yeh
2011-06-13 16:14:49 -07:00
parent 6ddd57491a
commit 23a5e4bcdc

View File

@@ -224,7 +224,7 @@ static int set_routes(const char *name, int index, const char *routes)
if (memcmp(&rt6.rtmsg_gateway, &in6addr_any, sizeof(in6addr_any))) {
rt6.rtmsg_flags |= RTF_GATEWAY;
}
if (ioctl(inet6, SIOCADDRT, &rt6)) {
if (ioctl(inet6, SIOCADDRT, &rt6) && errno != EEXIST) {
count = (errno == EINVAL) ? BAD_ARGUMENT : SYSTEM_ERROR;
break;
}
@@ -242,7 +242,7 @@ static int set_routes(const char *name, int index, const char *routes)
if (*as_in_addr(&rt4.rt_gateway)) {
rt4.rt_flags |= RTF_GATEWAY;
}
if (ioctl(inet4, SIOCADDRT, &rt4)) {
if (ioctl(inet4, SIOCADDRT, &rt4) && errno != EEXIST) {
count = (errno == EINVAL) ? BAD_ARGUMENT : SYSTEM_ERROR;
break;
}