aboutsummaryrefslogtreecommitdiffstats
path: root/wiretap/iptrace.c
diff options
context:
space:
mode:
Diffstat (limited to 'wiretap/iptrace.c')
-rw-r--r--wiretap/iptrace.c12
1 files changed, 10 insertions, 2 deletions
diff --git a/wiretap/iptrace.c b/wiretap/iptrace.c
index 85c17ac5f2..64facaee72 100644
--- a/wiretap/iptrace.c
+++ b/wiretap/iptrace.c
@@ -283,11 +283,15 @@ iptrace_read_rec_1_0(wtap *wth, FILE_T fh, wtap_rec *rec, Buffer *buf,
}
rec->rec_type = REC_TYPE_PACKET;
- rec->presence_flags = WTAP_HAS_TS | WTAP_HAS_INTERFACE_ID;
+ rec->presence_flags = WTAP_HAS_TS | WTAP_HAS_INTERFACE_ID | WTAP_HAS_PACK_FLAGS;
rec->rec_header.packet_header.len = packet_size;
rec->rec_header.packet_header.caplen = packet_size;
rec->ts.secs = pntoh32(&header[IPTRACE_1_0_TV_SEC_OFFSET]);
rec->ts.nsecs = 0;
+ rec->rec_header.packet_header.pack_flags =
+ pkt_info[IPTRACE_1_0_TX_FLAGS_OFFSET] ?
+ (PACK_FLAGS_DIRECTION_OUTBOUND << PACK_FLAGS_DIRECTION_SHIFT) :
+ (PACK_FLAGS_DIRECTION_INBOUND << PACK_FLAGS_DIRECTION_SHIFT);
/* Fill in the pseudo-header. */
fill_in_pseudo_header(rec->rec_header.packet_header.pkt_encap,
@@ -550,11 +554,15 @@ iptrace_read_rec_2_0(wtap *wth, FILE_T fh, wtap_rec *rec, Buffer *buf,
}
rec->rec_type = REC_TYPE_PACKET;
- rec->presence_flags = WTAP_HAS_TS | WTAP_HAS_INTERFACE_ID;
+ rec->presence_flags = WTAP_HAS_TS | WTAP_HAS_INTERFACE_ID | WTAP_HAS_PACK_FLAGS;
rec->rec_header.packet_header.len = packet_size;
rec->rec_header.packet_header.caplen = packet_size;
rec->ts.secs = pntoh32(&pkt_info[IPTRACE_2_0_TV_SEC_OFFSET]);
rec->ts.nsecs = pntoh32(&pkt_info[IPTRACE_2_0_TV_NSEC_OFFSET]);
+ rec->rec_header.packet_header.pack_flags =
+ pkt_info[IPTRACE_2_0_TX_FLAGS_OFFSET] ?
+ (PACK_FLAGS_DIRECTION_OUTBOUND << PACK_FLAGS_DIRECTION_SHIFT) :
+ (PACK_FLAGS_DIRECTION_INBOUND << PACK_FLAGS_DIRECTION_SHIFT);
/* Fill in the pseudo-header. */
fill_in_pseudo_header(rec->rec_header.packet_header.pkt_encap,