summaryrefslogtreecommitdiff
path: root/ui
diff options
context:
space:
mode:
authorMichael Mann <mmann78@netscape.net>2015-01-04 21:40:05 -0500
committerMichael Mann <mmann78@netscape.net>2015-01-05 13:55:04 +0000
commit22b4ec91c006fec65e655ccbb0dbbc32438f820b (patch)
tree033dc9de28b8a79550a4dd769fcfb249df4be38c /ui
parent9a7318a184e25e08d1c8449e3f826e0a5c66ca3b (diff)
downloadwireshark-22b4ec91c006fec65e655ccbb0dbbc32438f820b.tar.gz
Replace ep_display_to_address with wmem equivalent display_to_address.
Almost all instances require using "manual" memory management, but it gets some ep_ calls out of the GUI. Change-Id: Ifa7303766b08d09442ccf3d7063cbe061578ecd9 Reviewed-on: https://code.wireshark.org/review/6318 Reviewed-by: Michael Mann <mmann78@netscape.net>
Diffstat (limited to 'ui')
-rw-r--r--ui/cli/tap-endpoints.c9
-rw-r--r--ui/cli/tap-iousers.c16
-rw-r--r--ui/cli/tap-rtp.c10
-rw-r--r--ui/gtk/conversations_table.c19
-rw-r--r--ui/gtk/graph_analysis.c6
-rw-r--r--ui/gtk/hostlist_table.c11
-rw-r--r--ui/gtk/iax2_analysis.c55
-rw-r--r--ui/gtk/mcast_stream.c4
-rw-r--r--ui/gtk/mcast_stream_dlg.c20
-rw-r--r--ui/gtk/rtp_analysis.c58
-rw-r--r--ui/gtk/rtp_player.c27
-rw-r--r--ui/gtk/rtp_stream_dlg.c27
-rw-r--r--ui/gtk/voip_calls_dlg.c4
-rw-r--r--ui/gtk/wlan_stat_dlg.c30
-rw-r--r--ui/qt/conversation_dialog.cpp25
-rw-r--r--ui/qt/endpoint_dialog.cpp12
-rw-r--r--ui/qt/lbm_uimflow_dialog.cpp5
-rw-r--r--ui/qt/sequence_diagram.cpp6
-rw-r--r--ui/qt/sequence_dialog.cpp5
-rw-r--r--ui/qt/voip_calls_dialog.cpp5
-rw-r--r--ui/tap-rtp-common.c4
-rw-r--r--ui/tap-sequence-analysis.c11
-rw-r--r--ui/traffic_table_ui.c6
23 files changed, 261 insertions, 114 deletions
diff --git a/ui/cli/tap-endpoints.c b/ui/cli/tap-endpoints.c
index e9aa797502..1a6946d2fa 100644
--- a/ui/cli/tap-endpoints.c
+++ b/ui/cli/tap-endpoints.c
@@ -71,17 +71,19 @@ endpoints_draw(void *arg)
for (i=0; (iu->hash.conv_array && i < iu->hash.conv_array->len); i++) {
guint64 tot_frames;
+ gchar* conversation_str;
host = &g_array_index(iu->hash.conv_array, hostlist_talker_t, i);
tot_frames = host->rx_frames + host->tx_frames;
if (tot_frames == last_frames) {
+ /* XXX - TODO: make name resolution configurable (through gbl_resolv_flags?) */
+ conversation_str = (char*)get_conversation_address(NULL, &host->myaddress, TRUE);
if (display_port) {
printf("%-20s %5s %6" G_GINT64_MODIFIER "u %9" G_GINT64_MODIFIER
"u %6" G_GINT64_MODIFIER "u %9" G_GINT64_MODIFIER "u %6"
G_GINT64_MODIFIER "u %9" G_GINT64_MODIFIER "u \n",
- /* XXX - TODO: make name resolution configurable (through gbl_resolv_flags?) */
- get_conversation_address(&host->myaddress, TRUE),
+ conversation_str,
/* XXX - TODO: make port resolution configurable (through gbl_resolv_flags?) */
get_conversation_port(host->port, host->ptype, TRUE),
host->tx_frames+host->rx_frames, host->tx_bytes+host->rx_bytes,
@@ -92,12 +94,13 @@ endpoints_draw(void *arg)
"u %6" G_GINT64_MODIFIER "u %9" G_GINT64_MODIFIER "u %6"
G_GINT64_MODIFIER "u %9" G_GINT64_MODIFIER "u \n",
/* XXX - TODO: make name resolution configurable (through gbl_resolv_flags?) */
- get_conversation_address(&host->myaddress, TRUE),
+ conversation_str,
host->tx_frames+host->rx_frames, host->tx_bytes+host->rx_bytes,
host->tx_frames, host->tx_bytes,
host->rx_frames, host->rx_bytes);
}
+ wmem_free(NULL, conversation_str);
}
}
max_frames = last_frames;
diff --git a/ui/cli/tap-iousers.c b/ui/cli/tap-iousers.c
index 1100c0d6dc..c3bc5320df 100644
--- a/ui/cli/tap-iousers.c
+++ b/ui/cli/tap-iousers.c
@@ -94,18 +94,20 @@ iousers_draw(void *arg)
for (i=0; (iu->hash.conv_array && i < iu->hash.conv_array->len); i++) {
guint64 tot_frames;
+ char *src_addr, *dst_addr;
iui = &g_array_index(iu->hash.conv_array, conv_item_t, i);
tot_frames = iui->rx_frames + iui->tx_frames;
if (tot_frames == last_frames) {
+ /* XXX - TODO: make name / port resolution configurable (through gbl_resolv_flags?) */
+ src_addr = (char*)get_conversation_address(NULL, &iui->src_address, TRUE);
+ dst_addr = (char*)get_conversation_address(NULL, &iui->dst_address, TRUE);
if (display_ports) {
char *src, *dst;
-
- /* XXX - TODO: make name / port resolution configurable (through gbl_resolv_flags?) */
- src = wmem_strconcat(NULL, get_conversation_address(&iui->src_address, TRUE),
+ src = wmem_strconcat(NULL, src_addr,
":", get_conversation_port(iui->src_port, iui->ptype, TRUE), NULL);
- dst = wmem_strconcat(NULL, get_conversation_address(&iui->dst_address, TRUE),
+ dst = wmem_strconcat(NULL, dst_addr,
":", get_conversation_port(iui->dst_port, iui->ptype, TRUE), NULL);
printf("%-26s <-> %-26s %6" G_GINT64_MODIFIER "u %9" G_GINT64_MODIFIER
"u %6" G_GINT64_MODIFIER "u %9" G_GINT64_MODIFIER "u %6"
@@ -122,8 +124,7 @@ iousers_draw(void *arg)
printf("%-20s <-> %-20s %6" G_GINT64_MODIFIER "u %9" G_GINT64_MODIFIER
"u %6" G_GINT64_MODIFIER "u %9" G_GINT64_MODIFIER "u %6"
G_GINT64_MODIFIER "u %9" G_GINT64_MODIFIER "u ",
- /* XXX - TODO: make name resolution configurable (through gbl_resolv_flags?) */
- get_conversation_address(&iui->src_address, TRUE), get_conversation_address(&iui->dst_address, TRUE),
+ src_addr, dst_addr,
iui->tx_frames, iui->tx_bytes,
iui->rx_frames, iui->rx_bytes,
iui->tx_frames+iui->rx_frames,
@@ -131,6 +132,9 @@ iousers_draw(void *arg)
);
}
+ wmem_free(NULL, src_addr);
+ wmem_free(NULL, dst_addr);
+
switch (timestamp_get_type()) {
case TS_ABSOLUTE:
tm_time = localtime(&iui->start_abs_time.secs);
diff --git a/ui/cli/tap-rtp.c b/ui/cli/tap-rtp.c
index 97a86dc2b1..76d15877ea 100644
--- a/ui/cli/tap-rtp.c
+++ b/ui/cli/tap-rtp.c
@@ -65,6 +65,7 @@ rtp_streams_stat_draw(void *arg _U_)
gint32 lost;
double perc;
char *savelocale;
+ char *src_addr, *dst_addr;
printf("========================= RTP Streams ========================\n");
printf("%15s %5s %15s %5s %10s %16s %5s %12s %15s %15s %15s %s\n","Src IP addr", "Port", "Dest IP addr", "Port", "SSRC", "Payload", "Pkts", "Lost", "Max Delta(ms)", "Max Jitter(ms)", "Mean Jitter(ms)", "Problems?");
@@ -105,10 +106,12 @@ rtp_streams_stat_draw(void *arg _U_)
perc = 0;
}
+ src_addr = (char*)address_to_display(NULL, &(strinfo->src_addr));
+ dst_addr = (char*)address_to_display(NULL, &(strinfo->dest_addr));
printf("%15s %5u %15s %5u 0x%08X %16s %5u %5d (%.1f%%) %15.2f %15.2f %15.2f %s\n",
- ep_address_to_display(&(strinfo->src_addr)),
+ src_addr,
strinfo->src_port,
- ep_address_to_display(&(strinfo->dest_addr)),
+ dst_addr,
strinfo->dest_port,
strinfo->ssrc,
payload_type,
@@ -122,7 +125,8 @@ rtp_streams_stat_draw(void *arg _U_)
list = g_list_next(list);
g_free(payload_type);
-
+ wmem_free(NULL, src_addr);
+ wmem_free(NULL, dst_addr);
}
printf("==============================================================\n");
diff --git a/ui/gtk/conversations_table.c b/ui/gtk/conversations_table.c
index 5f9998667f..db59acbc11 100644
--- a/ui/gtk/conversations_table.c
+++ b/ui/gtk/conversations_table.c
@@ -1593,16 +1593,21 @@ draw_ct_table_addresses(conversations_table *ct)
while (iter_valid) {
conv_item_t *conv_item;
+ char *src_addr, *dst_addr;
gtk_tree_model_get(GTK_TREE_MODEL(store), &iter, CONV_INDEX_COLUMN, &idx, -1);
conv_item = &g_array_index(ct->hash.conv_array, conv_item_t, idx);
+ src_addr = (char*)get_conversation_address(NULL, &conv_item->src_address, ct->resolve_names);
+ dst_addr = (char*)get_conversation_address(NULL, &conv_item->dst_address, ct->resolve_names);
gtk_list_store_set (store, &iter,
- CONV_COLUMN_SRC_ADDR, get_conversation_address(&conv_item->src_address, ct->resolve_names),
+ CONV_COLUMN_SRC_ADDR, src_addr,
CONV_COLUMN_SRC_PORT, get_conversation_port(conv_item->src_port, conv_item->ptype, ct->resolve_names),
- CONV_COLUMN_DST_ADDR, get_conversation_address(&conv_item->dst_address, ct->resolve_names),
+ CONV_COLUMN_DST_ADDR, dst_addr,
CONV_COLUMN_DST_PORT, get_conversation_port(conv_item->dst_port, conv_item->ptype, ct->resolve_names),
-1);
iter_valid = gtk_tree_model_iter_next(GTK_TREE_MODEL(store), &iter);
+ wmem_free(NULL, src_addr);
+ wmem_free(NULL, dst_addr);
}
gtk_tree_view_set_model(GTK_TREE_VIEW(ct->table), GTK_TREE_MODEL(store));
@@ -1707,11 +1712,15 @@ draw_ct_table_data(conversations_table *ct)
CONV_COLUMN_BPS_BA, rx_ptr,
-1);
} else {
+ char *src_addr, *dst_addr;
+
+ src_addr = (char*)get_conversation_address(NULL, &conv_item->src_address, ct->resolve_names);
+ dst_addr = (char*)get_conversation_address(NULL, &conv_item->dst_address, ct->resolve_names);
/* New row. All entries, including fixed ones */
gtk_list_store_insert_with_values(store, &iter, G_MAXINT,
- CONV_COLUMN_SRC_ADDR, get_conversation_address(&conv_item->src_address, ct->resolve_names),
+ CONV_COLUMN_SRC_ADDR, src_addr,
CONV_COLUMN_SRC_PORT, get_conversation_port(conv_item->src_port, conv_item->ptype, ct->resolve_names),
- CONV_COLUMN_DST_ADDR, get_conversation_address(&conv_item->dst_address, ct->resolve_names),
+ CONV_COLUMN_DST_ADDR, dst_addr,
CONV_COLUMN_DST_PORT, get_conversation_port(conv_item->dst_port, conv_item->ptype, ct->resolve_names),
CONV_COLUMN_PACKETS, conv_item->tx_frames+conv_item->rx_frames,
CONV_COLUMN_BYTES, conv_item->tx_bytes+conv_item->rx_bytes,
@@ -1725,6 +1734,8 @@ draw_ct_table_data(conversations_table *ct)
CONV_COLUMN_BPS_BA, rx_ptr,
CONV_INDEX_COLUMN, idx,
-1);
+ wmem_free(NULL, src_addr);
+ wmem_free(NULL, dst_addr);
}
iter_valid = gtk_tree_model_iter_next(GTK_TREE_MODEL(store), &iter);
diff --git a/ui/gtk/graph_analysis.c b/ui/gtk/graph_analysis.c
index eebaef016d..da81d78b01 100644
--- a/ui/gtk/graph_analysis.c
+++ b/ui/gtk/graph_analysis.c
@@ -618,9 +618,13 @@ static void dialog_graph_draw(graph_analysis_data_t *user_data)
}
/* Draw the node names on top and the division lines */
for (i=0; i<user_data->graph_info->num_nodes; i++) {
+ char* addr_str;
+
/* print the node identifiers */
/* XXX we assign 5 pixels per character in the node identity */
- g_strlcpy(label_string, ep_address_to_display(&(user_data->graph_info->nodes[i])), NODE_WIDTH/5);
+ addr_str = (char*)address_to_display(NULL, &(user_data->graph_info->nodes[i]));
+ g_strlcpy(label_string, addr_str, NODE_WIDTH/5);
+ wmem_free(NULL, addr_str);
pango_layout_set_text(layout, label_string, -1);
pango_layout_get_pixel_size(layout, &label_width, &label_height);
#if GTK_CHECK_VERSION(2,22,0)
diff --git a/ui/gtk/hostlist_table.c b/ui/gtk/hostlist_table.c
index a0c62af529..5bdb12fbfc 100644
--- a/ui/gtk/hostlist_table.c
+++ b/ui/gtk/hostlist_table.c
@@ -476,16 +476,19 @@ draw_hostlist_table_addresses(hostlist_table *hl)
while (iter_valid) {
hostlist_talker_t *host;
+ char* addr_str;
gtk_tree_model_get(GTK_TREE_MODEL(store), &iter, ENDP_INDEX_COLUMN, &idx, -1);
host = &g_array_index(hl->hash.conv_array, hostlist_talker_t, idx);
+ addr_str = (char*)get_conversation_address(NULL, &host->myaddress, hl->resolve_names);
gtk_list_store_set (store, &iter,
- ENDP_COLUMN_ADDR, get_conversation_address(&host->myaddress, hl->resolve_names),
+ ENDP_COLUMN_ADDR, addr_str,
ENDP_COLUMN_PORT, get_conversation_port(host->port, host->ptype, hl->resolve_names),
-1);
iter_valid = gtk_tree_model_iter_next(GTK_TREE_MODEL(store), &iter);
+ wmem_free(NULL, addr_str);
}
gtk_tree_view_set_model(GTK_TREE_VIEW(hl->table), GTK_TREE_MODEL(store));
g_object_unref(store);
@@ -551,6 +554,7 @@ draw_hostlist_table_data(hostlist_table *hl)
}
host->modified = FALSE;
if (!iter_valid) {
+ char* addr_str;
#ifdef HAVE_GEOIP
char *geoip[ENDP_NUM_GEOIP_COLUMNS];
guint j;
@@ -593,8 +597,9 @@ draw_hostlist_table_data(hostlist_table *hl)
}
#endif /* HAVE_GEOIP */
+ addr_str = (char*)get_conversation_address(NULL, &host->myaddress, hl->resolve_names);
gtk_list_store_insert_with_values( store, &iter, G_MAXINT,
- ENDP_COLUMN_ADDR, get_conversation_address(&host->myaddress, hl->resolve_names),
+ ENDP_COLUMN_ADDR, addr_str,
ENDP_COLUMN_PORT, get_conversation_port(host->port, host->ptype, hl->resolve_names),
ENDP_COLUMN_PACKETS, host->tx_frames+host->rx_frames,
ENDP_COLUMN_BYTES, host->tx_bytes+host->rx_bytes,
@@ -619,7 +624,7 @@ draw_hostlist_table_data(hostlist_table *hl)
#endif
ENDP_INDEX_COLUMN, idx,
-1);
-
+ wmem_free(NULL, addr_str);
#ifdef HAVE_GEOIP
for (j = 0; j < ENDP_NUM_GEOIP_COLUMNS; j++)
g_free(geoip[j]);
diff --git a/ui/gtk/iax2_analysis.c b/ui/gtk/iax2_analysis.c
index 53d1e4da50..28efc2eb22 100644
--- a/ui/gtk/iax2_analysis.c
+++ b/ui/gtk/iax2_analysis.c
@@ -823,21 +823,31 @@ static void
dialog_graph_set_title(user_data_t* user_data)
{
char *title;
+ char *src_fwd_addr, *dst_fwd_addr, *src_rev_addr, *dst_rev_addr;
if (!user_data->dlg.dialog_graph.window) {
return;
}
+
+ src_fwd_addr = (char*)address_to_display(NULL, &(user_data->ip_src_fwd));
+ dst_fwd_addr = (char*)address_to_display(NULL, &(user_data->ip_dst_fwd));
+ src_rev_addr = (char*)address_to_display(NULL, &(user_data->ip_src_rev));
+ dst_rev_addr = (char*)address_to_display(NULL, &(user_data->ip_dst_rev));
title = g_strdup_printf("IAX2 Graph Analysis Forward: %s:%u to %s:%u Reverse: %s:%u to %s:%u",
- ep_address_to_display(&(user_data->ip_src_fwd)),
+ src_fwd_addr,
user_data->port_src_fwd,
- ep_address_to_display(&(user_data->ip_dst_fwd)),
+ dst_fwd_addr,
user_data->port_dst_fwd,
- ep_address_to_display(&(user_data->ip_src_rev)),
+ src_rev_addr,
user_data->port_src_rev,
- ep_address_to_display(&(user_data->ip_dst_rev)),
+ dst_rev_addr,
user_data->port_dst_rev);
gtk_window_set_title(GTK_WINDOW(user_data->dlg.dialog_graph.window), title);
+ wmem_free(NULL, src_fwd_addr);
+ wmem_free(NULL, dst_fwd_addr);
+ wmem_free(NULL, src_rev_addr);
+ wmem_free(NULL, dst_rev_addr);
g_free(title);
}
@@ -848,6 +858,7 @@ static void
dialog_graph_reset(user_data_t* user_data)
{
int i, j;
+ char *src_addr, *dst_addr;
user_data->dlg.dialog_graph.needs_redraw = TRUE;
for (i = 0; i < MAX_GRAPHS; i++) {
@@ -866,25 +877,31 @@ dialog_graph_reset(user_data_t* user_data)
for (i = 0; i < MAX_GRAPHS; i++) {
/* it is forward */
if (i < 2) {
+ src_addr = (char*)address_to_display(NULL, &(user_data->ip_src_fwd));
+ dst_addr = (char*)address_to_display(NULL, &(user_data->ip_dst_fwd));
g_snprintf(user_data->dlg.dialog_graph.graph[i].title,
sizeof (user_data->dlg.dialog_graph.graph[0].title),
"%s: %s:%u to %s:%u",
graph_descr[i],
- ep_address_to_display(&(user_data->ip_src_fwd)),
+ src_addr,
user_data->port_src_fwd,
- ep_address_to_display(&(user_data->ip_dst_fwd)),
+ dst_addr,
user_data->port_dst_fwd);
/* it is reverse */
} else {
+ src_addr = (char*)address_to_display(NULL, &(user_data->ip_src_rev));
+ dst_addr = (char*)address_to_display(NULL, &(user_data->ip_dst_rev));
g_snprintf(user_data->dlg.dialog_graph.graph[i].title,
sizeof(user_data->dlg.dialog_graph.graph[0].title),
"%s: %s:%u to %s:%u",
graph_descr[i],
- ep_address_to_display(&(user_data->ip_src_rev)),
+ src_addr,
user_data->port_src_rev,
- ep_address_to_display(&(user_data->ip_dst_rev)),
+ dst_addr,
user_data->port_dst_rev);
}
+ wmem_free(NULL, src_addr);
+ wmem_free(NULL, dst_addr);
}
dialog_graph_set_title(user_data);
@@ -3319,8 +3336,7 @@ create_iax2_dialog(user_data_t* user_data)
gchar label_forward[150];
gchar label_reverse[150];
- gchar str_ip_src[16];
- gchar str_ip_dst[16];
+ char *src_addr, *dst_addr;
window = dlg_window_new("Wireshark: IAX2 Stream Analysis"); /* transient_for top_level */
gtk_window_set_default_size(GTK_WINDOW(window), 700, 400);
@@ -3332,20 +3348,21 @@ create_iax2_dialog(user_data_t* user_data)
gtk_widget_show(main_vb);
/* Notebooks... */
- g_strlcpy(str_ip_src, ep_address_to_display(&(user_data->ip_src_fwd)), 16);
- g_strlcpy(str_ip_dst, ep_address_to_display(&(user_data->ip_dst_fwd)), 16);
-
+ src_addr = (char*)address_to_display(NULL, &(user_data->ip_src_fwd));
+ dst_addr = (char*)address_to_display(NULL, &(user_data->ip_dst_fwd));
g_snprintf(label_forward, sizeof(label_forward),
"Analysing stream from %s port %u to %s port %u ",
- str_ip_src, user_data->port_src_fwd, str_ip_dst, user_data->port_dst_fwd);
-
-
- g_strlcpy(str_ip_src, ep_address_to_display(&(user_data->ip_src_rev)), 16);
- g_strlcpy(str_ip_dst, ep_address_to_display(&(user_data->ip_dst_rev)), 16);
+ src_addr, user_data->port_src_fwd, dst_addr, user_data->port_dst_fwd);
+ wmem_free(NULL, src_addr);
+ wmem_free(NULL, dst_addr);
+ src_addr = (char*)address_to_display(NULL, &(user_data->ip_src_rev));
+ dst_addr = (char*)address_to_display(NULL, &(user_data->ip_dst_rev));
g_snprintf(label_reverse, sizeof(label_reverse),
"Analysing stream from %s port %u to %s port %u ",
- str_ip_src, user_data->port_src_rev, str_ip_dst, user_data->port_dst_rev);
+ src_addr, user_data->port_src_rev, dst_addr, user_data->port_dst_rev);
+ wmem_free(NULL, src_addr);
+ wmem_free(NULL, dst_addr);
/* Start a notebook for flipping between sets of changes */
notebook = gtk_notebook_new();
diff --git a/ui/gtk/mcast_stream.c b/ui/gtk/mcast_stream.c
index f1514bd7e6..cd9f63d308 100644
--- a/ui/gtk/mcast_stream.c
+++ b/ui/gtk/mcast_stream.c
@@ -193,8 +193,8 @@ mcaststream_packet(void *arg, packet_info *pinfo, epan_dissect_t *edt _U_, const
/* not in the list? then create a new entry */
if (!strinfo) {
- /*printf("nov sip %s sp %d dip %s dp %d\n", g_strdup(ep_address_to_display(&(pinfo->src))),
- pinfo->srcport, g_strdup(ep_address_to_display(&(pinfo->dst))), pinfo->destport);*/
+ /*printf("nov sip %s sp %d dip %s dp %d\n", address_to_display(NULL, &(pinfo->src)),
+ pinfo->srcport, address_to_display(NULL, &(pinfo->dst)), pinfo->destport);*/
tmp_strinfo.npackets = 0;
tmp_strinfo.apackets = 0;
tmp_strinfo.first_frame_num = pinfo->fd->num;
diff --git a/ui/gtk/mcast_stream_dlg.c b/ui/gtk/mcast_stream_dlg.c
index 71ea3d3270..3bdb17eece 100644
--- a/ui/gtk/mcast_stream_dlg.c
+++ b/ui/gtk/mcast_stream_dlg.c
@@ -169,18 +169,24 @@ static void
mcaststream_on_select_row(GtkTreeSelection *selection, gpointer data _U_)
{
gchar label_text[80];
+ char *src_addr, *dst_addr;
if (gtk_tree_selection_get_selected(selection, NULL, &list_iter))
{
+ src_addr = (char*)address_to_display(NULL, &(selected_stream_fwd->src_addr));
+ dst_addr = (char*)address_to_display(NULL, &(selected_stream_fwd->dest_addr));
gtk_tree_model_get(GTK_TREE_MODEL(list_store), &list_iter, MC_COL_DATA, &selected_stream_fwd, -1);
g_snprintf(label_text, sizeof(label_text), "Selected: %s:%u -> %s:%u",
- ep_address_to_display(&(selected_stream_fwd->src_addr)),
+ src_addr,
selected_stream_fwd->src_port,
- ep_address_to_display(&(selected_stream_fwd->dest_addr)),
+ dst_addr,
selected_stream_fwd->dest_port
);
gtk_label_set_text(GTK_LABEL(label_fwd), label_text);
gtk_widget_set_sensitive(bt_filter, TRUE);
+
+ wmem_free(NULL, src_addr);
+ wmem_free(NULL, dst_addr);
} else {
selected_stream_fwd = NULL;
gtk_label_set_text(GTK_LABEL(label_fwd), FWD_LABEL_TEXT);
@@ -362,15 +368,19 @@ add_to_list_store(mcast_stream_info_t* strinfo)
gchar *data[NUM_COLS];
int i;
char *savelocale;
+ char *src_addr, *dst_addr;
/* save the current locale */
savelocale = g_strdup(setlocale(LC_NUMERIC, NULL));
/* switch to "C" locale to avoid problems with localized decimal separators
in g_snprintf("%f") functions */
setlocale(LC_NUMERIC, "C");
- data[0] = g_strdup(ep_address_to_display(&(strinfo->src_addr)));
+
+ src_addr = (char*)address_to_display(NULL, &(strinfo->src_addr));
+ dst_addr = (char*)address_to_display(NULL, &(strinfo->dest_addr));
+ data[0] = g_strdup(src_addr);
data[1] = g_strdup_printf("%u", strinfo->src_port);
- data[2] = g_strdup(ep_address_to_display(&(strinfo->dest_addr)));
+ data[2] = g_strdup(dst_addr);
data[3] = g_strdup_printf("%u", strinfo->dest_port);
data[4] = g_strdup_printf("%u", strinfo->npackets);
data[5] = g_strdup_printf("%u /s", strinfo->apackets);
@@ -407,6 +417,8 @@ add_to_list_store(mcast_stream_info_t* strinfo)
for (i = 0; i < NUM_COLS-1; i++)
g_free(data[i]);
+ wmem_free(NULL, src_addr);
+ wmem_free(NULL, dst_addr);
/* Update the top label with the number of detected streams */
g_snprintf(label_text, sizeof(label_text),
diff --git a/ui/gtk/rtp_analysis.c b/ui/gtk/rtp_analysis.c
index eb46fc3123..c2446a6649 100644
--- a/ui/gtk/rtp_analysis.c
+++ b/ui/gtk/rtp_analysis.c
@@ -865,24 +865,32 @@ static void
dialog_graph_set_title(user_data_t* user_data)
{
char *title;
+ char *src_fwd_addr, *dst_fwd_addr, *src_rev_addr, *dst_rev_addr;
if (!user_data->dlg.dialog_graph.window) {
return;
}
+ src_fwd_addr = (char*)address_to_display(NULL, &(user_data->src_fwd));
+ dst_fwd_addr = (char*)address_to_display(NULL, &(user_data->dst_fwd));
+ src_rev_addr = (char*)address_to_display(NULL, &(user_data->src_rev));
+ dst_rev_addr = (char*)address_to_display(NULL, &(user_data->dst_rev));
title = g_strdup_printf("RTP Graph Analysis Forward: %s:%u to %s:%u Reverse: %s:%u to %s:%u",
- ep_address_to_display(&(user_data->src_fwd)),
+ src_fwd_addr,
user_data->port_src_fwd,
- ep_address_to_display(&(user_data->dst_fwd)),
+ dst_fwd_addr,
user_data->port_dst_fwd,
- ep_address_to_display(&(user_data->src_rev)),
+ src_rev_addr,
user_data->port_src_rev,
- ep_address_to_display(&(user_data->dst_rev)),
+ dst_rev_addr,
user_data->port_dst_rev);
gtk_window_set_title(GTK_WINDOW(user_data->dlg.dialog_graph.window), title);
g_free(title);
-
+ wmem_free(NULL, src_fwd_addr);
+ wmem_free(NULL, dst_fwd_addr);
+ wmem_free(NULL, src_rev_addr);
+ wmem_free(NULL, dst_rev_addr);
}
@@ -891,6 +899,7 @@ static void
dialog_graph_reset(user_data_t* user_data)
{
int i, j;
+ char *src_addr, *dst_addr;
user_data->dlg.dialog_graph.needs_redraw = TRUE;
for (i = 0; i < MAX_GRAPHS; i++) {
@@ -909,27 +918,33 @@ dialog_graph_reset(user_data_t* user_data)
for (i = 0; i < MAX_GRAPHS; i++) {
/* it is forward */
if (i < (MAX_GRAPHS/2)) {
+ src_addr = (char*)address_to_display(NULL, &(user_data->src_fwd));
+ dst_addr = (char*)address_to_display(NULL, &(user_data->dst_fwd));
g_snprintf(user_data->dlg.dialog_graph.graph[i].title,
sizeof(user_data->dlg.dialog_graph.graph[0].title),
"%s: %s:%u to %s:%u (SSRC=0x%X)",
graph_descr[i],
- ep_address_to_display(&(user_data->src_fwd)),
+ src_addr,
user_data->port_src_fwd,
- ep_address_to_display(&(user_data->dst_fwd)),
+ dst_addr,
user_data->port_dst_fwd,
user_data->ssrc_fwd);
/* it is reverse */
} else {
+ src_addr = (char*)address_to_display(NULL, &(user_data->src_rev));
+ dst_addr = (char*)address_to_display(NULL, &(user_data->dst_rev));
g_snprintf(user_data->dlg.dialog_graph.graph[i].title,
sizeof(user_data->dlg.dialog_graph.graph[0].title),
"%s: %s:%u to %s:%u (SSRC=0x%X)",
graph_descr[i],
- ep_address_to_display(&(user_data->src_rev)),
+ src_addr,
user_data->port_src_rev,
- ep_address_to_display(&(user_data->dst_rev)),
+ dst_addr,
user_data->port_dst_rev,
user_data->ssrc_rev);
}
+ wmem_free(NULL, src_addr);
+ wmem_free(NULL, dst_addr);
}
dialog_graph_set_title(user_data);
@@ -3531,9 +3546,7 @@ create_rtp_dialog(user_data_t* user_data)
gchar label_forward[150];
gchar label_forward_tree[150];
gchar label_reverse[150];
-
- gchar str_src[16];
- gchar str_dst[16];
+ char *src_addr, *dst_addr;
window = dlg_window_new("Wireshark: RTP Stream Analysis"); /* transient_for top_level */
gtk_window_set_default_size(GTK_WINDOW(window), 700, 400);
@@ -3545,26 +3558,27 @@ create_rtp_dialog(user_data_t* user_data)
gtk_widget_show(main_vb);
/* Notebooks... */
- g_strlcpy(str_src, ep_address_to_display(&(user_data->src_fwd)), sizeof(str_src));
- g_strlcpy(str_dst, ep_address_to_display(&(user_data->dst_fwd)), sizeof(str_dst));
-
+ src_addr = (char*)address_to_display(NULL, &(user_data->src_fwd));
+ dst_addr = (char*)address_to_display(NULL, &(user_data->dst_fwd));
g_snprintf(label_forward, sizeof(label_forward),
"Analysing stream from %s port %u to %s port %u SSRC = 0x%X",
- str_src, user_data->port_src_fwd, str_dst, user_data->port_dst_fwd, user_data->ssrc_fwd);
+ src_addr, user_data->port_src_fwd, dst_addr, user_data->port_dst_fwd, user_data->ssrc_fwd);
g_snprintf(label_forward_tree, sizeof(label_forward_tree),
"Analysing stream from %s port %u to %s port %u SSRC = 0x%X \n"
"Note many things affects the accurasy of the analysis, use with caution",
- str_src, user_data->port_src_fwd, str_dst, user_data->port_dst_fwd, user_data->ssrc_fwd);
-
-
- g_strlcpy(str_src, ep_address_to_display(&(user_data->src_rev)), sizeof(str_src));
- g_strlcpy(str_dst, ep_address_to_display(&(user_data->dst_rev)), sizeof(str_dst));
+ src_addr, user_data->port_src_fwd, dst_addr, user_data->port_dst_fwd, user_data->ssrc_fwd);
+ wmem_free(NULL, src_addr);
+ wmem_free(NULL, dst_addr);
+ src_addr = (char*)address_to_display(NULL, &(user_data->src_rev));
+ dst_addr = (char*)address_to_display(NULL, &(user_data->dst_rev));
g_snprintf(label_reverse, sizeof(label_reverse),
"Analysing stream from %s port %u to %s port %u SSRC = 0x%X \n"
"Note many things affects the accurasy of the analysis, use with caution",
- str_src, user_data->port_src_rev, str_dst, user_data->port_dst_rev, user_data->ssrc_rev);
+ src_addr, user_data->port_src_rev, dst_addr, user_data->port_dst_rev, user_data->ssrc_rev);
+ wmem_free(NULL, src_addr);
+ wmem_free(NULL, dst_addr);
/* Start a notebook for flipping between sets of changes */
notebook = gtk_notebook_new();
diff --git a/ui/gtk/rtp_player.c b/ui/gtk/rtp_player.c
index bbb44f81cc..3b2886ef55 100644
--- a/ui/gtk/rtp_player.c
+++ b/ui/gtk/rtp_player.c
@@ -352,8 +352,8 @@ add_rtp_packet(const struct _rtp_info *rtp_info, packet_info *pinfo)
* uses: src_ip:src_port dst_ip:dst_port ssrc
*/
key_str = g_string_new("");
- g_string_printf(key_str, "%s:%d %s:%d %d", ep_address_to_display(&(pinfo->src)),
- pinfo->srcport, ep_address_to_display(&(pinfo->dst)),
+ g_string_printf(key_str, "%s:%d %s:%d %d", address_to_display(pinfo->pool, &(pinfo->src)),
+ pinfo->srcport, address_to_display(pinfo->pool, &(pinfo->dst)),
pinfo->destport, rtp_info->info_sync_src );
/* lookup for this RTP packet in the stream hash table */
@@ -548,6 +548,7 @@ decode_rtp_stream(rtp_stream_info_t *rsi, gpointer ptr)
double mean_delay;
double variation;
#endif
+ char *src_addr, *dst_addr;
int decoded_bytes;
int decoded_bytes_prev;
@@ -580,9 +581,13 @@ decode_rtp_stream(rtp_stream_info_t *rsi, gpointer ptr)
* uses: src_ip:src_port dst_ip:dst_port call_num
*/
key_str = g_string_new("");
- g_string_printf(key_str, "%s:%d %s:%d %d %u", ep_address_to_display(&(rsi->src_addr)),
- rsi->src_port, ep_address_to_display(&(rsi->dest_addr)),
+ src_addr = (char*)address_to_display(NULL, &(rsi->src_addr));
+ dst_addr = (char*)address_to_display(NULL, &(rsi->dest_addr));
+ g_string_printf(key_str, "%s:%d %s:%d %d %u", src_addr,
+ rsi->src_port, dst_addr,
rsi->dest_port, rsi->call_num, info->current_channel);
+ wmem_free(NULL, src_addr);
+ wmem_free(NULL, dst_addr);
/* create the rtp_channels_hash table if it doesn't exist */
if (!rtp_channels_hash) {
@@ -1760,7 +1765,7 @@ add_channel_to_window(gchar *key _U_ , rtp_channel_info_t *rci, guint *counter _
{
GString *label;
GtkWidget *viewport;
-
+ char *src_addr, *dst_addr;
/* create the channel draw area */
rci->draw_area=gtk_drawing_area_new();
@@ -1797,22 +1802,26 @@ add_channel_to_window(gchar *key _U_ , rtp_channel_info_t *rci, guint *counter _
label = g_string_new("");
+ src_addr = (char*)address_to_display(NULL, &(rci->first_stream->src_addr));
+ dst_addr = (char*)address_to_display(NULL, &(rci->first_stream->dest_addr));
if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(cb_use_rtp_timestamp))) {
g_string_printf(label, "From %s:%d to %s:%d Duration:%.2f Out of Seq: %d(%.1f%%) Wrong Timestamp: %d(%.1f%%)",
- ep_address_to_display(&(rci->first_stream->src_addr)), rci->first_stream->src_port,
- ep_address_to_display(&(rci->first_stream->dest_addr)), rci->first_stream->dest_port,
+ src_addr, rci->first_stream->src_port,
+ dst_addr, rci->first_stream->dest_port,
(double)rci->samples->len/sample_rate,
rci->out_of_seq, (double)rci->out_of_seq * 100 / (double)rci->num_packets,
rci->wrong_timestamp, (double)rci->wrong_timestamp * 100 / (double)rci->num_packets);
} else {
g_string_printf(label, "From %s:%d to %s:%d Duration:%.2f Drop by Jitter Buff:%d(%.1f%%) Out of Seq: %d(%.1f%%) Wrong Timestamp: %d(%.1f%%)",
- ep_address_to_display(&(rci->first_stream->src_addr)), rci->first_stream->src_port,
- ep_address_to_display(&(rci->first_stream->dest_addr)), rci->first_stream->dest_port,
+ src_addr, rci->first_stream->src_port,
+ dst_addr, rci->first_stream->dest_port,
(double)rci->samples->len/sample_rate,
rci->drop_by_jitter_buff, (double)rci->drop_by_jitter_buff * 100 / (double)rci->num_packets,
rci->out_of_seq, (double)rci->out_of_seq * 100 / (double)rci->num_packets,
rci->wrong_timestamp, (double)rci->wrong_timestamp * 100 / (double)rci->num_packets);
}
+ wmem_free(NULL, src_addr);
+ wmem_free(NULL, dst_addr);
rci->check_bt = gtk_check_button_new_with_label(label->str);
gtk_box_pack_start(GTK_BOX (channels_vb), rci->check_bt, FALSE, FALSE, 1);
diff --git a/ui/gtk/rtp_stream_dlg.c b/ui/gtk/rtp_stream_dlg.c
index 4df1879170..89d1fb9729 100644
--- a/ui/gtk/rtp_stream_dlg.c
+++ b/ui/gtk/rtp_stream_dlg.c
@@ -557,6 +557,7 @@ rtpstream_view_selection_func(GtkTreeSelection *selection, GtkTreeModel *model,
rtp_stream_info_t* selected_stream;
gboolean result = TRUE;
gchar label_text[80];
+ char *src_addr, *dst_addr;
/* Logic
* nb_selected path_currently_selected forward reverse action result
@@ -627,11 +628,13 @@ rtpstream_view_selection_func(GtkTreeSelection *selection, GtkTreeModel *model,
}
}
+ src_addr = (char*)address_to_display(NULL, &(selected_stream_fwd->src_addr));
+ dst_addr = (char*)address_to_display(NULL, &(selected_stream_fwd->dest_addr));
if (selected_stream_fwd) {
g_snprintf(label_text, sizeof(label_text), "Forward: %s:%u -> %s:%u, SSRC=0x%X",
- ep_address_to_display(&(selected_stream_fwd->src_addr)),
+ src_addr,
selected_stream_fwd->src_port,
- ep_address_to_display(&(selected_stream_fwd->dest_addr)),
+ dst_addr,
selected_stream_fwd->dest_port,
selected_stream_fwd->ssrc
);
@@ -642,12 +645,16 @@ rtpstream_view_selection_func(GtkTreeSelection *selection, GtkTreeModel *model,
else
gtk_label_set_text(GTK_LABEL(label_fwd), FWD_LABEL_TEXT);
}
+ wmem_free(NULL, src_addr);
+ wmem_free(NULL, dst_addr);
+ src_addr = (char*)address_to_display(NULL, &(selected_stream_rev->src_addr));
+ dst_addr = (char*)address_to_display(NULL, &(selected_stream_rev->dest_addr));
if (selected_stream_rev) {
g_snprintf(label_text, sizeof(label_text), "Reverse: %s:%u -> %s:%u, SSRC=0x%X",
- ep_address_to_display(&(selected_stream_rev->src_addr)),
+ src_addr,
selected_stream_rev->src_port,
- ep_address_to_display(&(selected_stream_rev->dest_addr)),
+ dst_addr,
selected_stream_rev->dest_port,
selected_stream_rev->ssrc
);
@@ -655,6 +662,8 @@ rtpstream_view_selection_func(GtkTreeSelection *selection, GtkTreeModel *model,
} else {
gtk_label_set_text(GTK_LABEL(label_rev), REV_LABEL_TEXT);
}
+ wmem_free(NULL, src_addr);
+ wmem_free(NULL, dst_addr);
return result;
}
@@ -673,6 +682,7 @@ add_to_list_store(rtp_stream_info_t* strinfo)
double perc;
int i;
char *savelocale;
+ char *src_addr, *dst_addr;
/* save the current locale */
savelocale = g_strdup(setlocale(LC_NUMERIC, NULL));
@@ -680,9 +690,12 @@ add_to_list_store(rtp_stream_info_t* strinfo)
in g_snprintf("%f") functions */
setlocale(LC_NUMERIC, "C");
- data[0] = g_strdup(ep_address_to_display(&(strinfo->src_addr)));
+ src_addr = (char*)address_to_display(NULL, &(strinfo->src_addr));
+ dst_addr = (char*)address_to_display(NULL, &(strinfo->dest_addr));
+
+ data[0] = g_strdup(src_addr);
data[1] = NULL;
- data[2] = g_strdup(ep_address_to_display(&(strinfo->dest_addr)));
+ data[2] = g_strdup(dst_addr);
data[3] = NULL;
data[4] = g_strdup_printf("0x%X", strinfo->ssrc);
if (strinfo->payload_type_name != NULL) {
@@ -736,6 +749,8 @@ add_to_list_store(rtp_stream_info_t* strinfo)
for (i = 0; i < NUM_COLS-1; i++)
g_free(data[i]);
+ wmem_free(NULL, src_addr);
+ wmem_free(NULL, dst_addr);
/* Update the top label with the number of detected streams */
g_snprintf(label_text, sizeof(label_text),
diff --git a/ui/gtk/voip_calls_dlg.c b/ui/gtk/voip_calls_dlg.c
index d8895fb1f0..fc581fb9c0 100644
--- a/ui/gtk/voip_calls_dlg.c
+++ b/ui/gtk/voip_calls_dlg.c
@@ -437,14 +437,16 @@ add_to_list_store(voip_calls_info_t* strinfo)
isup_calls_info_t *isupinfo;
h323_calls_info_t *h323info;
gboolean flag = FALSE;
+ char* addr_str = (char*)address_to_display(NULL, &(strinfo->initial_speaker));
- g_snprintf(field[CALL_COL_INITIAL_SPEAKER], 30, "%s", ep_address_to_display(&(strinfo->initial_speaker)));
+ g_snprintf(field[CALL_COL_INITIAL_SPEAKER], 30, "%s", addr_str);
g_snprintf(field[CALL_COL_FROM], 50, "%s", strinfo->from_identity);
g_snprintf(field[CALL_COL_TO], 50, "%s", strinfo->to_identity);
g_snprintf(field[CALL_COL_PROTOCOL], 15, "%s",
((strinfo->protocol==VOIP_COMMON)&&strinfo->protocol_name)?
strinfo->protocol_name:voip_protocol_name[strinfo->protocol]);
g_snprintf(field[CALL_COL_STATE], 15, "%s", voip_call_state_name[strinfo->call_state]);
+ wmem_free(NULL, addr_str);
/* Add comments based on the protocol */
switch (strinfo->protocol) {
diff --git a/ui/gtk/wlan_stat_dlg.c b/ui/gtk/wlan_stat_dlg.c
index 38d547dfdd..cb0823e883 100644
--- a/ui/gtk/wlan_stat_dlg.c
+++ b/ui/gtk/wlan_stat_dlg.c
@@ -31,6 +31,7 @@
#include <epan/addr_resolv.h>
#include <epan/tap.h>
#include <epan/dissectors/packet-ieee80211.h>
+#include <epan/conversation_table.h>
#include <epan/strutil.h>
#include "ui/recent.h"
@@ -359,8 +360,14 @@ static gboolean
is_broadcast(const address *addr)
{
#if 0
+ gboolean cmp_addr;
+ char* addr_str = address_to_display(NULL, addr);
+
+ cmp_addr = (strcmp(addr_str, "Broadcast") == 0);
+ wmem_free(NULL, addr_str);
+
/* doesn't work if MAC resolution is disable */
- return strcmp(ep_address_to_display(addr), "Broadcast") == 0;
+ return cmp_addr;
#endif
return ADDRESSES_EQUAL(&broadcast, addr);
}
@@ -478,7 +485,7 @@ static void
wlanstat_draw_details(wlanstat_t *hs, wlan_ep_t *wlan_ep, gboolean clear)
{
wlan_details_ep_t *tmp;
- char addr[256], comment[256], percent[256];
+ char *addr_str, comment[256], percent[256];
gboolean broadcast_flag, basestation_flag;
float f;
GtkListStore *store;
@@ -500,11 +507,8 @@ wlanstat_draw_details(wlanstat_t *hs, wlan_ep_t *wlan_ep, gboolean clear)
f = 0.0f;
}
- if (hs->resolve_names) {
- g_strlcpy (addr, ep_address_to_display(&tmp->addr), sizeof(addr));
- } else {
- g_strlcpy (addr, ep_address_to_str(&tmp->addr), sizeof(addr));
- }
+ addr_str = (char*)get_conversation_address(NULL, &tmp->addr, hs->resolve_names);
+
if (basestation_flag) {
g_strlcpy (comment, "Base station", sizeof(comment));
} else {
@@ -517,7 +521,7 @@ wlanstat_draw_details(wlanstat_t *hs, wlan_ep_t *wlan_ep, gboolean clear)
tmp->iter_valid = TRUE;
}
gtk_list_store_set(store, &tmp->iter,
- ADDRESS_COLUMN, addr,
+ ADDRESS_COLUMN, addr_str,
PERCENT_2_COLUMN, percent,
DATA_SENT_COLUMN, tmp->data_sent,
DATA_REC_COLUMN, tmp->data_received,
@@ -532,6 +536,7 @@ wlanstat_draw_details(wlanstat_t *hs, wlan_ep_t *wlan_ep, gboolean clear)
-1);
hs->num_details++;
+ wmem_free(NULL, addr_str);
}
}
@@ -541,7 +546,7 @@ wlanstat_draw(void *phs)
wlanstat_t *hs = (wlanstat_t *)phs;
wlan_ep_t *list = hs->ep_list, *tmp;
guint32 data = 0, other = 0;
- char bssid[256], channel[256], ssid[256], percent[256];
+ char *bssid, channel[256], ssid[256], percent[256];
float f;
GtkListStore *store;
GtkTreeSelection *sel;
@@ -567,11 +572,7 @@ wlanstat_draw(void *phs)
tmp->type[0x05] - tmp->type[0x0B] - tmp->type[0x0C];
f = (float)(((float)tmp->number_of_packets * 100.0) / hs->number_of_packets);
- if (hs->resolve_names) {
- g_strlcpy (bssid, ep_address_to_display(&tmp->bssid), sizeof(bssid));
- } else {
- g_strlcpy (bssid, ep_address_to_str(&tmp->bssid), sizeof(bssid));
- }
+ bssid = (char*)get_conversation_address(NULL, &tmp->bssid, hs->resolve_names);
if (tmp->stats.channel) {
g_snprintf (channel, sizeof(channel), "%u", tmp->stats.channel);
} else {
@@ -608,6 +609,7 @@ wlanstat_draw(void *phs)
-1);
hs->num_entries++;
+ wmem_free(NULL, bssid);
}
sel = gtk_tree_view_get_selection (GTK_TREE_VIEW(hs->table));
diff --git a/ui/qt/conversation_dialog.cpp b/ui/qt/conversation_dialog.cpp
index 161512e1fe..319e9ffc57 100644
--- a/ui/qt/conversation_dialog.cpp
+++ b/ui/qt/conversation_dialog.cpp
@@ -339,6 +339,7 @@ public:
conv_item_t *conv_item = data(ci_col_, Qt::UserRole).value<conv_item_t *>();
bool ok;
quint64 cur_packets = data(pkts_col_, Qt::UserRole).toULongLong(&ok);
+ char *src_addr, *dst_addr;
if (!conv_item) {
return;
@@ -349,10 +350,14 @@ public:
return;
}
- setText(CONV_COLUMN_SRC_ADDR, get_conversation_address(&conv_item->src_address, resolve_names));
+ src_addr = (char*)get_conversation_address(NULL, &conv_item->src_address, resolve_names);
+ dst_addr = (char*)get_conversation_address(NULL, &conv_item->dst_address, resolve_names);
+ setText(CONV_COLUMN_SRC_ADDR, src_addr);
setText(CONV_COLUMN_SRC_PORT, get_conversation_port(conv_item->src_port, conv_item->ptype, resolve_names));
- setText(CONV_COLUMN_DST_ADDR, get_conversation_address(&conv_item->dst_address, resolve_names));
+ setText(CONV_COLUMN_DST_ADDR, dst_addr);
setText(CONV_COLUMN_DST_PORT, get_conversation_port(conv_item->dst_port, conv_item->ptype, resolve_names));
+ wmem_free(NULL, src_addr);
+ wmem_free(NULL, dst_addr);
double duration = nstime_to_sec(&conv_item->stop_time) - nstime_to_sec(&conv_item->start_time);
QString col_str, bps_ab = bps_na_, bps_ba = bps_na_;
@@ -380,7 +385,7 @@ public:
setData(pkts_col_, Qt::UserRole, qVariantFromValue(packets));
}
- // Return a string, qulonglong, double, or invalid QVariant representing the raw column data.
+ // Return a QString, qulonglong, double, or invalid QVariant representing the raw column data.
QVariant colData(int col, bool resolve_names) const {
conv_item_t *conv_item = data(ci_col_, Qt::UserRole).value<conv_item_t *>();
@@ -397,7 +402,12 @@ public:
switch (col) {
case CONV_COLUMN_SRC_ADDR:
- return get_conversation_address(&conv_item->src_address, resolve_names);
+ {
+ char* addr_str = (char*)get_conversation_address(NULL, &conv_item->src_address, resolve_names);
+ QString q_addr_str(addr_str);
+ wmem_free(NULL, addr_str);
+ return q_addr_str;
+ }
case CONV_COLUMN_SRC_PORT:
if (resolve_names) {
return get_conversation_port(conv_item->src_port, conv_item->ptype, resolve_names);
@@ -405,7 +415,12 @@ public:
return quint32(conv_item->src_port);
}
case CONV_COLUMN_DST_ADDR:
- return get_conversation_address(&conv_item->dst_address, resolve_names);
+ {
+ char* addr_str = (char*)get_conversation_address(NULL, &conv_item->dst_address, resolve_names);
+ QString q_addr_str(addr_str);
+ wmem_free(NULL, addr_str);
+ return q_addr_str;
+ }
case CONV_COLUMN_DST_PORT:
if (resolve_names) {
return get_conversation_port(conv_item->dst_port, conv_item->ptype, resolve_names);
diff --git a/ui/qt/endpoint_dialog.cpp b/ui/qt/endpoint_dialog.cpp
index fc884e533a..81672cd2a0 100644
--- a/ui/qt/endpoint_dialog.cpp
+++ b/ui/qt/endpoint_dialog.cpp
@@ -228,6 +228,7 @@ public:
hostlist_talker_t *endp_item = data(ei_col_, Qt::UserRole).value<hostlist_talker_t *>();
bool ok;
quint64 cur_packets = data(pkts_col_, Qt::UserRole).toULongLong(&ok);
+ char* addr_str;
if (!endp_item) {
return;
@@ -238,8 +239,10 @@ public:
return;
}
- setText(ENDP_COLUMN_ADDR, get_conversation_address(&endp_item->myaddress, resolve_names));
+ addr_str = (char*)get_conversation_address(NULL, &endp_item->myaddress, resolve_names);
+ setText(ENDP_COLUMN_ADDR, addr_str);
setText(ENDP_COLUMN_PORT, get_conversation_port(endp_item->port, endp_item->ptype, resolve_names));
+ wmem_free(NULL, addr_str);
QString col_str;
@@ -290,7 +293,12 @@ public:
switch (col) {
case ENDP_COLUMN_ADDR:
- return get_conversation_address(&endp_item->myaddress, resolve_names);
+ {
+ char* addr_str = (char*)get_conversation_address(NULL, &endp_item->myaddress, resolve_names);
+ QString q_addr_str(addr_str);
+ wmem_free(NULL, addr_str);
+ return q_addr_str;
+ }
case ENDP_COLUMN_PORT:
if (resolve_names) {
return get_conversation_port(endp_item->port, endp_item->ptype, resolve_names);
diff --git a/ui/qt/lbm_uimflow_dialog.cpp b/ui/qt/lbm_uimflow_dialog.cpp
index b4bdb6aa41..010ff90afd 100644
--- a/ui/qt/lbm_uimflow_dialog.cpp
+++ b/ui/qt/lbm_uimflow_dialog.cpp
@@ -505,6 +505,7 @@ void LBMUIMFlowDialog::fillDiagram(void)
{
QCustomPlot * sp = m_ui->sequencePlot;
seq_analysis_info_t new_sa;
+ char* addr_str;
new_sa = m_sequence_analysis;
new_sa.items = g_queue_new();
@@ -520,11 +521,13 @@ void LBMUIMFlowDialog::fillDiagram(void)
m_node_label_width = 0;
for (guint i = 0; i < m_sequence_analysis.num_nodes; i++)
{
- int label_w = vfm.width(ep_address_to_display(&(m_sequence_analysis.nodes[i])));
+ addr_str = (char*)address_to_display(NULL, &(m_sequence_analysis.nodes[i]));
+ int label_w = vfm.width(addr_str);
if (m_node_label_width < label_w)
{
m_node_label_width = label_w;
}
+ wmem_free(NULL, addr_str);
}
m_node_label_width = (m_node_label_width * 3 / 4) + m_one_em;
diff --git a/ui/qt/sequence_diagram.cpp b/ui/qt/sequence_diagram.cpp
index 3bd4c2d724..bdca224650 100644
--- a/ui/qt/sequence_diagram.cpp
+++ b/ui/qt/sequence_diagram.cpp
@@ -104,6 +104,7 @@ void SequenceDiagram::setData(seq_analysis_info_t *sainfo)
QVector<QString> key_labels, val_labels, com_labels;
QFontMetrics com_fm(comment_axis_->tickLabelFont());
int elide_w = com_fm.height() * max_comment_em_width_;
+ char* addr_str;
for (GList *cur = g_queue_peek_nth_link(sainfo->items, 0); cur; cur = g_list_next(cur)) {
seq_analysis_item_t *sai = (seq_analysis_item_t *) cur->data;
@@ -123,10 +124,13 @@ void SequenceDiagram::setData(seq_analysis_info_t *sainfo)
for (unsigned int i = 0; i < sainfo_->num_nodes; i++) {
val_ticks.append(i);
- val_labels.append(ep_address_to_display(&(sainfo_->nodes[i])));
+ addr_str = (char*)address_to_display(NULL, &(sainfo_->nodes[i]));
+ val_labels.append(addr_str);
if (i % 2 == 0) {
val_labels.last().append("\n");
}
+
+ wmem_free(NULL, addr_str);
}
keyAxis()->setTickVector(key_ticks);
keyAxis()->setTickVectorLabels(key_labels);
diff --git a/ui/qt/sequence_dialog.cpp b/ui/qt/sequence_dialog.cpp
index 437493ae3d..cd7ea809cf 100644
--- a/ui/qt/sequence_dialog.cpp
+++ b/ui/qt/sequence_dialog.cpp
@@ -357,12 +357,15 @@ void SequenceDialog::fillDiagram()
}
QFontMetrics vfm = QFontMetrics(sp->xAxis2->labelFont());
+ char* addr_str;
node_label_w_ = 0;
for (guint i = 0; i < sainfo_->num_nodes; i++) {
- int label_w = vfm.width(ep_address_to_display(&(sainfo_->nodes[i])));
+ addr_str = (char*)address_to_display(NULL, &(sainfo_->nodes[i]));
+ int label_w = vfm.width(addr_str);
if (node_label_w_ < label_w) {
node_label_w_ = label_w;
}
+ wmem_free(NULL, addr_str);
}
node_label_w_ = (node_label_w_ * 3 / 4) + one_em_;
diff --git a/ui/qt/voip_calls_dialog.cpp b/ui/qt/voip_calls_dialog.cpp
index 7dfe664c2e..13c38f416f 100644
--- a/ui/qt/voip_calls_dialog.cpp
+++ b/ui/qt/voip_calls_dialog.cpp
@@ -74,17 +74,20 @@ public:
if (!call_info) {
return;
}
+ char* addr_str;
// XXX Pull digit count from capture file precision
setText(start_time_col_, QString::number(nstime_to_sec(&(call_info->start_rel_ts)), 'f', 6));
setText(stop_time_col_, QString::number(nstime_to_sec(&(call_info->stop_rel_ts)), 'f', 6));
- setText(initial_speaker_col_, ep_address_to_display(&(call_info->initial_speaker)));
+ addr_str = (char*)address_to_display(NULL, &(call_info->initial_speaker));
+ setText(initial_speaker_col_, addr_str);
setText(from_col_, call_info->from_identity);
setText(to_col_, call_info->to_identity);
setText(protocol_col_, ((call_info->protocol == VOIP_COMMON) && call_info->protocol_name) ?
call_info->protocol_name : voip_protocol_name[call_info->protocol]);
setText(packets_col_, QString::number(call_info->npackets));
setText(state_col_, voip_call_state_name[call_info->call_state]);
+ wmem_free(NULL, addr_str);
/* Add comments based on the protocol */
QString call_comments;
diff --git a/ui/tap-rtp-common.c b/ui/tap-rtp-common.c
index 1959ea1c70..0623e6ef74 100644
--- a/ui/tap-rtp-common.c
+++ b/ui/tap-rtp-common.c
@@ -127,10 +127,12 @@ void rtp_write_header(rtp_stream_info_t *strinfo, FILE *file)
size_t sourcelen;
guint16 port; /* UDP port */
guint16 padding; /* 2 padding bytes */
+ char* addr_str = (char*)address_to_display(NULL, &(strinfo->dest_addr));
fprintf(file, "#!rtpplay%s %s/%u\n", RTPFILE_VERSION,
- ep_address_to_display(&(strinfo->dest_addr)),
+ addr_str,
strinfo->dest_port);
+ wmem_free(NULL, addr_str);
start_sec = g_htonl(strinfo->start_fd->abs_ts.secs);
start_usec = g_htonl(strinfo->start_fd->abs_ts.nsecs / 1000000);
diff --git a/ui/tap-sequence-analysis.c b/ui/tap-sequence-analysis.c
index 6a15c18338..eb35b9125c 100644
--- a/ui/tap-sequence-analysis.c
+++ b/ui/tap-sequence-analysis.c
@@ -465,6 +465,7 @@ sequence_analysis_dump_to_file(const char *pathname, seq_analysis_info_t *sainfo
char src_port[8], dst_port[8];
gchar *time_str;
GList *list;
+ char *addr_str;
FILE *of;
@@ -522,8 +523,9 @@ sequence_analysis_dump_to_file(const char *pathname, seq_analysis_info_t *sainfo
/* Write the node names on top */
for (i=0; i<display_nodes; i+=2) {
/* print the node identifiers */
- g_string_printf(label_string, "| %s",
- ep_address_to_display(&(sainfo->nodes[i+first_node])));
+ addr_str = (char*)address_to_display(NULL, &(sainfo->nodes[i+first_node]));
+ g_string_printf(label_string, "| %s", addr_str);
+ wmem_free(NULL, addr_str);
enlarge_string(label_string, NODE_CHARS_WIDTH*2, ' ');
fprintf(of, "%s", label_string->str);
g_string_printf(label_string, "| ");
@@ -539,8 +541,9 @@ sequence_analysis_dump_to_file(const char *pathname, seq_analysis_info_t *sainfo
/* Write the node names on top */
for (i=1; i<display_nodes; i+=2) {
/* print the node identifiers */
- g_string_printf(label_string, "| %s",
- ep_address_to_display(&(sainfo->nodes[i+first_node])));
+ addr_str = (char*)address_to_display(NULL, &(sainfo->nodes[i+first_node]));
+ g_string_printf(label_string, "| %s", addr_str);
+ wmem_free(NULL, addr_str);
if (label_string->len < NODE_CHARS_WIDTH)
{
enlarge_string(label_string, NODE_CHARS_WIDTH, ' ');
diff --git a/ui/traffic_table_ui.c b/ui/traffic_table_ui.c
index 26e2205b6c..2609ca5fd8 100644
--- a/ui/traffic_table_ui.c
+++ b/ui/traffic_table_ui.c
@@ -223,13 +223,17 @@ create_endpoint_geoip_map(const GArray *endp_array, gchar **err_str) {
*/
if (lon && lat) {
+ char* addr_str;
+
g_string_printf(tpl_entry, "%s", map_endpoint_opener);
/* Longitude + latitude */
g_string_append_printf(tpl_entry, " 'type': 'Feature', 'geometry': { 'type': 'Point', 'coordinates': [%s, %s] },\n", lon, lat);
/* Address */
- g_string_append_printf(tpl_entry, " 'properties': { 'title': '%s', ", ep_address_to_display(&endp_item->myaddress));
+ addr_str = (char*)address_to_display(NULL, &endp_item->myaddress);
+ g_string_append_printf(tpl_entry, " 'properties': { 'title': '%s', ", addr_str);
+ wmem_free(NULL, addr_str);
/* Description */