]> git.ipfire.org Git - thirdparty/mtr.git/commitdiff
fix sctp header structure 81/head
authorswordfeng <swordfeng123@gmail.com>
Fri, 5 Jun 2015 12:43:04 +0000 (20:43 +0800)
committerswordfeng <swordfeng123@gmail.com>
Fri, 5 Jun 2015 12:43:04 +0000 (20:43 +0800)
net.c

diff --git a/net.c b/net.c
index d22254feca4bc6bfc0d411a1f05b6d85cd8b21f9..75b23d475e2696964ce8e56d84bbec14c3a9e0cf 100644 (file)
--- 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);
 }