| 351 g_free(subject); |
351 g_free(subject); |
| 352 g_free(id); |
352 g_free(id); |
| 353 } |
353 } |
| 354 |
354 |
| 355 static void |
355 static void |
| |
356 tls_peers_mgmt_delete_confirm_cb(gchar *id, gint choice) |
| |
357 { |
| |
358 if (1 == choice) { |
| |
359 /* Yes, delete was confirmed */ |
| |
360 /* Now delete the thing */ |
| |
361 g_assert(purple_certificate_pool_delete(tpm_dat->tls_peers, id)); |
| |
362 } |
| |
363 |
| |
364 g_free(id); |
| |
365 } |
| |
366 |
| |
367 static void |
| 356 tls_peers_mgmt_delete_cb(GtkWidget *button, gpointer data) |
368 tls_peers_mgmt_delete_cb(GtkWidget *button, gpointer data) |
| 357 { |
369 { |
| 358 GtkTreeSelection *select = tpm_dat->listselect; |
370 GtkTreeSelection *select = tpm_dat->listselect; |
| 359 GtkTreeIter iter; |
371 GtkTreeIter iter; |
| 360 GtkTreeModel *model; |
372 GtkTreeModel *model; |
| 361 |
373 |
| 362 /* See if things are selected */ |
374 /* See if things are selected */ |
| 363 if (gtk_tree_selection_get_selected(select, &model, &iter)) { |
375 if (gtk_tree_selection_get_selected(select, &model, &iter)) { |
| 364 |
376 |
| 365 gchar *id; |
377 gchar *id; |
| |
378 gchar *primary; |
| 366 |
379 |
| 367 /* Retrieve the selected hostname */ |
380 /* Retrieve the selected hostname */ |
| 368 gtk_tree_model_get(model, &iter, TPM_HOSTNAME_COLUMN, &id, -1); |
381 gtk_tree_model_get(model, &iter, TPM_HOSTNAME_COLUMN, &id, -1); |
| 369 |
382 |
| 370 /* Now delete the thing */ |
383 /* Prompt to confirm deletion */ |
| 371 g_assert(purple_certificate_pool_delete(tpm_dat->tls_peers, id)); |
384 primary = g_strdup_printf( |
| |
385 _("Really delete certificate for %s?"), id ); |
| 372 |
386 |
| 373 g_free(id); |
387 purple_request_yes_no(tpm_dat, _("Confirm certificate delete"), |
| |
388 primary, NULL, /* Can this be NULL? */ |
| |
389 2, /* NO is default action */ |
| |
390 NULL, NULL, NULL, |
| |
391 id, /* id ownership passed to callback */ |
| |
392 tls_peers_mgmt_delete_confirm_cb, |
| |
393 tls_peers_mgmt_delete_confirm_cb ); |
| |
394 |
| |
395 g_free(primary); |
| |
396 |
| 374 } else { |
397 } else { |
| 375 purple_debug_warning("gtkcertmgr/tls_peers_mgmt", |
398 purple_debug_warning("gtkcertmgr/tls_peers_mgmt", |
| 376 "Delete clicked with no selection?\n"); |
399 "Delete clicked with no selection?\n"); |
| 377 return; |
400 return; |
| 378 } |
401 } |