diff options
author | glebius <glebius@FreeBSD.org> | 2014-01-02 10:18:39 +0000 |
---|---|---|
committer | glebius <glebius@FreeBSD.org> | 2014-01-02 10:18:39 +0000 |
commit | f3c61c87314a533dd77dadc43df7d66f61700368 (patch) | |
tree | 6b7960fcf73ae1f3fe7318f09e2bcefc6773d9ad /sys/netinet | |
parent | 4b9dcf4e758fb36bc823ff1c398cefe475eda2a6 (diff) | |
download | FreeBSD-src-f3c61c87314a533dd77dadc43df7d66f61700368.zip FreeBSD-src-f3c61c87314a533dd77dadc43df7d66f61700368.tar.gz |
Fix regression from r249894. Now we pass "gw" as argument to if_output
method, thus for multicast case we need it to point at "dst".
PR: 185395
Submitted by: ae
Diffstat (limited to 'sys/netinet')
-rw-r--r-- | sys/netinet/ip_output.c | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/sys/netinet/ip_output.c b/sys/netinet/ip_output.c index cba9e6a..e3da758 100644 --- a/sys/netinet/ip_output.c +++ b/sys/netinet/ip_output.c @@ -333,6 +333,12 @@ again: if (IN_MULTICAST(ntohl(ip->ip_dst.s_addr))) { m->m_flags |= M_MCAST; /* + * IP destination address is multicast. Make sure "gw" + * still points to the address in "ro". (It may have been + * changed to point to a gateway address, above.) + */ + gw = dst; + /* * See if the caller provided any multicast options */ if (imo != NULL) { |