summaryrefslogtreecommitdiff
path: root/src/anastasis/anastasis-gtk_handle-main-window-forward-clicked.c
diff options
context:
space:
mode:
authorChristian Grothoff <christian@grothoff.org>2022-04-13 22:52:17 +0200
committerChristian Grothoff <christian@grothoff.org>2022-04-13 22:52:17 +0200
commit6febff295d9ac37c79a7613242b0811dde763519 (patch)
treedc92d8527428ca7ced51afd8097353e2bf02259e /src/anastasis/anastasis-gtk_handle-main-window-forward-clicked.c
parentbcdfee59a05f0e25c876bde4297a64f3c2257391 (diff)
downloadanastasis-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.c47
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,