diff options
author | glebius <glebius@FreeBSD.org> | 2014-01-05 13:55:33 +0000 |
---|---|---|
committer | glebius <glebius@FreeBSD.org> | 2014-01-05 13:55:33 +0000 |
commit | e3ce8ac51cdbc777c2e1d9b988232c3dd95251a1 (patch) | |
tree | eba36cbd0e910caca7d7cdebc66956e6057fbd7a | |
parent | c0b3920273edc3d87f06a5f4c97ed9a1a4755d5b (diff) | |
download | FreeBSD-src-e3ce8ac51cdbc777c2e1d9b988232c3dd95251a1.zip FreeBSD-src-e3ce8ac51cdbc777c2e1d9b988232c3dd95251a1.tar.gz |
Merge r260188 from head:
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
-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 464c852..2838e76 100644 --- a/sys/netinet/ip_output.c +++ b/sys/netinet/ip_output.c @@ -331,6 +331,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) { |