svn commit: r249894 - head/sys/netinet
Glen Barber
gjb at FreeBSD.org
Fri Apr 26 11:50:27 UTC 2013
On Thu, Apr 25, 2013 at 12:42:09PM +0000, Gleb Smirnoff wrote:
> Modified: head/sys/netinet/ip_output.c
> ==============================================================================
> --- head/sys/netinet/ip_output.c Thu Apr 25 12:05:17 2013 (r249893)
> +++ head/sys/netinet/ip_output.c Thu Apr 25 12:42:09 2013 (r249894)
> @@ -123,6 +123,7 @@ ip_output(struct mbuf *m, struct mbuf *o
> int n; /* scratchpad */
> int error = 0;
> struct sockaddr_in *dst;
> + const struct sockaddr_in *gw;
> struct in_ifaddr *ia;
> int isbroadcast;
> uint16_t ip_len, ip_off;
> @@ -196,8 +197,8 @@ ip_output(struct mbuf *m, struct mbuf *o
> hlen = ip->ip_hl << 2;
> }
>
> + gw = dst = (struct sockaddr_in *)&ro->ro_dst;
> again:
> - dst = (struct sockaddr_in *)&ro->ro_dst;
> ia = NULL;
> /*
> * If there is a cached route,
> @@ -297,11 +298,11 @@ again:
> ifp = rte->rt_ifp;
> rte->rt_rmx.rmx_pksent++;
> if (rte->rt_flags & RTF_GATEWAY)
> - dst = (struct sockaddr_in *)rte->rt_gateway;
> + gw = (struct sockaddr_in *)rte->rt_gateway;
> if (rte->rt_flags & RTF_HOST)
> isbroadcast = (rte->rt_flags & RTF_BROADCAST);
> else
> - isbroadcast = in_broadcast(dst->sin_addr, ifp);
> + isbroadcast = in_broadcast(gw->sin_addr, ifp);
> }
> /*
> * Calculate MTU. If we have a route that is up, use that,
> @@ -327,12 +328,6 @@ again:
> if (IN_MULTICAST(ntohl(ip->ip_dst.s_addr))) {
> m->m_flags |= M_MCAST;
> /*
> - * IP destination address is multicast. Make sure "dst"
> - * still points to the address in "ro". (It may have been
> - * changed to point to a gateway address, above.)
> - */
> - dst = (struct sockaddr_in *)&ro->ro_dst;
> - /*
> * See if the caller provided any multicast options
> */
> if (imo != NULL) {
> @@ -559,7 +554,6 @@ sendit:
> /* Or forward to some other address? */
> if ((m->m_flags & M_IP_NEXTHOP) &&
> (fwd_tag = m_tag_find(m, PACKET_TAG_IPFORWARD, NULL)) != NULL) {
> - dst = (struct sockaddr_in *)&ro->ro_dst;
> bcopy((fwd_tag+1), dst, sizeof(struct sockaddr_in));
> m->m_flags |= M_SKIP_FIREWALL;
> m->m_flags &= ~M_IP_NEXTHOP;
> @@ -628,8 +622,7 @@ passout:
> * to avoid confusing lower layers.
> */
> m->m_flags &= ~(M_PROTOFLAGS);
> - error = (*ifp->if_output)(ifp, m,
> - (struct sockaddr *)dst, ro);
> + error = (*ifp->if_output)(ifp, m, (struct sockaddr *)gw, ro);
It looks like this change is causing tinderbox build failures on head/ :
--------------------- begin quoted text ---------------------
/src/sys/netinet/ip_output.c: In function 'ip_output':
/src/sys/netinet/ip_output.c:625: warning: cast discards qualifiers from pointer target type
---------------------- end quoted text ----------------------
Glen
> goto done;
> }
>
> @@ -663,7 +656,7 @@ passout:
> m->m_flags &= ~(M_PROTOFLAGS);
>
> error = (*ifp->if_output)(ifp, m,
> - (struct sockaddr *)dst, ro);
> + (struct sockaddr *)gw, ro);
> } else
> m_freem(m);
> }
> _______________________________________________
> svn-src-all at freebsd.org mailing list
> http://lists.freebsd.org/mailman/listinfo/svn-src-all
> To unsubscribe, send any mail to "svn-src-all-unsubscribe at freebsd.org"
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 488 bytes
Desc: not available
URL: <http://lists.freebsd.org/pipermail/svn-src-all/attachments/20130426/1e294963/attachment.sig>
More information about the svn-src-all
mailing list