}
ADDADDR(dest);
- if (rtm.hdr.rtm_flags & RTF_HOST ||
- !(rtm.hdr.rtm_flags & RTF_STATIC))
- {
+ if (rtm.hdr.rtm_flags & RTF_HOST) {
/* 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);