diff options
-rw-r--r-- | epan/dissectors/packet-frame.c | 46 | ||||
-rw-r--r-- | epan/frame_data.c | 4 | ||||
-rw-r--r-- | epan/frame_data.h | 4 | ||||
-rw-r--r-- | file.c | 8 |
4 files changed, 27 insertions, 35 deletions
diff --git a/epan/dissectors/packet-frame.c b/epan/dissectors/packet-frame.c index e89d4759d8..d5d7f48fff 100644 --- a/epan/dissectors/packet-frame.c +++ b/epan/dissectors/packet-frame.c @@ -271,16 +271,16 @@ dissect_frame(tvbuff_t *tvb, packet_info *pinfo, proto_tree *parent_tree) proto_item_append_text(ti, " (%u bits)", cap_len * 8); } - if (pinfo->fd->flags.has_if_id) { + if (pinfo->phdr->presence_flags & WTAP_HAS_INTERFACE_ID) { proto_item_append_text(ti, " on interface %u", - pinfo->fd->interface_id); + pinfo->phdr->interface_id); } - if (pinfo->fd->flags.has_pack_flags) { - if (pinfo->fd->pack_flags & 0x00000001) { + if (pinfo->phdr->presence_flags & WTAP_HAS_PACK_FLAGS) { + if (pinfo->phdr->pack_flags & 0x00000001) { proto_item_append_text(ti, " (inbound)"); pinfo->p2p_dir = P2P_DIR_RECV; } - if (pinfo->fd->pack_flags & 0x00000002) { + if (pinfo->phdr->pack_flags & 0x00000002) { proto_item_append_text(ti, " (outbound)"); pinfo->p2p_dir = P2P_DIR_SENT; } @@ -288,33 +288,33 @@ dissect_frame(tvbuff_t *tvb, packet_info *pinfo, proto_tree *parent_tree) fh_tree = proto_item_add_subtree(ti, ett_frame); - if (pinfo->fd->flags.has_if_id && proto_field_is_referenced(tree, hf_frame_interface_id)) { - const char *interface_name = epan_get_interface_name(pinfo->epan, pinfo->fd->interface_id); + if (pinfo->phdr->presence_flags & WTAP_HAS_INTERFACE_ID && proto_field_is_referenced(tree, hf_frame_interface_id)) { + const char *interface_name = epan_get_interface_name(pinfo->epan, pinfo->phdr->interface_id); if (interface_name) - proto_tree_add_uint_format_value(fh_tree, hf_frame_interface_id, tvb, 0, 0, pinfo->fd->interface_id, "%u (%s)", pinfo->fd->interface_id, interface_name); + proto_tree_add_uint_format_value(fh_tree, hf_frame_interface_id, tvb, 0, 0, pinfo->phdr->interface_id, "%u (%s)", pinfo->phdr->interface_id, interface_name); else - proto_tree_add_uint(fh_tree, hf_frame_interface_id, tvb, 0, 0, pinfo->fd->interface_id); + proto_tree_add_uint(fh_tree, hf_frame_interface_id, tvb, 0, 0, pinfo->phdr->interface_id); } - if (pinfo->fd->flags.has_pack_flags) { + if (pinfo->phdr->presence_flags & WTAP_HAS_PACK_FLAGS) { proto_tree *flags_tree; proto_item *flags_item; - flags_item = proto_tree_add_uint(fh_tree, hf_frame_pack_flags, tvb, 0, 0, pinfo->fd->pack_flags); + flags_item = proto_tree_add_uint(fh_tree, hf_frame_pack_flags, tvb, 0, 0, pinfo->phdr->pack_flags); flags_tree = proto_item_add_subtree(flags_item, ett_flags); - proto_tree_add_uint(flags_tree, hf_frame_pack_direction, tvb, 0, 0, pinfo->fd->pack_flags); - proto_tree_add_uint(flags_tree, hf_frame_pack_reception_type, tvb, 0, 0, pinfo->fd->pack_flags); - proto_tree_add_uint(flags_tree, hf_frame_pack_fcs_length, tvb, 0, 0, pinfo->fd->pack_flags); - proto_tree_add_uint(flags_tree, hf_frame_pack_reserved, tvb, 0, 0, pinfo->fd->pack_flags); - proto_tree_add_boolean(flags_tree, hf_frame_pack_crc_error, tvb, 0, 0, pinfo->fd->pack_flags); - proto_tree_add_boolean(flags_tree, hf_frame_pack_wrong_packet_too_long_error, tvb, 0, 0, pinfo->fd->pack_flags); - proto_tree_add_boolean(flags_tree, hf_frame_pack_wrong_packet_too_short_error, tvb, 0, 0, pinfo->fd->pack_flags); - proto_tree_add_boolean(flags_tree, hf_frame_pack_wrong_inter_frame_gap_error, tvb, 0, 0, pinfo->fd->pack_flags); - proto_tree_add_boolean(flags_tree, hf_frame_pack_unaligned_frame_error, tvb, 0, 0, pinfo->fd->pack_flags); - proto_tree_add_boolean(flags_tree, hf_frame_pack_start_frame_delimiter_error, tvb, 0, 0, pinfo->fd->pack_flags); - proto_tree_add_boolean(flags_tree, hf_frame_pack_preamble_error, tvb, 0, 0, pinfo->fd->pack_flags); - proto_tree_add_boolean(flags_tree, hf_frame_pack_symbol_error, tvb, 0, 0, pinfo->fd->pack_flags); + proto_tree_add_uint(flags_tree, hf_frame_pack_direction, tvb, 0, 0, pinfo->phdr->pack_flags); + proto_tree_add_uint(flags_tree, hf_frame_pack_reception_type, tvb, 0, 0, pinfo->phdr->pack_flags); + proto_tree_add_uint(flags_tree, hf_frame_pack_fcs_length, tvb, 0, 0, pinfo->phdr->pack_flags); + proto_tree_add_uint(flags_tree, hf_frame_pack_reserved, tvb, 0, 0, pinfo->phdr->pack_flags); + proto_tree_add_boolean(flags_tree, hf_frame_pack_crc_error, tvb, 0, 0, pinfo->phdr->pack_flags); + proto_tree_add_boolean(flags_tree, hf_frame_pack_wrong_packet_too_long_error, tvb, 0, 0, pinfo->phdr->pack_flags); + proto_tree_add_boolean(flags_tree, hf_frame_pack_wrong_packet_too_short_error, tvb, 0, 0, pinfo->phdr->pack_flags); + proto_tree_add_boolean(flags_tree, hf_frame_pack_wrong_inter_frame_gap_error, tvb, 0, 0, pinfo->phdr->pack_flags); + proto_tree_add_boolean(flags_tree, hf_frame_pack_unaligned_frame_error, tvb, 0, 0, pinfo->phdr->pack_flags); + proto_tree_add_boolean(flags_tree, hf_frame_pack_start_frame_delimiter_error, tvb, 0, 0, pinfo->phdr->pack_flags); + proto_tree_add_boolean(flags_tree, hf_frame_pack_preamble_error, tvb, 0, 0, pinfo->phdr->pack_flags); + proto_tree_add_boolean(flags_tree, hf_frame_pack_symbol_error, tvb, 0, 0, pinfo->phdr->pack_flags); } proto_tree_add_int(fh_tree, hf_frame_wtap_encap, tvb, 0, 0, pinfo->fd->lnk_t); diff --git a/epan/frame_data.c b/epan/frame_data.c index c2cbed7b50..a7d66c73bf 100644 --- a/epan/frame_data.c +++ b/epan/frame_data.c @@ -263,7 +263,6 @@ frame_data_init(frame_data *fdata, guint32 num, { fdata->pfd = NULL; fdata->num = num; - fdata->interface_id = phdr->interface_id; fdata->pkt_len = phdr->len; fdata->cum_bytes = cum_bytes + phdr->len; fdata->cap_len = phdr->caplen; @@ -272,7 +271,6 @@ frame_data_init(frame_data *fdata, guint32 num, /* To save some memory, we coerce it into a gint16 */ g_assert(phdr->pkt_encap <= G_MAXINT16); fdata->lnk_t = (gint16) phdr->pkt_encap; - fdata->pack_flags = phdr->pack_flags; fdata->flags.passed_dfilter = 0; fdata->flags.dependent_of_displayed = 0; fdata->flags.encoding = PACKET_CHAR_ENC_CHAR_ASCII; @@ -281,8 +279,6 @@ frame_data_init(frame_data *fdata, guint32 num, fdata->flags.ref_time = 0; fdata->flags.ignored = 0; fdata->flags.has_ts = (phdr->presence_flags & WTAP_HAS_TS) ? 1 : 0; - fdata->flags.has_if_id = (phdr->presence_flags & WTAP_HAS_INTERFACE_ID) ? 1 : 0; - fdata->flags.has_pack_flags = (phdr->presence_flags & WTAP_HAS_PACK_FLAGS) ? 1 : 0; fdata->color_filter = NULL; fdata->abs_ts.secs = phdr->ts.secs; fdata->abs_ts.nsecs = phdr->ts.nsecs; diff --git a/epan/frame_data.h b/epan/frame_data.h index 4fb31e9750..2545b7577c 100644 --- a/epan/frame_data.h +++ b/epan/frame_data.h @@ -58,8 +58,6 @@ typedef enum { typedef struct _frame_data { GSList *pfd; /**< Per frame proto data */ guint32 num; /**< Frame number */ - guint32 interface_id; /**< identifier of the interface. */ - guint32 pack_flags; /**< Packet Flags */ guint32 pkt_len; /**< Packet length */ guint32 cap_len; /**< Amount actually captured */ guint32 cum_bytes; /**< Cumulative bytes into the capture */ @@ -75,8 +73,6 @@ typedef struct _frame_data { unsigned int ref_time : 1; /**< 1 = marked as a reference time frame, 0 = normal */ unsigned int ignored : 1; /**< 1 = ignore this frame, 0 = normal */ unsigned int has_ts : 1; /**< 1 = has time stamp, 0 = no time stamp */ - unsigned int has_if_id : 1; /**< 1 = has interface ID, 0 = no interface ID */ - unsigned int has_pack_flags : 1; /**< 1 = has packet flags, 0 = no packet flags */ } flags; const void *color_filter; /**< Per-packet matching color_filter_t object */ @@ -3996,9 +3996,9 @@ save_packet(capture_file *cf _U_, frame_data *fdata, hdr.presence_flags = 0; if (fdata->flags.has_ts) hdr.presence_flags |= WTAP_HAS_TS; - if (fdata->flags.has_if_id) + if (phdr->presence_flags & WTAP_HAS_INTERFACE_ID) hdr.presence_flags |= WTAP_HAS_INTERFACE_ID; - if (fdata->flags.has_pack_flags) + if (phdr->presence_flags & WTAP_HAS_PACK_FLAGS) hdr.presence_flags |= WTAP_HAS_PACK_FLAGS; hdr.ts.secs = fdata->abs_ts.secs; hdr.ts.nsecs = fdata->abs_ts.nsecs; @@ -4006,9 +4006,9 @@ save_packet(capture_file *cf _U_, frame_data *fdata, hdr.len = fdata->pkt_len; hdr.pkt_encap = fdata->lnk_t; /* pcapng */ - hdr.interface_id = fdata->interface_id; /* identifier of the interface. */ + hdr.interface_id = phdr->interface_id; /* identifier of the interface. */ /* options */ - hdr.pack_flags = fdata->pack_flags; + hdr.pack_flags = phdr->pack_flags; hdr.opt_comment = fdata->opt_comment; /* NULL if not available */ /* pseudo */ hdr.pseudo_header = phdr->pseudo_header; |