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 <fr...@harz.behrens.de>
  Tested by:    Frank Behrens <fr...@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;
_______________________________________________
svn-src-all@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/svn-src-all
To unsubscribe, send any mail to "svn-src-all-unsubscr...@freebsd.org"

Reply via email to