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):