aboutsummaryrefslogtreecommitdiffstats
path: root/epan/dissectors/packet-dccp.c
diff options
context:
space:
mode:
authorJoão Valverde <joao.valverde@tecnico.ulisboa.pt>2015-10-05 13:51:58 +0100
committerMichael Mann <mmann78@netscape.net>2015-10-11 23:54:28 +0000
commit5823e6e50bad432ff7b6ea6c3c0dc2dc9232b469 (patch)
treed023251caa2d02acfb198076e8c932f3a326e2e8 /epan/dissectors/packet-dccp.c
parentb752f97b0b1b23e7cb3df97364ebb78c6cd53222 (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.c30
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);