From 5f268913ddfac25f8d16c3216bba23535e2bd798 Mon Sep 17 00:00:00 2001 From: Christian Grothoff Date: Tue, 11 May 2021 19:17:09 +0200 Subject: return NO if forgetting did not work because it was already forgotten earlier --- src/json/json.c | 45 +++++++++++++++++++++++++++++++-------------- 1 file changed, 31 insertions(+), 14 deletions(-) (limited to 'src/json/json.c') diff --git a/src/json/json.c b/src/json/json.c index 4b91c0c52..2c3d4a2c0 100644 --- a/src/json/json.c +++ b/src/json/json.c @@ -445,6 +445,37 @@ TALER_JSON_contract_part_forget (json_t *json, field); return GNUNET_SYSERR; } + rx = json_object_get (json, + "_forgotten"); + if (NULL == rx) + { + rx = json_object (); + if (0 != + json_object_set_new (json, + "_forgotten", + rx)) + { + GNUNET_break (0); + return GNUNET_SYSERR; + } + } + if (NULL != + json_object_get (rx, + field)) + { + if (! json_is_null (json_object_get (json, + field))) + { + GNUNET_log (GNUNET_ERROR_TYPE_WARNING, + "Field `%s' market as forgotten, but still exists!\n", + field); + return GNUNET_SYSERR; + } + GNUNET_log (GNUNET_ERROR_TYPE_WARNING, + "Already forgot field `%s'\n", + field); + return GNUNET_NO; + } salt = json_string_value (json_object_get (fg, field)); if (NULL == salt) @@ -482,20 +513,6 @@ TALER_JSON_contract_part_forget (json_t *json, return GNUNET_SYSERR; } - rx = json_object_get (json, - "_forgotten"); - if (NULL == rx) - { - rx = json_object (); - if (0 != - json_object_set_new (json, - "_forgotten", - rx)) - { - GNUNET_break (0); - return GNUNET_SYSERR; - } - } /* remember field as 'forgotten' */ if (0 != json_object_set_new (rx, -- cgit v1.2.3