svn commit: r215110 - head/sys/netinet
Randall Stewart
rrs at FreeBSD.org
Thu Nov 11 05:40:39 UTC 2010
Author: rrs
Date: Thu Nov 11 05:40:39 2010
New Revision: 215110
URL: http://svn.freebsd.org/changeset/base/215110
Log:
Fix so that a multicast packet can be sent
even if there is no route out to that mcast address. The code in
in_pcb inadvertantly would error (no route) even though
the user may have specified the address with the
proper socket option (to specify the egress interface).
Thanks bz for reminding me I forgot to commit this ;-)
Reviewed by: bz
MFC after: 1 week
Modified:
head/sys/netinet/in_pcb.c
Modified: head/sys/netinet/in_pcb.c
==============================================================================
--- head/sys/netinet/in_pcb.c Thu Nov 11 05:38:32 2010 (r215109)
+++ head/sys/netinet/in_pcb.c Thu Nov 11 05:40:39 2010 (r215110)
@@ -874,10 +874,6 @@ in_pcbconnect_setup(struct inpcb *inp, s
}
}
if (laddr.s_addr == INADDR_ANY) {
- error = in_pcbladdr(inp, &faddr, &laddr, cred);
- if (error)
- return (error);
-
/*
* If the destination address is multicast and an outgoing
* interface has been set as a multicast option, use the
@@ -902,9 +898,12 @@ in_pcbconnect_setup(struct inpcb *inp, s
laddr = ia->ia_addr.sin_addr;
IN_IFADDR_RUNLOCK();
}
+ } else {
+ error = in_pcbladdr(inp, &faddr, &laddr, cred);
+ if (error)
+ return (error);
}
}
-
oinp = in_pcblookup_hash(inp->inp_pcbinfo, faddr, fport, laddr, lport,
0, NULL);
if (oinp != NULL) {
More information about the svn-src-head
mailing list