Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 28 Oct 2008 05:41:44 +0000 (UTC)
From:      Kip Macy <kmacy@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-user@freebsd.org
Subject:   svn commit: r184387 - user/kmacy/HEAD_fast_xmit/sys/netinet
Message-ID:  <200810280541.m9S5fi8t083660@svn.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: kmacy
Date: Tue Oct 28 05:41:44 2008
New Revision: 184387
URL: http://svn.freebsd.org/changeset/base/184387

Log:
  log errors and make sure flow gets re-looked up if dst address changes

Modified:
  user/kmacy/HEAD_fast_xmit/sys/netinet/ip_output.c

Modified: user/kmacy/HEAD_fast_xmit/sys/netinet/ip_output.c
==============================================================================
--- user/kmacy/HEAD_fast_xmit/sys/netinet/ip_output.c	Tue Oct 28 04:32:41 2008	(r184386)
+++ user/kmacy/HEAD_fast_xmit/sys/netinet/ip_output.c	Tue Oct 28 05:41:44 2008	(r184387)
@@ -466,10 +466,13 @@ sendit:
 
 			error = netisr_queue(NETISR_IP, m);
 			goto done;
-		} else
+		} else {
+			ri->ri_flags &= ~RTF_UP;
 			goto again;	/* Redo the routing table lookup. */
-	}
 
+		}
+	}
+	
 #ifdef IPFIREWALL_FORWARD
 	/* See if local, if yes, send it to netisr with IP_FASTFWD_OURS. */
 	if (m->m_flags & M_FASTFWD_OURS) {
@@ -493,6 +496,7 @@ sendit:
 		bcopy((fwd_tag+1), dst, sizeof(struct sockaddr_in));
 		m->m_flags |= M_SKIP_FIREWALL;
 		m_tag_delete(m, fwd_tag);
+		ri->ri_flags &= ~RTF_UP;
 		goto again;
 	}
 #endif /* IPFIREWALL_FORWARD */
@@ -617,6 +621,7 @@ passout:
 done:
 	return (error);
 bad:
+	printf("freeing %p\n", m);
 	m_freem(m);
 	goto done;
 }



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200810280541.m9S5fi8t083660>