diff options
author | Michael Mann <mmann78@netscape.net> | 2013-09-20 18:35:10 +0000 |
---|---|---|
committer | Michael Mann <mmann78@netscape.net> | 2013-09-20 18:35:10 +0000 |
commit | 61c9a77cd9245a3c50b66818c4bcd9024a6b297c (patch) | |
tree | 57eb2f8bc33b845a28bb38b882127f80240247d3 /epan/dissectors/packet-enip.c | |
parent | 4212b20048ff787c37b09cdba83382bac764be70 (diff) |
Bugfix a few items:
1. Correct Interface Flag enumeration
2. Dissect ARP data without making it look like its an ARP packet by disabling column writing.
svn path=/trunk/; revision=52157
Diffstat (limited to 'epan/dissectors/packet-enip.c')
-rw-r--r-- | epan/dissectors/packet-enip.c | 13 |
1 files changed, 10 insertions, 3 deletions
diff --git a/epan/dissectors/packet-enip.c b/epan/dissectors/packet-enip.c index 0c10ab2286..84eb589e0d 100644 --- a/epan/dissectors/packet-enip.c +++ b/epan/dissectors/packet-enip.c @@ -489,7 +489,8 @@ static const value_string enip_elink_iflags_neg_status_vals[] = { { 0, "Auto-negotiation in progress" }, { 1, "Auto-negotiation and speed detection failed" }, { 2, "Auto-negotiation failed but detected speed" }, - { 3, "Auto-negotiation not attempted. Forced speed and duplex." }, + { 3, "Successfully negotiatied speed and duplex" }, + { 4, "Auto-negotiation not attempted. Forced speed and duplex" }, { 0, NULL } }; @@ -1272,6 +1273,7 @@ int dissect_tcpip_last_conflict(packet_info *pinfo, proto_tree *tree, proto_item { tvbuff_t *next_tvb; + gboolean save_info; if (total_len < 35) { @@ -1285,10 +1287,15 @@ int dissect_tcpip_last_conflict(packet_info *pinfo, proto_tree *tree, proto_item if( tvb_get_guint8(tvb, offset) == 0 ) proto_tree_add_item(tree, hf_tcpip_lcd_arp_pdu, tvb, offset+7, 28, ENC_LITTLE_ENDIAN); else - { - /* Call ARP dissector */ + { + /* Dissect ARP PDU, but don't have it change column info */ + save_info = col_get_writable(pinfo->cinfo); + col_set_writable(pinfo->cinfo, FALSE); + next_tvb = tvb_new_subset(tvb, offset+7, 28, 28); call_dissector(arp_handle, next_tvb, pinfo, tree); + + col_set_writable(pinfo->cinfo, save_info); } return 35; |