[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[taler-anastasis] 10/12: fix fail curl fini
From: |
gnunet |
Subject: |
[taler-anastasis] 10/12: fix fail curl fini |
Date: |
Mon, 07 Dec 2020 20:28:44 +0100 |
This is an automated email from the git hooks/post-receive script.
dennis-neufeld pushed a commit to branch master
in repository anastasis.
commit 81993eb4036211c00d273d0e22ce403765698688
Author: Dennis Neufeld <dennis.neufeld@students.bfh.ch>
AuthorDate: Mon Dec 7 15:08:56 2020 +0100
fix fail curl fini
---
src/cli/test_anastasis_reducer_enter_secret.sh | 2 -
src/lib/anastasis.c | 82 +++++++++++---------------
src/lib/anastasis_api_backup_redux.c | 64 +++++++++++++++-----
3 files changed, 85 insertions(+), 63 deletions(-)
diff --git a/src/cli/test_anastasis_reducer_enter_secret.sh
b/src/cli/test_anastasis_reducer_enter_secret.sh
index fc890ac..7573822 100755
--- a/src/cli/test_anastasis_reducer_enter_secret.sh
+++ b/src/cli/test_anastasis_reducer_enter_secret.sh
@@ -190,8 +190,6 @@ touch $TFILE
"type": "password"}' \
enter_secret $SFILE $TFILE
-wait
-
STATE=`jq -r -e .backup_state < $TFILE`
if test "$STATE" != "BACKUP_FINISHED"
then
diff --git a/src/lib/anastasis.c b/src/lib/anastasis.c
index ac0ea0b..1626796 100644
--- a/src/lib/anastasis.c
+++ b/src/lib/anastasis.c
@@ -1316,7 +1316,7 @@ ANASTASIS_truth_upload_cancel (struct
ANASTASIS_TruthUpload *tu)
if (NULL != tu->tso)
{
GNUNET_log (GNUNET_ERROR_TYPE_WARNING,
- "truth lookup aborted");
+ "truth lookup aborted \n");
ANASTASIS_truth_store_cancel (tu->tso);
tu->tso = NULL;
}
@@ -1567,13 +1567,7 @@ struct PolicyStoreState
* reference to SecretShare
*/
struct ANASTASIS_SecretShare *ss;
-};
-/**
-* Defines a recovery document upload process (recovery document consists of
multiple policies)
-*/
-struct ANASTASIS_SecretShare
-{
/**
* Callback which gives back the payment details
*/
@@ -1593,7 +1587,13 @@ struct ANASTASIS_SecretShare
* Closure for the Result Callback
*/
void *src_cls;
+};
+/**
+* Defines a recovery document upload process (recovery document consists of
multiple policies)
+*/
+struct ANASTASIS_SecretShare
+{
/**
* Closure for the Result Callback
*/
@@ -1658,14 +1658,14 @@ policy_store_cb (void *cls,
(json_int_t) ec,
"hint",
"Unexpected response code!");
- if (NULL != pss->ss->src)
+ if (NULL != pss->src)
{
- pss->ss->src (pss->ss->src_cls,
- &pss->curr_hash,
- pss->anastasis_url,
- ec,
- http_status);
- pss->ss->src = NULL;
+ pss->src (pss->src_cls,
+ &pss->curr_hash,
+ pss->anastasis_url,
+ ec,
+ http_status);
+ pss->src = NULL;
ANASTASIS_secret_share_cancel (pss->ss);
}
return;
@@ -1726,16 +1726,16 @@ policy_store_cb (void *cls,
memset (&pss->curr_hash,
0,
sizeof (struct GNUNET_HashCode));
- if (NULL != pss->ss->spc)
+ if (NULL != pss->spc)
{
- pss->ss->spc (pss->ss->spc_cls,
- ud->details.payment_request,
- pss->anastasis_url,
- ec);
- pss->ss->spc = NULL;
+ pss->spc (pss->spc_cls,
+ ud->details.payment_request,
+ pss->anastasis_url,
+ ec);
+ pss->spc = NULL;
+ return;
}
}
- return;
case ANASTASIS_US_CONFLICTING_POLICY:
GNUNET_break (0);
return;
@@ -1751,16 +1751,16 @@ policy_store_cb (void *cls,
GNUNET_break (0);
return;
}
- if (NULL != pss->ss->src)
+ if (NULL != pss->src)
{
- pss->ss->src (pss->ss->src_cls,
- &pss->curr_hash,
- pss->anastasis_url,
- ec,
- http_status);
- pss->ss->src = NULL;
+ pss->src (pss->src_cls,
+ &pss->curr_hash,
+ pss->anastasis_url,
+ ec,
+ http_status);
+ pss->src = NULL;
+ return;
}
- return;
}
GNUNET_break (0);
}
@@ -1903,10 +1903,6 @@ ANASTASIS_secret_share (struct GNUNET_CURL_Context *ctx,
}
ss->pss = pss;
ss->pss_length = pss_length;
- ss->spc = spc;
- ss->spc_cls = spc_cls;
- ss->src = src;
- ss->src_cls = src_cls;
ss->ctx = ctx;
for (unsigned int i = 0; i < policies_len; i++)
@@ -2112,6 +2108,11 @@ ANASTASIS_secret_share (struct GNUNET_CURL_Context *ctx,
{
ss->pss[l]->http_status = MHD_HTTP_NO_CONTENT;
+ ss->pss[l]->spc = spc;
+ ss->pss[l]->spc_cls = spc_cls;
+ ss->pss[l]->src = src;
+ ss->pss[l]->src_cls = src_cls;
+
ANASTASIS_CRYPTO_user_identifier_derive (id_data,
ss->pss[l]->server_salt,
&ss->pss[l]->id);
@@ -2168,18 +2169,5 @@ ANASTASIS_secret_share (struct GNUNET_CURL_Context *ctx,
void
ANASTASIS_secret_share_cancel (struct ANASTASIS_SecretShare *ss)
{
- if (NULL != ss)
- {
- if (NULL != ss->pss)
- {
- for (unsigned int i = 0; i< ss->pss_length; i++)
- {
- if (NULL != ss->pss[i])
- {
- GNUNET_free (ss->pss[i]);
- }
- }
- }
- GNUNET_free (ss);
- }
+ GNUNET_free (ss);
}
diff --git a/src/lib/anastasis_api_backup_redux.c
b/src/lib/anastasis_api_backup_redux.c
index 489ee34..809408b 100644
--- a/src/lib/anastasis_api_backup_redux.c
+++ b/src/lib/anastasis_api_backup_redux.c
@@ -227,6 +227,10 @@ struct SecretShareState
json_t *state;
};
+/**
+ * Generic container for an action with asynchronous activities.
+ */
+static struct ANASTASIS_ReduxAction *ra;
/**
* Array of truth upload states.
@@ -1406,9 +1410,8 @@ secret_share_result_cb (void *cls,
json_t *rec_doc_uploads = json_object_get (sss->state,
"recovery_document_uploads");
- GNUNET_assert (json_is_array (rec_doc_uploads));
sss->sso = NULL;
-
+ GNUNET_assert (json_is_array (rec_doc_uploads));
json_array_foreach (rec_doc_uploads, index, upload)
{
const char *url = json_string_value (
@@ -1436,21 +1439,22 @@ secret_share_result_cb (void *cls,
GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,
"At %s:%d http status is %u\n", __FILE__, __LINE__,
http_status);
-
- if (check_uploads (rec_doc_uploads))
- {
- set_state (sss->state,
- ANASTASIS_backup_state_to_string (
- ANASTASIS_BACKUP_STATE_BACKUP_FINISHED));
- }
if (http_status == sss->http_status)
{
- sss->cb (sss->cb_cls,
- ANASTASIS_EC_NONE,
- sss->state);
- sss->cb = NULL;
+ if (check_uploads (rec_doc_uploads))
+ {
+ set_state (sss->state,
+ ANASTASIS_backup_state_to_string (
+ ANASTASIS_BACKUP_STATE_BACKUP_FINISHED));
+
+ sss->cb (sss->cb_cls,
+ ANASTASIS_EC_NONE,
+ sss->state);
+ sss->cb = NULL;
+ }
return;
}
+
json_t *error = json_pack ("{s:I, s:s}",
"code",
(json_int_t) ec,
@@ -1466,6 +1470,30 @@ secret_share_result_cb (void *cls,
}
+/**
+ * Function to free a #SecretShareState.
+ *
+ * @param cls closure for a #SecretShareState.
+ */
+static void
+free_enter_secret (void *cls)
+{
+ struct SecretShareState *sss = cls;
+ for (unsigned int i = 0; i < tus_arr_length; i++)
+ {
+ if (NULL != tus_arr[i]->tuo)
+ {
+ ANASTASIS_truth_upload_cancel (tus_arr[i]->tuo);
+ tus_arr[i]->tuo = NULL;
+ }
+ GNUNET_free (tus_arr[i]);
+ }
+ ANASTASIS_secret_share_cancel (sss->sso);
+ sss->sso = NULL;
+ GNUNET_free (sss);
+}
+
+
/**
* Upload recovery documents.
*
@@ -1542,6 +1570,11 @@ upload_rec_documents (json_t *state,
GNUNET_break (0);
return;
}
+ {
+ ra = GNUNET_new (struct ANASTASIS_ReduxAction);
+ ra->cleanup_cls = sss;
+ ra->cleanup = free_enter_secret;
+ }
}
@@ -1658,6 +1691,9 @@ enter_secret (json_t *state,
ANASTASIS_ActionCallback cb,
void *cb_cls)
{
+ if (NULL != ra)
+ GNUNET_free (ra);
+
if (NULL == arguments)
{
json_t *error = json_pack ("{s:I, s:s}",
@@ -1770,7 +1806,7 @@ enter_secret (json_t *state,
}
}
}
- return NULL;
+ return ra;
}
--
To stop receiving notification emails like this one, please contact
gnunet@gnunet.org.
- [taler-anastasis] branch master updated (ad50c20 -> 01da612), gnunet, 2020/12/07
- [taler-anastasis] 04/12: do not delete test ressources, gnunet, 2020/12/07
- [taler-anastasis] 02/12: Merge branch 'master' of ssh://git.taler.net/anastasis, gnunet, 2020/12/07
- [taler-anastasis] 03/12: Merge branch 'master' of ssh://git.taler.net/anastasis, gnunet, 2020/12/07
- [taler-anastasis] 01/12: work on rec doc upload, gnunet, 2020/12/07
- [taler-anastasis] 06/12: set cost to zero for testing purposes..., gnunet, 2020/12/07
- [taler-anastasis] 05/12: added return value to ANASTASIS_challenge_answer, gnunet, 2020/12/07
- [taler-anastasis] 10/12: fix fail curl fini,
gnunet <=
- [taler-anastasis] 07/12: work on secret share, gnunet, 2020/12/07
- [taler-anastasis] 08/12: work on secret share, gnunet, 2020/12/07
- [taler-anastasis] 12/12: Merge branch 'master' of ssh://git.taler.net/anastasis, gnunet, 2020/12/07
- [taler-anastasis] 09/12: fix, gnunet, 2020/12/07
- [taler-anastasis] 11/12: fix secret_share_payment_cb, fix configs, gnunet, 2020/12/07