diff options
author | João Valverde <joao.valverde@tecnico.ulisboa.pt> | 2015-10-05 13:51:58 +0100 |
---|---|---|
committer | Michael Mann <mmann78@netscape.net> | 2015-10-11 23:54:28 +0000 |
commit | 5823e6e50bad432ff7b6ea6c3c0dc2dc9232b469 (patch) | |
tree | d023251caa2d02acfb198076e8c932f3a326e2e8 /epan/dissectors/packet-dccp.c | |
parent | b752f97b0b1b23e7cb3df97364ebb78c6cd53222 (diff) |
Remove duplicate transport ports from proto tree summary
Don't display duplicate ports if transport name resolution is not
enabled (for UDP/TCP/DCCP).
Also introduce col_append_port() to handle info column port display
with name resolution in a uniform format.
Change-Id: Icb8ac45f726b7c539b4534c62061473e9b582753
Reviewed-on: https://code.wireshark.org/review/10804
Petri-Dish: Michael Mann <mmann78@netscape.net>
Tested-by: Petri Dish Buildbot <buildbot-no-reply@wireshark.org>
Reviewed-by: Michael Mann <mmann78@netscape.net>
Diffstat (limited to 'epan/dissectors/packet-dccp.c')
-rw-r--r-- | epan/dissectors/packet-dccp.c | 30 |
1 files changed, 9 insertions, 21 deletions
diff --git a/epan/dissectors/packet-dccp.c b/epan/dissectors/packet-dccp.c index 661cd202e3..308ecab0d0 100644 --- a/epan/dissectors/packet-dccp.c +++ b/epan/dissectors/packet-dccp.c @@ -598,7 +598,6 @@ dissect_dccp(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *data _U_ proto_tree *dccp_options_tree = NULL; proto_item *dccp_item = NULL; proto_item *hidden_item, *offset_item; - vec_t cksum_vec[4]; guint32 phdr[2]; guint16 computed_cksum; @@ -609,35 +608,24 @@ dissect_dccp(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *data _U_ guint advertised_dccp_header_len = 0; guint options_len = 0; e_dccphdr *dccph; - gchar *src_port_str, *dst_port_str; dccph = wmem_new0(wmem_packet_scope(), e_dccphdr); - - SET_ADDRESS(&dccph->ip_src, pinfo->src.type, pinfo->src.len, - pinfo->src.data); - SET_ADDRESS(&dccph->ip_dst, pinfo->dst.type, pinfo->dst.len, - pinfo->dst.data); + dccph->sport = tvb_get_ntohs(tvb, offset); + dccph->dport = tvb_get_ntohs(tvb, offset + 2); + COPY_ADDRESS_SHALLOW(&dccph->ip_src, &pinfo->src); + COPY_ADDRESS_SHALLOW(&dccph->ip_dst, &pinfo->dst); col_set_str(pinfo->cinfo, COL_PROTOCOL, "DCCP"); col_clear(pinfo->cinfo, COL_INFO); - /* Extract generic header */ - dccph->sport = tvb_get_ntohs(tvb, offset); - dccph->dport = tvb_get_ntohs(tvb, offset + 2); - - src_port_str = dccp_port_to_display(wmem_packet_scope(), dccph->sport); - dst_port_str = dccp_port_to_display(wmem_packet_scope(), dccph->dport); - col_add_lstr(pinfo->cinfo, COL_INFO, - src_port_str, - " "UTF8_RIGHTWARDS_ARROW" ", - dst_port_str, - COL_ADD_LSTR_TERMINATOR); + col_append_port(pinfo->cinfo, COL_INFO, PT_DCCP, dccph->sport, NULL); + col_append_port(pinfo->cinfo, COL_INFO, PT_DCCP, dccph->dport, UTF8_LONG_RIGHTWARDS_ARROW); dccp_item = proto_tree_add_item(tree, proto_dccp, tvb, offset, -1, ENC_NA); if (dccp_summary_in_tree) { - proto_item_append_text(dccp_item, ", Src Port: %s (%u), Dst Port: %s (%u)", - src_port_str, dccph->sport, - dst_port_str, dccph->dport); + proto_item_append_text(dccp_item, ", Src Port: %s, Dst Port: %s", + port_with_resolution_to_str(wmem_packet_scope(), PT_DCCP, dccph->sport), + port_with_resolution_to_str(wmem_packet_scope(), PT_DCCP, dccph->dport)); } dccp_tree = proto_item_add_subtree(dccp_item, ett_dccp); |