diff options
Diffstat (limited to 'src/anastasis/anastasis-gtk_handle-main-window-forward-clicked.c')
-rw-r--r-- | src/anastasis/anastasis-gtk_handle-main-window-forward-clicked.c | 50 |
1 files changed, 49 insertions, 1 deletions
diff --git a/src/anastasis/anastasis-gtk_handle-main-window-forward-clicked.c b/src/anastasis/anastasis-gtk_handle-main-window-forward-clicked.c index 8ce8e3b..c3e78f3 100644 --- a/src/anastasis/anastasis-gtk_handle-main-window-forward-clicked.c +++ b/src/anastasis/anastasis-gtk_handle-main-window-forward-clicked.c | |||
@@ -435,15 +435,63 @@ forward_secret_editing (void) | |||
435 | } | 435 | } |
436 | 436 | ||
437 | 437 | ||
438 | /** | ||
439 | * The user has pressed 'next' after selecting a secret to recover. | ||
440 | */ | ||
438 | static void | 441 | static void |
439 | forward_secret_selecting (void) | 442 | forward_secret_selecting (void) |
440 | { | 443 | { |
444 | GtkTreeSelection *selection; | ||
445 | GtkTreeModel *model; | ||
446 | GtkTreeIter iter; | ||
447 | json_t *args; | ||
448 | char *provider_url; | ||
449 | gint version; | ||
450 | gint mask; | ||
451 | |||
441 | AG_freeze (); | 452 | AG_freeze (); |
453 | if (NULL != AG_pd) | ||
454 | { | ||
455 | ANASTASIS_policy_discovery_stop (AG_pd); | ||
456 | AG_pd = NULL; | ||
457 | } | ||
458 | selection = GTK_TREE_SELECTION ( | ||
459 | GCG_get_main_window_object ( | ||
460 | "anastasis_gtk_secret_selection_treeselection")); | ||
461 | |||
462 | if (! gtk_tree_selection_get_selected (selection, | ||
463 | &model, | ||
464 | &iter)) | ||
465 | { | ||
466 | GNUNET_break (0); | ||
467 | AG_insensitive ("anastasis_gtk_main_window_forward_button"); | ||
468 | return; | ||
469 | } | ||
470 | gtk_tree_model_get (model, | ||
471 | &iter, | ||
472 | AG_SSMC_PROVIDER_URL, &provider_url, | ||
473 | AG_SSMC_POLICY_VERSION, &version, | ||
474 | AG_SSMC_ATTRIBUTE_MASK, &mask, | ||
475 | -1); | ||
476 | args = GNUNET_JSON_PACK ( | ||
477 | GNUNET_JSON_pack_string ("provider_url", | ||
478 | provider_url), | ||
479 | GNUNET_JSON_pack_uint64 ("version", | ||
480 | version), | ||
481 | GNUNET_JSON_pack_uint64 ("mask", | ||
482 | mask) | ||
483 | ); | ||
484 | GNUNET_log (GNUNET_ERROR_TYPE_INFO, | ||
485 | "Proceeding with policy version %u at provider %s\n", | ||
486 | (unsigned int) version, | ||
487 | provider_url); | ||
488 | g_free (provider_url); | ||
442 | AG_ra = ANASTASIS_redux_action (AG_redux_state, | 489 | AG_ra = ANASTASIS_redux_action (AG_redux_state, |
443 | "next", | 490 | "next", |
444 | NULL, | 491 | args, |
445 | &AG_action_cb, | 492 | &AG_action_cb, |
446 | NULL); | 493 | NULL); |
494 | json_decref (args); | ||
447 | } | 495 | } |
448 | 496 | ||
449 | 497 | ||