X-Git-Url: https://git.saurik.com/apple/xnu.git/blobdiff_plain/0b4e3aa066abc0728aacb4bbeb86f53f9737156e..d52fe63fc81f7e44faaae711812a211a78434976:/bsd/netinet/ip_output.c?ds=sidebyside diff --git a/bsd/netinet/ip_output.c b/bsd/netinet/ip_output.c index 1018b8d21..fa63025aa 100644 --- a/bsd/netinet/ip_output.c +++ b/bsd/netinet/ip_output.c @@ -351,8 +351,10 @@ ip_output(m0, opt, ro, flags, imo) */ if (imo != NULL) { ip->ip_ttl = imo->imo_multicast_ttl; - if (imo->imo_multicast_ifp != NULL) + if (imo->imo_multicast_ifp != NULL) { ifp = imo->imo_multicast_ifp; + dl_tag = ifp->if_data.default_proto; + } if (imo->imo_multicast_vif != -1) ip->ip_src.s_addr = ip_mcast_src(imo->imo_multicast_vif); @@ -1043,7 +1045,7 @@ in_delayed_cksum(struct mbuf *m) csum = in_cksum_skip(m, ip->ip_len, offset); - if (csum == 0) + if ((m->m_pkthdr.csum_flags & CSUM_UDP) && csum == 0) csum = 0xffff; offset += m->m_pkthdr.csum_data & 0xFFFF; /* checksum offset */