From: Roy Marples Date: Fri, 2 Jan 2009 09:31:42 +0000 (+0000) Subject: Adding subnet routes with just sdl_index set does not work for FreeBSD. X-Git-Tag: v5.0.0~137 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=fcdf05ed936deaa48c030bc2cc318e9bc8f342e1;p=thirdparty%2Fdhcpcd.git Adding subnet routes with just sdl_index set does not work for FreeBSD. --- diff --git a/if-bsd.c b/if-bsd.c index 885a327f..cc671ee2 100644 --- a/if-bsd.c +++ b/if-bsd.c @@ -212,16 +212,12 @@ if_route(const struct interface *iface, const struct in_addr *dest, } ADDADDR(dest); - if (rtm.hdr.rtm_flags & RTF_HOST) { + if (rtm.hdr.rtm_flags & RTF_HOST || !(rtm.hdr.rtm_flags & RTF_STATIC)) { /* Make us a link layer socket for the host gateway */ memset(&su, 0, sizeof(su)); su.sdl.sdl_len = sizeof(struct sockaddr_dl); link_addr(iface->name, &su.sdl); ADDSU(su); - } else if (!(rtm.hdr.rtm_flags & RTF_STATIC)) { - memset(&su, 0, sizeof(su)); - su.sdl.sdl_index = if_nametoindex(iface->name); - ADDSU(su); } else ADDADDR(gate);