static void
addres_resolution_to_texbuff(GtkTextBuffer *buffer)
{
    gchar string_buff[ADDRESS_STR_MAX];
	GHashTable *manuf_hashtable;
	GHashTable *wka_hashtable;
	GHashTable *eth_hashtable;
	GHashTable *serv_port_hashtable;
	GHashTable *ipv4_hash_table;
	GHashTable *ipv6_hash_table;

    g_snprintf(string_buff, ADDRESS_STR_MAX, "# Hosts information in Wireshark \n#\n");
    gtk_text_buffer_insert_at_cursor (buffer, string_buff, -1);
    g_snprintf(string_buff, ADDRESS_STR_MAX, "# Host data gathered from %s\n\n", cfile.filename);
    gtk_text_buffer_insert_at_cursor (buffer, string_buff, -1);

    /* Dump the v4 addresses first, then v6 */
	ipv4_hash_table = get_ipv4_hash_table();
	if(ipv4_hash_table){
		g_hash_table_foreach( ipv4_hash_table, ipv4_hash_table_resolved_to_texbuff, buffer);
	}

	ipv6_hash_table = get_ipv6_hash_table();
	if(ipv6_hash_table){
		g_hash_table_foreach( ipv6_hash_table, ipv6_hash_table_resolved_to_texbuff, buffer);
	}

	g_snprintf(string_buff, ADDRESS_STR_MAX, "\n\n# Address resolution IPv4 Hash table \n#\n");
	gtk_text_buffer_insert_at_cursor (buffer, string_buff, -1);

	if(ipv4_hash_table){
		g_snprintf(string_buff, ADDRESS_STR_MAX, "# With %i entries\n#\n", g_hash_table_size(ipv4_hash_table));
		gtk_text_buffer_insert_at_cursor (buffer, string_buff, -1);
		g_hash_table_foreach( ipv4_hash_table, ipv4_hash_table_to_texbuff, buffer);
	}

	g_snprintf(string_buff, ADDRESS_STR_MAX, "\n\n# Address resolution IPv6 Hash table \n#\n");
	gtk_text_buffer_insert_at_cursor (buffer, string_buff, -1);

	if(ipv6_hash_table){
		g_snprintf(string_buff, ADDRESS_STR_MAX, "# With %i entries\n#\n", g_hash_table_size(ipv6_hash_table));
		gtk_text_buffer_insert_at_cursor (buffer, string_buff, -1);
		g_hash_table_foreach( ipv6_hash_table, ipv6_hash_table_to_texbuff, buffer);
	}


	g_snprintf(string_buff, ADDRESS_STR_MAX, "\n\n# Port names information in Wireshark \n#\n");
	gtk_text_buffer_insert_at_cursor (buffer, string_buff, -1);

	serv_port_hashtable = get_serv_port_hashtable();
	if(serv_port_hashtable){
		g_snprintf(string_buff, ADDRESS_STR_MAX, "# With %i entries\n#\n", g_hash_table_size(serv_port_hashtable));
		gtk_text_buffer_insert_at_cursor (buffer, string_buff, -1);
		g_hash_table_foreach( serv_port_hashtable, serv_port_hash_to_texbuff, buffer);
	}

	g_snprintf(string_buff, ADDRESS_STR_MAX, "\n\n# Eth names information in Wireshark \n#\n");
	gtk_text_buffer_insert_at_cursor (buffer, string_buff, -1);

	eth_hashtable = get_eth_hashtable();
	if(eth_hashtable){
		g_snprintf(string_buff, ADDRESS_STR_MAX, "# With %i entries\n#\n", g_hash_table_size(eth_hashtable));
		gtk_text_buffer_insert_at_cursor (buffer, string_buff, -1);
		g_hash_table_foreach( eth_hashtable, eth_hash_to_texbuff, buffer);
	}

	g_snprintf(string_buff, ADDRESS_STR_MAX, "\n\n# Manuf information in Wireshark \n#\n");
	gtk_text_buffer_insert_at_cursor (buffer, string_buff, -1);

	manuf_hashtable = get_manuf_hashtable();
	if(manuf_hashtable){
		g_snprintf(string_buff, ADDRESS_STR_MAX, "# With %i entries\n#\n", g_hash_table_size(manuf_hashtable));
		gtk_text_buffer_insert_at_cursor (buffer, string_buff, -1);
		g_hash_table_foreach( manuf_hashtable, manuf_hash_to_texbuff, buffer);
	}

	g_snprintf(string_buff, ADDRESS_STR_MAX, "\n\n# wka information in Wireshark \n#\n");
	gtk_text_buffer_insert_at_cursor (buffer, string_buff, -1);

	wka_hashtable = get_wka_hashtable();
	if(wka_hashtable){
		g_snprintf(string_buff, ADDRESS_STR_MAX, "# With %i entries\n#\n", g_hash_table_size(wka_hashtable));
		gtk_text_buffer_insert_at_cursor (buffer, string_buff, -1);
		g_hash_table_foreach( wka_hashtable, wka_hash_to_texbuff, buffer);
	}


}
Exemple #2
0
	}
}

static void
hosts_draw(void *dummy _U_)
{

	wmem_map_t *ipv4_hash_table;
	wmem_map_t *ipv6_hash_table;

	printf("# TShark hosts output\n");
	printf("#\n");
	printf("# Host data gathered from %s\n", cfile.filename);
	printf("\n");

	ipv4_hash_table = get_ipv4_hash_table();
	if (ipv4_hash_table) {
		wmem_map_foreach( ipv4_hash_table, ipv4_hash_table_print_resolved, NULL);
	}

	ipv6_hash_table = get_ipv6_hash_table();
	if (ipv6_hash_table) {
		wmem_map_foreach( ipv6_hash_table, ipv6_hash_table_print_resolved, NULL);
	}

}


static void
hosts_init(const char *opt_arg, void *userdata _U_)
{