From a982ca4b4c8f206307dbd43a5180201add77aebd Mon Sep 17 00:00:00 2001 From: swordfeng Date: Fri, 5 Jun 2015 20:43:04 +0800 Subject: [PATCH] fix sctp header structure --- net.c | 20 +++++++++----------- 1 file changed, 9 insertions(+), 11 deletions(-) diff --git a/net.c b/net.c index d22254f..75b23d4 100644 --- a/net.c +++ b/net.c @@ -75,7 +75,6 @@ struct SCTPHeader { uint16 srcport; uint16 dstport; uint32 veri_tag; - uint32 checksum; }; /* Structure of an IPv4 UDP pseudoheader. */ @@ -980,9 +979,9 @@ void net_process_return(void) if ((size_t) num < sizeof(struct IPHeader) + sizeof(struct ICMPHeader) + sizeof (struct IPHeader) + - sizeof (struct SCTPHeader)) + sizeof (struct TCPHeader)) return; - sctpheader = (struct SCTPHeader *)(packet + sizeof (struct IPHeader) + + tcpheader = (struct TCPHeader *)(packet + sizeof (struct IPHeader) + sizeof (struct ICMPHeader) + sizeof (struct IPHeader)); @@ -993,9 +992,9 @@ void net_process_return(void) #ifdef ENABLE_IPV6 case AF_INET6: if ( num < sizeof (struct ICMPHeader) + - sizeof (struct ip6_hdr) + sizeof (struct SCTPHeader) ) + sizeof (struct ip6_hdr) + sizeof (struct TCPHeader) ) return; - sctpheader = (struct SCTPHeader *) ( packet + + tcpheader = (struct TCPHeader *) ( packet + sizeof (struct ICMPHeader) + sizeof (struct ip6_hdr) ); @@ -1017,9 +1016,9 @@ void net_process_return(void) if ((size_t) num < sizeof(struct IPHeader) + sizeof(struct ICMPHeader) + sizeof (struct IPHeader) + - sizeof (struct TCPHeader)) + sizeof (struct SCTPHeader)) return; - tcpheader = (struct TCPHeader *)(packet + sizeof (struct IPHeader) + + sctpheader = (struct SCTPHeader *)(packet + sizeof (struct IPHeader) + sizeof (struct ICMPHeader) + sizeof (struct IPHeader)); @@ -1030,9 +1029,9 @@ void net_process_return(void) #ifdef ENABLE_IPV6 case AF_INET6: if ( num < sizeof (struct ICMPHeader) + - sizeof (struct ip6_hdr) + sizeof (struct TCPHeader) ) + sizeof (struct ip6_hdr) + sizeof (struct SCTPHeader) ) return; - tcpheader = (struct TCPHeader *) ( packet + + sctpheader = (struct SCTPHeader *) ( packet + sizeof (struct ICMPHeader) + sizeof (struct ip6_hdr) ); @@ -1042,11 +1041,10 @@ void net_process_return(void) break; #endif } - sequence = ntohs(tcpheader->srcport); + sequence = ntohs(sctpheader->srcport); } break; } - if (sequence) net_process_ping (sequence, mpls, (void *) fromaddress, now); } -- 2.47.2