do not log error on MHD_HTTP_GONE status code, revocation is a legitimate reply

This commit is contained in:
Christian Grothoff 2020-12-20 20:03:59 +01:00
parent d986555355
commit 4b9fb610d8
No known key found for this signature in database
GPG Key ID: 939E6BE1E29FC3CC
28 changed files with 83 additions and 67 deletions

View File

@ -131,7 +131,7 @@ handle_deposit_confirmation_finished (void *cls,
hr.ec = TALER_JSON_get_error_code (json); hr.ec = TALER_JSON_get_error_code (json);
hr.hint = TALER_JSON_get_error_hint (json); hr.hint = TALER_JSON_get_error_hint (json);
GNUNET_log (GNUNET_ERROR_TYPE_ERROR, GNUNET_log (GNUNET_ERROR_TYPE_ERROR,
"Unexpected response code %u/%d\n", "Unexpected response code %u/%d for auditor deposit confirmation\n",
(unsigned int) response_code, (unsigned int) response_code,
hr.ec); hr.ec);
GNUNET_break_op (0); GNUNET_break_op (0);

View File

@ -74,7 +74,7 @@ struct TALER_AUDITOR_ListExchangesHandle
/** /**
* Function called when we're done processing the * Function called when we're done processing the
* HTTP /deposit-confirmation request. * HTTP /exchanges request.
* *
* @param cls the `struct TALER_AUDITOR_ListExchangesHandle` * @param cls the `struct TALER_AUDITOR_ListExchangesHandle`
* @param response_code HTTP response code, 0 on error * @param response_code HTTP response code, 0 on error
@ -178,7 +178,7 @@ handle_exchanges_finished (void *cls,
hr.ec = TALER_JSON_get_error_code (json); hr.ec = TALER_JSON_get_error_code (json);
hr.hint = TALER_JSON_get_error_hint (json); hr.hint = TALER_JSON_get_error_hint (json);
GNUNET_log (GNUNET_ERROR_TYPE_ERROR, GNUNET_log (GNUNET_ERROR_TYPE_ERROR,
"Unexpected response code %u/%d\n", "Unexpected response code %u/%d for auditor list-exchanges request\n",
(unsigned int) response_code, (unsigned int) response_code,
(int) hr.ec); (int) hr.ec);
GNUNET_break_op (0); GNUNET_break_op (0);

View File

@ -110,7 +110,7 @@ handle_auditor_add_denomination_finished (void *cls,
hr.ec = TALER_JSON_get_error_code (json); hr.ec = TALER_JSON_get_error_code (json);
hr.hint = TALER_JSON_get_error_hint (json); hr.hint = TALER_JSON_get_error_hint (json);
GNUNET_log (GNUNET_ERROR_TYPE_ERROR, GNUNET_log (GNUNET_ERROR_TYPE_ERROR,
"Unexpected response code %u/%d\n", "Unexpected response code %u/%d for exchange auditor-add-denomination\n",
(unsigned int) response_code, (unsigned int) response_code,
(int) hr.ec); (int) hr.ec);
break; break;

View File

@ -361,6 +361,19 @@ handle_deposit_finished (void *cls,
hr.ec = TALER_JSON_get_error_code (j); hr.ec = TALER_JSON_get_error_code (j);
hr.hint = TALER_JSON_get_error_hint (j); hr.hint = TALER_JSON_get_error_hint (j);
break; break;
case MHD_HTTP_FORBIDDEN:
hr.ec = TALER_JSON_get_error_code (j);
hr.hint = TALER_JSON_get_error_hint (j);
/* Nothing really to verify, exchange says one of the signatures is
invalid; as we checked them, this should never happen, we
should pass the JSON reply to the application */
break;
case MHD_HTTP_NOT_FOUND:
hr.ec = TALER_JSON_get_error_code (j);
hr.hint = TALER_JSON_get_error_hint (j);
/* Nothing really to verify, this should never
happen, we should pass the JSON reply to the application */
break;
case MHD_HTTP_CONFLICT: case MHD_HTTP_CONFLICT:
/* Double spending; check signatures on transaction history */ /* Double spending; check signatures on transaction history */
if (GNUNET_OK != if (GNUNET_OK !=
@ -377,18 +390,13 @@ handle_deposit_finished (void *cls,
hr.hint = TALER_JSON_get_error_hint (j); hr.hint = TALER_JSON_get_error_hint (j);
} }
break; break;
case MHD_HTTP_FORBIDDEN: case MHD_HTTP_GONE:
/* could happen if denomination was revoked */
/* Note: one might want to check /keys for revocation
signature here, alas tricky in case our /keys
is outdated => left to clients */
hr.ec = TALER_JSON_get_error_code (j); hr.ec = TALER_JSON_get_error_code (j);
hr.hint = TALER_JSON_get_error_hint (j); hr.hint = TALER_JSON_get_error_hint (j);
/* Nothing really to verify, exchange says one of the signatures is
invalid; as we checked them, this should never happen, we
should pass the JSON reply to the application */
break;
case MHD_HTTP_NOT_FOUND:
hr.ec = TALER_JSON_get_error_code (j);
hr.hint = TALER_JSON_get_error_hint (j);
/* Nothing really to verify, this should never
happen, we should pass the JSON reply to the application */
break; break;
case MHD_HTTP_INTERNAL_SERVER_ERROR: case MHD_HTTP_INTERNAL_SERVER_ERROR:
hr.ec = TALER_JSON_get_error_code (j); hr.ec = TALER_JSON_get_error_code (j);
@ -401,7 +409,7 @@ handle_deposit_finished (void *cls,
hr.ec = TALER_JSON_get_error_code (j); hr.ec = TALER_JSON_get_error_code (j);
hr.hint = TALER_JSON_get_error_hint (j); hr.hint = TALER_JSON_get_error_hint (j);
GNUNET_log (GNUNET_ERROR_TYPE_ERROR, GNUNET_log (GNUNET_ERROR_TYPE_ERROR,
"Unexpected response code %u/%d\n", "Unexpected response code %u/%d for exchange deposit\n",
(unsigned int) response_code, (unsigned int) response_code,
hr.ec); hr.ec);
GNUNET_break_op (0); GNUNET_break_op (0);

View File

@ -254,7 +254,7 @@ handle_deposit_wtid_finished (void *cls,
hr.ec = TALER_JSON_get_error_code (j); hr.ec = TALER_JSON_get_error_code (j);
hr.hint = TALER_JSON_get_error_hint (j); hr.hint = TALER_JSON_get_error_hint (j);
GNUNET_log (GNUNET_ERROR_TYPE_ERROR, GNUNET_log (GNUNET_ERROR_TYPE_ERROR,
"Unexpected response code %u/%d\n", "Unexpected response code %u/%d for exchange GET deposits\n",
(unsigned int) response_code, (unsigned int) response_code,
(int) hr.ec); (int) hr.ec);
GNUNET_break_op (0); GNUNET_break_op (0);

View File

@ -790,6 +790,9 @@ decode_keys_json (const json_t *resp_obj,
GNUNET_break_op (0); GNUNET_break_op (0);
return GNUNET_SYSERR; return GNUNET_SYSERR;
} }
json_dumpf (resp_obj,
stderr,
JSON_INDENT (2));
/* check the version */ /* check the version */
{ {
const char *ver; const char *ver;
@ -2023,6 +2026,9 @@ TALER_EXCHANGE_test_signing_key (const struct TALER_EXCHANGE_Keys *keys,
(0 == GNUNET_memcmp (pub, (0 == GNUNET_memcmp (pub,
&keys->sign_keys[i].key)) ) &keys->sign_keys[i].key)) )
return GNUNET_OK; return GNUNET_OK;
GNUNET_log (GNUNET_ERROR_TYPE_WARNING,
"Signing key not valid at time %llu\n",
(unsigned long long) now.abs_value_us);
return GNUNET_SYSERR; return GNUNET_SYSERR;
} }

View File

@ -403,7 +403,7 @@ handle_link_finished (void *cls,
hr.ec = TALER_JSON_get_error_code (j); hr.ec = TALER_JSON_get_error_code (j);
hr.hint = TALER_JSON_get_error_hint (j); hr.hint = TALER_JSON_get_error_hint (j);
GNUNET_log (GNUNET_ERROR_TYPE_ERROR, GNUNET_log (GNUNET_ERROR_TYPE_ERROR,
"Unexpected response code %u/%d\n", "Unexpected response code %u/%d for exchange link\n",
(unsigned int) response_code, (unsigned int) response_code,
(int) hr.ec); (int) hr.ec);
break; break;

View File

@ -108,7 +108,7 @@ handle_auditor_disable_finished (void *cls,
hr.ec = TALER_JSON_get_error_code (json); hr.ec = TALER_JSON_get_error_code (json);
hr.hint = TALER_JSON_get_error_hint (json); hr.hint = TALER_JSON_get_error_hint (json);
GNUNET_log (GNUNET_ERROR_TYPE_ERROR, GNUNET_log (GNUNET_ERROR_TYPE_ERROR,
"Unexpected response code %u/%d\n", "Unexpected response code %u/%d for exchange management auditor disable\n",
(unsigned int) response_code, (unsigned int) response_code,
(int) hr.ec); (int) hr.ec);
break; break;

View File

@ -105,7 +105,7 @@ handle_auditor_enable_finished (void *cls,
hr.ec = TALER_JSON_get_error_code (json); hr.ec = TALER_JSON_get_error_code (json);
hr.hint = TALER_JSON_get_error_hint (json); hr.hint = TALER_JSON_get_error_hint (json);
GNUNET_log (GNUNET_ERROR_TYPE_ERROR, GNUNET_log (GNUNET_ERROR_TYPE_ERROR,
"Unexpected response code %u/%d\n", "Unexpected response code %u/%d for exchange management auditor enable\n",
(unsigned int) response_code, (unsigned int) response_code,
(int) hr.ec); (int) hr.ec);
break; break;

View File

@ -294,7 +294,7 @@ handle_get_keys_finished (void *cls,
hr.ec = TALER_JSON_get_error_code (json); hr.ec = TALER_JSON_get_error_code (json);
hr.hint = TALER_JSON_get_error_hint (json); hr.hint = TALER_JSON_get_error_hint (json);
GNUNET_log (GNUNET_ERROR_TYPE_ERROR, GNUNET_log (GNUNET_ERROR_TYPE_ERROR,
"Unexpected response code %u/%d\n", "Unexpected response code %u/%d for exchange management get keys\n",
(unsigned int) response_code, (unsigned int) response_code,
(int) hr.ec); (int) hr.ec);
break; break;

View File

@ -105,7 +105,7 @@ handle_post_keys_finished (void *cls,
hr.ec = TALER_JSON_get_error_code (json); hr.ec = TALER_JSON_get_error_code (json);
hr.hint = TALER_JSON_get_error_hint (json); hr.hint = TALER_JSON_get_error_hint (json);
GNUNET_log (GNUNET_ERROR_TYPE_ERROR, GNUNET_log (GNUNET_ERROR_TYPE_ERROR,
"Unexpected response code %u/%d\n", "Unexpected response code %u/%d for exchange management post keys\n",
(unsigned int) response_code, (unsigned int) response_code,
(int) hr.ec); (int) hr.ec);
break; break;

View File

@ -106,7 +106,7 @@ handle_revoke_denomination_finished (void *cls,
hr.ec = TALER_JSON_get_error_code (json); hr.ec = TALER_JSON_get_error_code (json);
hr.hint = TALER_JSON_get_error_hint (json); hr.hint = TALER_JSON_get_error_hint (json);
GNUNET_log (GNUNET_ERROR_TYPE_ERROR, GNUNET_log (GNUNET_ERROR_TYPE_ERROR,
"Unexpected response code %u/%d\n", "Unexpected response code %u/%d for exchange management revoke denomination\n",
(unsigned int) response_code, (unsigned int) response_code,
(int) hr.ec); (int) hr.ec);
break; break;

View File

@ -103,7 +103,7 @@ handle_revoke_signing_finished (void *cls,
hr.ec = TALER_JSON_get_error_code (json); hr.ec = TALER_JSON_get_error_code (json);
hr.hint = TALER_JSON_get_error_hint (json); hr.hint = TALER_JSON_get_error_hint (json);
GNUNET_log (GNUNET_ERROR_TYPE_ERROR, GNUNET_log (GNUNET_ERROR_TYPE_ERROR,
"Unexpected response code %u/%d\n", "Unexpected response code %u/%d for exchange management revoke signkey\n",
(unsigned int) response_code, (unsigned int) response_code,
(int) hr.ec); (int) hr.ec);
break; break;

View File

@ -106,7 +106,7 @@ handle_set_wire_fee_finished (void *cls,
hr.ec = TALER_JSON_get_error_code (json); hr.ec = TALER_JSON_get_error_code (json);
hr.hint = TALER_JSON_get_error_hint (json); hr.hint = TALER_JSON_get_error_hint (json);
GNUNET_log (GNUNET_ERROR_TYPE_ERROR, GNUNET_log (GNUNET_ERROR_TYPE_ERROR,
"Unexpected response code %u/%d\n", "Unexpected response code %u/%d for exchange management set wire fee\n",
(unsigned int) response_code, (unsigned int) response_code,
(int) hr.ec); (int) hr.ec);
break; break;

View File

@ -111,7 +111,7 @@ handle_auditor_disable_finished (void *cls,
hr.ec = TALER_JSON_get_error_code (json); hr.ec = TALER_JSON_get_error_code (json);
hr.hint = TALER_JSON_get_error_hint (json); hr.hint = TALER_JSON_get_error_hint (json);
GNUNET_log (GNUNET_ERROR_TYPE_ERROR, GNUNET_log (GNUNET_ERROR_TYPE_ERROR,
"Unexpected response code %u/%d\n", "Unexpected response code %u/%d exchange management disable wire\n",
(unsigned int) response_code, (unsigned int) response_code,
(int) hr.ec); (int) hr.ec);
break; break;

View File

@ -107,7 +107,7 @@ handle_auditor_enable_finished (void *cls,
hr.ec = TALER_JSON_get_error_code (json); hr.ec = TALER_JSON_get_error_code (json);
hr.hint = TALER_JSON_get_error_hint (json); hr.hint = TALER_JSON_get_error_hint (json);
GNUNET_log (GNUNET_ERROR_TYPE_ERROR, GNUNET_log (GNUNET_ERROR_TYPE_ERROR,
"Unexpected response code %u/%d\n", "Unexpected response code %u/%d for exchange management enable wire\n",
(unsigned int) response_code, (unsigned int) response_code,
(int) hr.ec); (int) hr.ec);
break; break;

View File

@ -434,7 +434,7 @@ handle_melt_finished (void *cls,
hr.ec = TALER_JSON_get_error_code (j); hr.ec = TALER_JSON_get_error_code (j);
hr.hint = TALER_JSON_get_error_hint (j); hr.hint = TALER_JSON_get_error_hint (j);
GNUNET_log (GNUNET_ERROR_TYPE_ERROR, GNUNET_log (GNUNET_ERROR_TYPE_ERROR,
"Unexpected response code %u/%d\n", "Unexpected response code %u/%d for exchange melt\n",
(unsigned int) response_code, (unsigned int) response_code,
hr.ec); hr.ec);
GNUNET_break_op (0); GNUNET_break_op (0);

View File

@ -286,7 +286,7 @@ handle_recoup_finished (void *cls,
hr.ec = TALER_JSON_get_error_code (j); hr.ec = TALER_JSON_get_error_code (j);
hr.hint = TALER_JSON_get_error_hint (j); hr.hint = TALER_JSON_get_error_hint (j);
GNUNET_log (GNUNET_ERROR_TYPE_ERROR, GNUNET_log (GNUNET_ERROR_TYPE_ERROR,
"Unexpected response code %u/%d\n", "Unexpected response code %u/%d for exchange recoup\n",
(unsigned int) response_code, (unsigned int) response_code,
(int) hr.ec); (int) hr.ec);
GNUNET_break (0); GNUNET_break (0);

View File

@ -255,6 +255,11 @@ handle_refresh_reveal_finished (void *cls,
hr.ec = TALER_JSON_get_error_code (j); hr.ec = TALER_JSON_get_error_code (j);
hr.hint = TALER_JSON_get_error_hint (j); hr.hint = TALER_JSON_get_error_hint (j);
break; break;
case MHD_HTTP_GONE:
/* Server claims key expired or has been revoked */
hr.ec = TALER_JSON_get_error_code (j);
hr.hint = TALER_JSON_get_error_hint (j);
break;
case MHD_HTTP_INTERNAL_SERVER_ERROR: case MHD_HTTP_INTERNAL_SERVER_ERROR:
/* Server had an internal issue; we should retry, but this API /* Server had an internal issue; we should retry, but this API
leaves this to the application */ leaves this to the application */
@ -267,7 +272,7 @@ handle_refresh_reveal_finished (void *cls,
hr.ec = TALER_JSON_get_error_code (j); hr.ec = TALER_JSON_get_error_code (j);
hr.hint = TALER_JSON_get_error_hint (j); hr.hint = TALER_JSON_get_error_hint (j);
GNUNET_log (GNUNET_ERROR_TYPE_ERROR, GNUNET_log (GNUNET_ERROR_TYPE_ERROR,
"Unexpected response code %u/%d\n", "Unexpected response code %u/%d for exchange refreshes reveal\n",
(unsigned int) response_code, (unsigned int) response_code,
(int) hr.ec); (int) hr.ec);
break; break;

View File

@ -365,7 +365,7 @@ verify_conflict_history_ok (struct TALER_EXCHANGE_RefundHandle *rh,
{ {
/* unexpected type, new version on server? */ /* unexpected type, new version on server? */
GNUNET_log (GNUNET_ERROR_TYPE_ERROR, GNUNET_log (GNUNET_ERROR_TYPE_ERROR,
"Unexpected type `%s' in response\n", "Unexpected type `%s' in response for exchange refund\n",
type); type);
GNUNET_break_op (0); GNUNET_break_op (0);
return GNUNET_SYSERR; return GNUNET_SYSERR;
@ -622,7 +622,7 @@ handle_refund_finished (void *cls,
hr.ec = TALER_JSON_get_error_code (j); hr.ec = TALER_JSON_get_error_code (j);
hr.hint = TALER_JSON_get_error_hint (j); hr.hint = TALER_JSON_get_error_hint (j);
GNUNET_log (GNUNET_ERROR_TYPE_ERROR, GNUNET_log (GNUNET_ERROR_TYPE_ERROR,
"Unexpected response code %u/%d\n", "Unexpected response code %u/%d for exchange refund\n",
(unsigned int) response_code, (unsigned int) response_code,
hr.ec); hr.ec);
break; break;

View File

@ -217,7 +217,7 @@ handle_reserves_get_finished (void *cls,
hr.ec = TALER_JSON_get_error_code (j); hr.ec = TALER_JSON_get_error_code (j);
hr.hint = TALER_JSON_get_error_hint (j); hr.hint = TALER_JSON_get_error_hint (j);
GNUNET_log (GNUNET_ERROR_TYPE_ERROR, GNUNET_log (GNUNET_ERROR_TYPE_ERROR,
"Unexpected response code %u/%d\n", "Unexpected response code %u/%d for reserves get\n",
(unsigned int) response_code, (unsigned int) response_code,
(int) hr.ec); (int) hr.ec);
break; break;

View File

@ -318,7 +318,7 @@ handle_transfers_get_finished (void *cls,
hr.ec = TALER_JSON_get_error_code (j); hr.ec = TALER_JSON_get_error_code (j);
hr.hint = TALER_JSON_get_error_hint (j); hr.hint = TALER_JSON_get_error_hint (j);
GNUNET_log (GNUNET_ERROR_TYPE_ERROR, GNUNET_log (GNUNET_ERROR_TYPE_ERROR,
"Unexpected response code %u/%d\n", "Unexpected response code %u/%d for transfers get\n",
(unsigned int) response_code, (unsigned int) response_code,
(int) hr.ec); (int) hr.ec);
break; break;

View File

@ -360,7 +360,7 @@ handle_wire_finished (void *cls,
hr.ec = TALER_JSON_get_error_code (j); hr.ec = TALER_JSON_get_error_code (j);
hr.hint = TALER_JSON_get_error_hint (j); hr.hint = TALER_JSON_get_error_hint (j);
GNUNET_log (GNUNET_ERROR_TYPE_ERROR, GNUNET_log (GNUNET_ERROR_TYPE_ERROR,
"Unexpected response code %u/%d\n", "Unexpected response code %u/%d for exchange wire\n",
(unsigned int) response_code, (unsigned int) response_code,
(int) hr.ec); (int) hr.ec);
break; break;

View File

@ -275,6 +275,22 @@ handle_reserve_withdraw_finished (void *cls,
hr.ec = TALER_JSON_get_error_code (j); hr.ec = TALER_JSON_get_error_code (j);
hr.hint = TALER_JSON_get_error_hint (j); hr.hint = TALER_JSON_get_error_hint (j);
break; break;
case MHD_HTTP_FORBIDDEN:
GNUNET_break_op (0);
/* Nothing really to verify, exchange says one of the signatures is
invalid; as we checked them, this should never happen, we
should pass the JSON reply to the application */
hr.ec = TALER_JSON_get_error_code (j);
hr.hint = TALER_JSON_get_error_hint (j);
break;
case MHD_HTTP_NOT_FOUND:
/* Nothing really to verify, the exchange basically just says
that it doesn't know this reserve. Can happen if we
query before the wire transfer went through.
We should simply pass the JSON reply to the application. */
hr.ec = TALER_JSON_get_error_code (j);
hr.hint = TALER_JSON_get_error_hint (j);
break;
case MHD_HTTP_CONFLICT: case MHD_HTTP_CONFLICT:
/* The exchange says that the reserve has insufficient funds; /* The exchange says that the reserve has insufficient funds;
check the signatures in the history... */ check the signatures in the history... */
@ -292,19 +308,11 @@ handle_reserve_withdraw_finished (void *cls,
hr.hint = TALER_JSON_get_error_hint (j); hr.hint = TALER_JSON_get_error_hint (j);
} }
break; break;
case MHD_HTTP_FORBIDDEN: case MHD_HTTP_GONE:
GNUNET_break_op (0); /* could happen if denomination was revoked */
/* Nothing really to verify, exchange says one of the signatures is /* Note: one might want to check /keys for revocation
invalid; as we checked them, this should never happen, we signature here, alas tricky in case our /keys
should pass the JSON reply to the application */ is outdated => left to clients */
hr.ec = TALER_JSON_get_error_code (j);
hr.hint = TALER_JSON_get_error_hint (j);
break;
case MHD_HTTP_NOT_FOUND:
/* Nothing really to verify, the exchange basically just says
that it doesn't know this reserve. Can happen if we
query before the wire transfer went through.
We should simply pass the JSON reply to the application. */
hr.ec = TALER_JSON_get_error_code (j); hr.ec = TALER_JSON_get_error_code (j);
hr.hint = TALER_JSON_get_error_hint (j); hr.hint = TALER_JSON_get_error_hint (j);
break; break;
@ -320,7 +328,7 @@ handle_reserve_withdraw_finished (void *cls,
hr.ec = TALER_JSON_get_error_code (j); hr.ec = TALER_JSON_get_error_code (j);
hr.hint = TALER_JSON_get_error_hint (j); hr.hint = TALER_JSON_get_error_hint (j);
GNUNET_log (GNUNET_ERROR_TYPE_ERROR, GNUNET_log (GNUNET_ERROR_TYPE_ERROR,
"Unexpected response code %u/%d\n", "Unexpected response code %u/%d for exchange withdraw\n",
(unsigned int) response_code, (unsigned int) response_code,
(int) hr.ec); (int) hr.ec);
break; break;

View File

@ -220,17 +220,13 @@ main (int argc,
return 77; return 77;
} }
libeufin_services = TALER_TESTING_run_libeufin (&bc); libeufin_services = TALER_TESTING_run_libeufin (&bc);
if ( (NULL == libeufin_services.nexus) || (NULL == if ( (NULL == libeufin_services.nexus) ||
libeufin_services.sandbox) ) (NULL == libeufin_services.sandbox) )
{
GNUNET_break (0);
return 77; return 77;
}
} }
else else
{ {
/* no bank service was ever invoked. */ /* no bank service was ever invoked. */
GNUNET_break (0);
return 77; return 77;
} }

View File

@ -42,18 +42,6 @@
*/ */
#define CONFIG_FILE "test_exchange_api_keys_cherry_picking.conf" #define CONFIG_FILE "test_exchange_api_keys_cherry_picking.conf"
/**
* Used to increase the number of denomination keys.
*/
#define CONFIG_FILE_EXTENDED \
"test_exchange_api_keys_cherry_picking_extended.conf"
/**
* Used to increase the number of denomination keys.
*/
#define CONFIG_FILE_EXTENDED_2 \
"test_exchange_api_keys_cherry_picking_extended_2.conf"
/** /**
* Exchange configuration data. * Exchange configuration data.
*/ */

View File

@ -265,6 +265,9 @@ reserve_withdraw_cb (void *cls,
case MHD_HTTP_CONFLICT: case MHD_HTTP_CONFLICT:
/* nothing to check */ /* nothing to check */
break; break;
case MHD_HTTP_GONE:
/* theoretically could check that the key was actually */
break;
case MHD_HTTP_NOT_FOUND: case MHD_HTTP_NOT_FOUND:
/* nothing to check */ /* nothing to check */
break; break;

View File

@ -129,7 +129,9 @@ TALER_TESTING_run_libeufin (const struct TALER_TESTING_BankConfiguration *bc)
NULL); NULL);
if (NULL == nexus_proc) if (NULL == nexus_proc)
{ {
GNUNET_break (0); GNUNET_log_strerror_file (GNUNET_ERROR_TYPE_WARNING,
"exec",
"libeufin-nexus");
return ret; return ret;
} }
GNUNET_asprintf (&curl_check_cmd, GNUNET_asprintf (&curl_check_cmd,