svn commit: r247968 - stable/8/sys/netinet
Michael Tuexen
tuexen at FreeBSD.org
Thu Mar 7 23:35:07 UTC 2013
Author: tuexen
Date: Thu Mar 7 23:35:06 2013
New Revision: 247968
URL: http://svnweb.freebsd.org/changeset/base/247968
Log:
MFC r238122:
Use consistent method to determine IPV4_OUTPUT/IPV6_OUTPUT.
Modified:
stable/8/sys/netinet/sctp_output.c
Directory Properties:
stable/8/sys/ (props changed)
stable/8/sys/netinet/ (props changed)
Modified: stable/8/sys/netinet/sctp_output.c
==============================================================================
--- stable/8/sys/netinet/sctp_output.c Thu Mar 7 23:31:32 2013 (r247967)
+++ stable/8/sys/netinet/sctp_output.c Thu Mar 7 23:35:06 2013 (r247968)
@@ -10977,8 +10977,9 @@ sctp_send_resp_msg(struct sockaddr *src,
return;
}
SCTP_ATTACH_CHAIN(o_pak, mout, len);
+ switch (dst->sa_family) {
#ifdef INET
- if (ip != NULL) {
+ case AF_INET:
if (port) {
if (V_udp_cksum) {
udp->uh_sum = in_pseudo(ip->ip_src.s_addr, ip->ip_dst.s_addr, udp->uh_ulen + htons(IPPROTO_UDP));
@@ -11012,10 +11013,10 @@ sctp_send_resp_msg(struct sockaddr *src,
}
#endif
SCTP_IP_OUTPUT(ret, o_pak, NULL, NULL, vrf_id);
- }
+ break;
#endif
#ifdef INET6
- if (ip6 != NULL) {
+ case AF_INET6:
ip6->ip6_plen = len - sizeof(struct ip6_hdr);
if (port) {
#if defined(SCTP_WITH_NO_CSUM)
@@ -11042,8 +11043,15 @@ sctp_send_resp_msg(struct sockaddr *src,
}
#endif
SCTP_IP6_OUTPUT(ret, o_pak, NULL, NULL, NULL, vrf_id);
- }
+ break;
#endif
+ default:
+ SCTPDBG(SCTP_DEBUG_OUTPUT1, "Unknown protocol (TSNH) type %d\n",
+ dst->sa_family);
+ sctp_m_freem(mout);
+ SCTP_LTRACE_ERR_RET_PKT(mout, NULL, NULL, NULL, SCTP_FROM_SCTP_OUTPUT, EFAULT);
+ return;
+ }
SCTP_STAT_INCR(sctps_sendpackets);
SCTP_STAT_INCR_COUNTER64(sctps_outpackets);
SCTP_STAT_INCR_COUNTER64(sctps_outcontrolchunks);
More information about the svn-src-stable
mailing list