Diff below removes an old comment about bsdi4 and make it clear that
netmasks are not needed for routes to host.
ok?
Index: net/route.c
===================================================================
RCS file: /home/ncvs/src/sys/net/route.c,v
retrieving revision 1.151
diff -u -p -r1.151 route.c
--- net/route.c 23 Jan 2014 10:16:30 -0000 1.151
+++ net/route.c 4 Feb 2014 09:38:53 -0000
@@ -1119,13 +1119,9 @@ rtinit(struct ifaddr *ifa, int cmd, int
info.rti_info[RTAX_LABEL] =
rtlabel_id2sa(ifa->ifa_ifp->if_rtlabelid, &sa_rl);
- /*
- * XXX here, it seems that we are assuming that ifa_netmask is NULL
- * for RTF_HOST. bsdi4 passes NULL explicitly (via intermediate
- * variable) when RTF_HOST is 1. still not sure if i can safely
- * change it to meet bsdi4 behavior.
- */
- info.rti_info[RTAX_NETMASK] = ifa->ifa_netmask;
+ if ((flags & RTF_HOST) == 0)
+ info.rti_info[RTAX_NETMASK] = ifa->ifa_netmask;
+
error = rtrequest1(cmd, &info, RTP_CONNECTED, &nrt, rtableid);
if (cmd == RTM_DELETE) {
if (error == 0 && (rt = nrt) != NULL) {