diff options
author | Christian Grothoff <christian@grothoff.org> | 2022-04-13 22:52:17 +0200 |
---|---|---|
committer | Christian Grothoff <christian@grothoff.org> | 2022-04-13 22:52:17 +0200 |
commit | 6febff295d9ac37c79a7613242b0811dde763519 (patch) | |
tree | dc92d8527428ca7ced51afd8097353e2bf02259e /src/anastasis/anastasis-gtk_handle-main-window-forward-clicked.c | |
parent | bcdfee59a05f0e25c876bde4297a64f3c2257391 (diff) | |
download | anastasis-gtk-6febff295d9ac37c79a7613242b0811dde763519.tar.gz anastasis-gtk-6febff295d9ac37c79a7613242b0811dde763519.tar.bz2 anastasis-gtk-6febff295d9ac37c79a7613242b0811dde763519.zip |
implement #7221
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 | 47 |
1 files changed, 14 insertions, 33 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 4c4eab9..de25cff 100644 --- a/src/anastasis/anastasis-gtk_handle-main-window-forward-clicked.c +++ b/src/anastasis/anastasis-gtk_handle-main-window-forward-clicked.c @@ -449,13 +449,9 @@ forward_secret_selecting (void) gchar *secret_name; gint version; gint mask; + const json_t *providers; AG_freeze (); - if (NULL != AG_pd) - { - ANASTASIS_policy_discovery_stop (AG_pd); - AG_pd = NULL; - } AG_stop_long_action (); selection = GTK_TREE_SELECTION ( GCG_get_main_window_object ( @@ -475,41 +471,26 @@ forward_secret_selecting (void) AG_SSMC_POLICY_VERSION, &version, AG_SSMC_ATTRIBUTE_MASK, &mask, AG_SSMC_SECRET_NAME, &secret_name, + AG_SSMC_POLICY_PROVIDER_JSON, &providers, -1); - { - json_t *providers; - - providers = json_array (); - /* FIXME #7221: should build array with _all_ providers - that provide the same policy here, instead of - just picking one of them... - => requires change in tree model or different - lookup. */ - GNUNET_assert (NULL != providers); - GNUNET_assert ( - 0 == - json_array_append ( - providers, - GNUNET_JSON_PACK ( - GNUNET_JSON_pack_string ("url", - provider_url), - GNUNET_JSON_pack_uint64 ("version", - version)))); - args = GNUNET_JSON_PACK ( - GNUNET_JSON_pack_array_steal ("providers", - providers), - GNUNET_JSON_pack_uint64 ("attribute_mask", - mask), - GNUNET_JSON_pack_string ("secret_name", - secret_name) - ); - } + args = GNUNET_JSON_PACK ( + GNUNET_JSON_pack_array_incref ("providers", + (json_t *) providers), + GNUNET_JSON_pack_uint64 ("attribute_mask", + mask), + GNUNET_JSON_pack_string ("secret_name", + secret_name)); GNUNET_log (GNUNET_ERROR_TYPE_INFO, "Proceeding with policy version %u at provider %s\n", (unsigned int) version, provider_url); g_free (provider_url); g_free (secret_name); + if (NULL != AG_pd) + { + ANASTASIS_policy_discovery_stop (AG_pd); + AG_pd = NULL; + } AG_ra = ANASTASIS_redux_action (AG_redux_state, "select_version", args, |