Remove the hack that ensures that rt_Update() works on FreeBSD. Now

that the ncpaddr code doesn't create default routes with non-zero
masks, everything works as it should.
This commit is contained in:
Brian Somers 2001-11-23 19:20:45 +00:00
parent 1a24ca7a4b
commit 0ed9882caa

View File

@ -867,29 +867,11 @@ rt_Update(struct bundle *bundle, const struct sockaddr *dst,
rtmes.m_rtm.rtm_addrs |= RTA_DST;
p += memcpy_roundup(p, dst, dst->sa_len);
}
#ifdef __FreeBSD__
/*
* In order to update the default route under FreeBSD, only the destination
* address should be specified. If the (empty) mask or the gateway
* address are used, the update fails...
* Conversely, if the gateway and mask are omitted under OpenBSD, the
* update will fail.
*/
if (dst)
ncprange_setsa(&ncpdst, dst, mask);
else
ncprange_init(&ncpdst);
if (!ncprange_isdefault(&ncpdst))
#endif
{
rtmes.m_rtm.rtm_addrs |= RTA_GATEWAY;
p += memcpy_roundup(p, gw, gw->sa_len);
if (mask) {
rtmes.m_rtm.rtm_addrs |= RTA_NETMASK;
p += memcpy_roundup(p, mask, mask->sa_len);
}
rtmes.m_rtm.rtm_addrs |= RTA_GATEWAY;
p += memcpy_roundup(p, gw, gw->sa_len);
if (mask) {
rtmes.m_rtm.rtm_addrs |= RTA_NETMASK;
p += memcpy_roundup(p, mask, mask->sa_len);
}
rtmes.m_rtm.rtm_msglen = p - (char *)&rtmes;