summarylogtreecommitdiffstats
path: root/nemesis-proto_tcp.c.diff
blob: d5a921738b87a25c6337f94144175f4bf2eb4219 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
diff -wbBur nemesis-1.4/src/nemesis-functions.c nemesis-1.4.my/src/nemesis-functions.c
--- nemesis-1.4/src/nemesis-functions.c	2004-10-07 02:16:50.000000000 +0000
+++ nemesis-1.4.my/src/nemesis-functions.c	2009-06-19 13:51:30.000000000 +0000
@@ -8,6 +8,8 @@
  *
  */
 
+#include <net/ethernet.h>
+
 #if defined(HAVE_CONFIG_H)
     #include "config.h"
 #endif
diff -wbBur nemesis-1.4/src/nemesis-proto_tcp.c nemesis-1.4.my/src/nemesis-proto_tcp.c
--- nemesis-1.4/src/nemesis-proto_tcp.c	2003-10-31 21:29:37.000000000 +0000
+++ nemesis-1.4.my/src/nemesis-proto_tcp.c	2009-06-19 13:51:15.000000000 +0000
@@ -16,7 +16,7 @@
         FileData *ipod, FileData *tcpod, char *device)
 {
    int n;
-   u_int32_t tcp_packetlen = 0, tcp_meta_packetlen = 0;
+   u_int32_t tcp_packetlen = 0, tcp_meta_packetlen = 0, tcp_headerlen = 0, ip_headerlen = 0;
    static u_int8_t *pkt;
    static int sockfd = -1;
    struct libnet_link_int *l2 = NULL;
@@ -58,13 +58,20 @@
 #endif
     }
 
+    ip_headerlen = LIBNET_IP_H + ipod->file_s;
+    tcp_headerlen = LIBNET_TCP_H + tcpod->file_s;
+
     tcp_packetlen = link_offset + LIBNET_IP_H + LIBNET_TCP_H + pd->file_s + 
             ipod->file_s + tcpod->file_s;
 
-    tcp_meta_packetlen = tcp_packetlen - (link_offset + LIBNET_IP_H);
+    tcp_meta_packetlen = LIBNET_TCP_H + pd->file_s;
 
 #ifdef DEBUG
+    printf("DEBUG: link offsetlength %u.\n", link_offset);
+    printf("DEBUG: IP header  length %u.\n", ip_headerlen);
+    printf("DEBUG: TCP header length %u.\n", tcp_headerlen);
     printf("DEBUG: TCP packet length %u.\n", tcp_packetlen);
+    printf("DEBUG: TCP meta   length %u.\n", tcp_meta_packetlen);
     printf("DEBUG: IP  options size  %u.\n", ipod->file_s);
     printf("DEBUG: TCP options size  %u.\n", tcpod->file_s);
     printf("DEBUG: TCP payload size  %u.\n", pd->file_s);