From: Roy Marples Date: Mon, 10 Nov 2008 08:31:33 +0000 (+0000) Subject: Fix changing routes on BSD. X-Git-Tag: v5.0.0~189 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=eee1b3eed91b9122ad132ea501430693641cd066;p=thirdparty%2Fdhcpcd.git Fix changing routes on BSD. --- diff --git a/configure.c b/configure.c index 53fd9a8d..09b59dfe 100644 --- a/configure.c +++ b/configure.c @@ -268,20 +268,15 @@ c_route(struct rt *ort, struct rt *nrt, const struct interface *iface) iface->name, addr, inet_ntocidr(nrt->net), inet_ntoa(nrt->gate)); free(addr); -#if HAVE_ROUTE_METRIC + /* We don't call change_route because it doesn't work when something + * has already used it. */ del_route(ort->iface, &ort->dest, &ort->net, &ort->gate, ort->iface->metric); if (!add_route(iface, &nrt->dest, &nrt->net, &nrt->gate, iface->metric)) return 0; syslog(LOG_ERR, "add_route: %m"); -#else - if (!change_route(iface, &ort->dest, &ort->net, &nrt->gate, iface->metric)) - return 0; - syslog(LOG_ERR, "change_route: %m"); -#endif return -1; } - static int d_route(struct rt *rt, const struct interface *iface, int metric) {