svn commit: r186086 - head/sys/netinet
Bjoern A. Zeeb
bz at FreeBSD.org
Sun Dec 14 17:47:34 UTC 2008
Author: bz
Date: Sun Dec 14 17:47:33 2008
New Revision: 186086
URL: http://svn.freebsd.org/changeset/base/186086
Log:
Add a check, that is currently under discussion for 8 but that we need
to keep for 7-STABLE when MFCing in_pcbladdr() to not change the
behaviour there.
With this a destination route via a loopback interface is treated as
a valid and reachable thing for IPv4 source address selection, even
though nothing of that network is ever directly reachable, but it is
more like a blackhole route.
With this the source address will be selected and IPsec can grab the
packets before we would discard them at a later point, encapsulate them
and send them out from a different tunnel endpoint IP.
Discussed on: net
Reported by: Frank Behrens <frank at harz.behrens.de>
Tested by: Frank Behrens <frank at harz.behrens.de>
MFC after: 4 weeks (just so that I get the mail)
Modified:
head/sys/netinet/in_pcb.c
Modified: head/sys/netinet/in_pcb.c
==============================================================================
--- head/sys/netinet/in_pcb.c Sun Dec 14 16:56:47 2008 (r186085)
+++ head/sys/netinet/in_pcb.c Sun Dec 14 17:47:33 2008 (r186086)
@@ -695,6 +695,10 @@ in_pcbladdr(struct inpcb *inp, struct in
ia = ifatoia(ifa_ifwithnet(sintosa(&sain)));
if (cred == NULL || !jailed(cred)) {
+#if __FreeBSD_version < 800000
+ if (ia == NULL)
+ ia = (struct in_ifaddr *)sro.ro_rt->rt_ifa;
+#endif
if (ia == NULL) {
error = ENETUNREACH;
goto done;
More information about the svn-src-all
mailing list