aboutsummaryrefslogtreecommitdiff
path: root/sys/netinet
diff options
context:
space:
mode:
authorLuigi Rizzo <luigi@FreeBSD.org>2002-03-16 18:08:01 +0000
committerLuigi Rizzo <luigi@FreeBSD.org>2002-03-16 18:08:01 +0000
commitc7aa9daba3f814d1acdfcfc9041ff2556d5695e9 (patch)
tree8a38da7deed8e783a4f7065c84b7e7676040c475 /sys/netinet
parente0c9e2c888da64d854e2a38c73f9fcc338dfbfb6 (diff)
Notes
Diffstat (limited to 'sys/netinet')
-rw-r--r--sys/netinet/in.c8
1 files changed, 8 insertions, 0 deletions
diff --git a/sys/netinet/in.c b/sys/netinet/in.c
index c4a265f2153f..d750dc65bdd9 100644
--- a/sys/netinet/in.c
+++ b/sys/netinet/in.c
@@ -34,6 +34,7 @@
* $FreeBSD$
*/
+#include "opt_bootp.h"
#include <sys/param.h>
#include <sys/systm.h>
#include <sys/sockio.h>
@@ -730,10 +731,17 @@ in_ifinit(ifp, ia, sin, scrub)
if ((error = rtinit(&(ia->ia_ifa), (int)RTM_ADD, flags)) == 0)
ia->ia_flags |= IFA_ROUTE;
+#ifndef BOOTP
+ /*
+ * This breaks kernel-bootp support when we have more than one
+ * interface, because the bootp code wants to set a 0.0.0.0/0
+ * address on all interfaces. Disable the check when bootp is used.
+ */
if (error != 0 && ia->ia_dstaddr.sin_family == AF_INET) {
ia->ia_addr = oldaddr;
return (error);
}
+#endif
/* XXX check if the subnet route points to the same interface */
if (error == EEXIST)