Ethereal-dev: [Ethereal-dev] [PATCH] Hostlist/Conversation list assign wrong addresses to rows
Note: This archive is from the project's previous web site, ethereal.com. This list is no longer active.
From: Ian Schorr <ethereal@xxxxxxxxxxxxx>
Date: Thu, 05 Aug 2004 00:09:23 -0400
Unfortunately my latest patch had a bug, drawing addresses to the wrong
rows in the clist. This corrects the problem (and removes the
duplicated code that Ulf was nice enough to isolate).
Ian
Index: hostlist_table.c
===================================================================
--- hostlist_table.c (revision 11602)
+++ hostlist_table.c (working copy)
@@ -461,7 +461,10 @@
char *port;
address_type at;
guint32 pt;
+ int rownum;
+ rownum=gtk_clist_find_row_from_data(hl->table, (gpointer)hostlist_idx);
+
at = hl->hosts[hostlist_idx].address.type;
if(!hl->resolve_names) at = AT_NONE;
switch(at) {
@@ -474,7 +477,7 @@
default:
entry=address_to_str(&hl->hosts[hostlist_idx].address);
}
- gtk_clist_set_text(hl->table, hostlist_idx, 0, entry);
+ gtk_clist_set_text(hl->table, rownum, 0, entry);
pt = hl->hosts[hostlist_idx].port_type;
if(!hl->resolve_names) pt = PT_NONE;
@@ -489,7 +492,7 @@
port=hostlist_port_to_str(hl->hosts[hostlist_idx].port_type, hl->hosts[hostlist_idx].port);
entry=port?port:"";
}
- gtk_clist_set_text(hl->table, hostlist_idx, 1, entry);
+ gtk_clist_set_text(hl->table, rownum, 1, entry);
}
/* Refresh the address fields of all entries in the list */
@@ -497,51 +500,9 @@
draw_hostlist_table_addresses(hostlist_table *hl)
{
guint32 i;
- int j;
-
for(i=0;i<hl->num_hosts;i++){
-#if 0
- char *entry;
- char *port;
- address_type at;
- guint32 pt;
-#endif
-
- j=gtk_clist_find_row_from_data(hl->table, (gpointer)i);
-
- draw_hostlist_table_address(hl, j);
-
-#if 0
- at = hl->hosts[i].address.type;
- if(!hl->resolve_names) at = AT_NONE;
- switch(at) {
- case(AT_IPv4):
- entry=get_hostname((*(guint *)hl->hosts[i].address.data));
- break;
- case(AT_ETHER):
- entry=get_ether_name(hl->hosts[i].address.data);
- break;
- default:
- entry=address_to_str(&hl->hosts[i].address);
- }
- gtk_clist_set_text(hl->table, j, 0, entry);
-
- pt = hl->hosts[i].port_type;
- if(!hl->resolve_names) pt = PT_NONE;
- switch(pt) {
- case(PT_TCP):
- entry=get_tcp_port(hl->hosts[i].port);
- break;
- case(PT_UDP):
- entry=get_udp_port(hl->hosts[i].port);
- break;
- default:
- port=hostlist_port_to_str(hl->hosts[i].port_type, hl->hosts[i].port);
- entry=port?port:"";
- }
- gtk_clist_set_text(hl->table, j, 1, entry);
-#endif
+ draw_hostlist_table_address(hl, i);
}
}
Index: conversations_table.c
===================================================================
--- conversations_table.c (revision 11602)
+++ conversations_table.c (working copy)
@@ -948,7 +948,10 @@
char *port;
address_type at;
guint32 pt;
+ int rownum;
+ rownum=gtk_clist_find_row_from_data(ct->table, (gpointer)conversation_idx);
+
at = ct->conversations[conversation_idx].src_address.type;
if(!ct->resolve_names) at = AT_NONE;
switch(at) {
@@ -961,7 +964,7 @@
default:
entry=address_to_str(&ct->conversations[conversation_idx].src_address);
}
- gtk_clist_set_text(ct->table, conversation_idx, 0, entry);
+ gtk_clist_set_text(ct->table, rownum, 0, entry);
pt = ct->conversations[conversation_idx].port_type;
if(!ct->resolve_names) pt = PT_NONE;
@@ -976,7 +979,7 @@
port=ct_port_to_str(ct->conversations[conversation_idx].port_type, ct->conversations[conversation_idx].src_port);
entry=port?port:"";
}
- gtk_clist_set_text(ct->table, conversation_idx, 1, entry);
+ gtk_clist_set_text(ct->table, rownum, 1, entry);
at = ct->conversations[conversation_idx].dst_address.type;
if(!ct->resolve_names) at = AT_NONE;
@@ -990,7 +993,7 @@
default:
entry=address_to_str(&ct->conversations[conversation_idx].dst_address);
}
- gtk_clist_set_text(ct->table, conversation_idx, 2, entry);
+ gtk_clist_set_text(ct->table, rownum, 2, entry);
switch(pt) {
case(PT_TCP):
@@ -1003,7 +1006,7 @@
port=ct_port_to_str(ct->conversations[conversation_idx].port_type, ct->conversations[conversation_idx].dst_port);
entry=port?port:"";
}
- gtk_clist_set_text(ct->table, conversation_idx, 3, entry);
+ gtk_clist_set_text(ct->table, rownum, 3, entry);
}
/* Refresh the address fields of all entries in the list */
@@ -1011,77 +1014,9 @@
draw_ct_table_addresses(conversations_table *ct)
{
guint32 i;
- int j;
-
for(i=0;i<ct->num_conversations;i++){
-#if 0
- char *entry;
- char *port;
- address_type at;
- guint32 pt;
-#endif
-
- j=gtk_clist_find_row_from_data(ct->table, (gpointer)i);
-
- draw_ct_table_address(ct, j);
-#if 0
- at = ct->conversations[i].src_address.type;
- if(!ct->resolve_names) at = AT_NONE;
- switch(at) {
- case(AT_IPv4):
- entry=get_hostname((*(guint *)ct->conversations[i].src_address.data));
- break;
- case(AT_ETHER):
- entry=get_ether_name(ct->conversations[i].src_address.data);
- break;
- default:
- entry=address_to_str(&ct->conversations[i].src_address);
- }
- gtk_clist_set_text(ct->table, j, 0, entry);
-
- pt = ct->conversations[i].port_type;
- if(!ct->resolve_names) pt = PT_NONE;
- switch(pt) {
- case(PT_TCP):
- entry=get_tcp_port(ct->conversations[i].src_port);
- break;
- case(PT_UDP):
- entry=get_udp_port(ct->conversations[i].src_port);
- break;
- default:
- port=ct_port_to_str(ct->conversations[i].port_type, ct->conversations[i].src_port);
- entry=port?port:"";
- }
- gtk_clist_set_text(ct->table, j, 1, entry);
-
- at = ct->conversations[i].dst_address.type;
- if(!ct->resolve_names) at = AT_NONE;
- switch(at) {
- case(AT_IPv4):
- entry=get_hostname((*(guint *)ct->conversations[i].dst_address.data));
- break;
- case(AT_ETHER):
- entry=get_ether_name(ct->conversations[i].dst_address.data);
- break;
- default:
- entry=address_to_str(&ct->conversations[i].dst_address);
- }
- gtk_clist_set_text(ct->table, j, 2, entry);
-
- switch(pt) {
- case(PT_TCP):
- entry=get_tcp_port(ct->conversations[i].dst_port);
- break;
- case(PT_UDP):
- entry=get_udp_port(ct->conversations[i].dst_port);
- break;
- default:
- port=ct_port_to_str(ct->conversations[i].port_type, ct->conversations[i].dst_port);
- entry=port?port:"";
- }
- gtk_clist_set_text(ct->table, j, 3, entry);
-#endif
+ draw_ct_table_address(ct, i);
}
}
- Follow-Ups:
- Prev by Date: [Ethereal-dev] New dissector: MANOLITO/MP2P for Blubster/RockItNet/Piolet
- Next by Date: Re: [Ethereal-dev] Back to performance...
- Previous by thread: Re: [Ethereal-dev] New dissector: MANOLITO/MP2P for Blubster/RockItNet/Piolet
- Next by thread: Re: [Ethereal-dev] [PATCH] Hostlist/Conversation list assign wrong addresses to rows
- Index(es):





