--- src/Sessions.cc.old 2009-01-09 11:28:08.000000000 +0100 +++ src/Sessions.cc 2009-01-09 11:31:47.000000000 +0100 @@ -711,11 +711,11 @@ RecordVal* ip_hdr = new RecordVal(ip_hdr_type); int ip_hdr_len = ip->ip_hl * 4; - int pkt_len = ip->ip_len; + int ip_pkt_len = ntohs(ip->ip_len); ip_hdr->Assign(0, new Val(ip->ip_hl * 4, TYPE_COUNT)); ip_hdr->Assign(1, new Val(ip->ip_tos, TYPE_COUNT)); - ip_hdr->Assign(2, new Val(ntohs(ip->ip_len), TYPE_COUNT)); + ip_hdr->Assign(2, new Val(ip_pkt_len, TYPE_COUNT)); ip_hdr->Assign(3, new Val(ntohs(ip->ip_id), TYPE_COUNT)); ip_hdr->Assign(4, new Val(ip->ip_ttl, TYPE_COUNT)); ip_hdr->Assign(5, new Val(ip->ip_p, TYPE_COUNT)); @@ -735,7 +735,7 @@ RecordVal* tcp_hdr = new RecordVal(tcp_hdr_type); int tcp_hdr_len = tp->th_off * 4; - int data_len = pkt_len - ip_hdr_len - tcp_hdr_len; + int data_len = ip_pkt_len - ip_hdr_len - tcp_hdr_len; tcp_hdr->Assign(0, new PortVal(ntohs(tp->th_sport), TRANSPORT_TCP)); tcp_hdr->Assign(1, new PortVal(ntohs(tp->th_dport), TRANSPORT_TCP));