static void display_packet (time_t arrival_time, SoupMessageHeaders *packet_headers) { GString *text; text = g_string_new (""); g_string_printf (text, "Received on: %s\nHeaders:\n\n", ctime (&arrival_time)); soup_message_headers_foreach (packet_headers, (SoupMessageHeadersForeachFunc) packet_header_to_string, &text); update_packet_details (text->str, text->len); g_string_free (text, TRUE); }
static void on_packet_selected (GtkTreeSelection *selection, gpointer user_data) { GtkTreeModel *model; GtkTreeIter iter; time_t *arrival_time; if (gtk_tree_selection_get_selected (selection, &model, &iter)) { SoupMessageHeaders *packet_headers; gtk_tree_model_get (model, &iter, 4, &packet_headers, 5, &arrival_time, -1); display_packet (*arrival_time, packet_headers); g_boxed_free (SOUP_TYPE_MESSAGE_HEADERS, packet_headers); } else update_packet_details ("", 0); }