taler-mdb

GNU Taler Extensions and Integrations
Log | Files | Refs | Submodules | README | LICENSE

commit 6f809f45ff8ffb9a14aec80cdcd5c7902c28e7a8
parent 5ed8feaf2ecba28d88f3e746bf3f5e79782306bf
Author: Christian Grothoff <christian@grothoff.org>
Date:   Sat,  9 Nov 2019 16:16:06 +0100

cleanup

Diffstat:
Msrc/main.c | 60++++++++++++++++++++++++++++--------------------------------
1 file changed, 28 insertions(+), 32 deletions(-)

diff --git a/src/main.c b/src/main.c @@ -20,7 +20,7 @@ along with * @file main.c * @brief main functionality of the application * @author BOSS Marco -* @author ... +* @author Christian Grothoff */ #include <stdio.h> #include <stdlib.h> @@ -34,6 +34,8 @@ along with #define BACKEND_POLL_TIMEOUT GNUNET_TIME_UNIT_MINUTES +#define NFC_FAILURE_RETRY_FREQ GNUNET_TIME_UNIT_SECONDS + /** * Timeout in milliseconds for libnfc operations. */ @@ -254,35 +256,33 @@ wallet_transmit_uri (void *cls) { GNUNET_log (GNUNET_ERROR_TYPE_ERROR, "Failed to send command\n"); - pa->task = GNUNET_SCHEDULER_add_delayed ( - GNUNET_TIME_UNIT_SECONDS /* FIXME: timeout? */, - &wallet_select_aid, /* TBD: where to resume? */ - pa); - + nfc_initiator_deselect_target (pa->pnd); + pa->task = GNUNET_SCHEDULER_add_delayed (NFC_FAILURE_RETRY_FREQ, + &connect_target, + pa); return; } - if (0 == memcmp (response, + if (0 != memcmp (response, APDU_SUCCESS, sizeof (response))) { - GNUNET_log (GNUNET_ERROR_TYPE_INFO, - "PUT DATA command sent successfully\n"); - pa->wallet_has_uri = GNUNET_YES; - pa->delay_task = GNUNET_SCHEDULER_add_delayed (MAX_HTTP_RETRY_FREQ, - &check_payment_again, - pa); - } - else - { GNUNET_log (GNUNET_ERROR_TYPE_WARNING, - "PUT DATA command transmission failed, return code: %x%x\n", + "'PUT DATA' command transmission failed, return code: %x%x\n", response[0], response[1]); + nfc_initiator_deselect_target (pa->pnd); + pa->task = GNUNET_SCHEDULER_add_delayed (NFC_FAILURE_RETRY_FREQ, + &connect_target, + pa); + return; } - pa->task = GNUNET_SCHEDULER_add_delayed ( - GNUNET_TIME_UNIT_SECONDS /* FIXME: timeout? */, - &wallet_transmit_uri, /* TBD: where to resume? */ - pa); + GNUNET_log (GNUNET_ERROR_TYPE_INFO, + "'PUT DATA' command sent successfully\n"); + pa->wallet_has_uri = GNUNET_YES; + /* FIXME: or just offer Internet service here? */ + pa->delay_task = GNUNET_SCHEDULER_add_delayed (MAX_HTTP_RETRY_FREQ, + &wallet_transmit_uri, + pa); } @@ -309,10 +309,9 @@ wallet_select_aid (void *cls) GNUNET_log (GNUNET_ERROR_TYPE_ERROR, "Failed to transceive with NFC app, trying to find another NFC client in 1s\n"); nfc_initiator_deselect_target (pa->pnd); - pa->task = GNUNET_SCHEDULER_add_delayed ( - GNUNET_TIME_UNIT_SECONDS /* FIXME: timeout? */, - &connect_target, - pa); + pa->task = GNUNET_SCHEDULER_add_delayed (NFC_FAILURE_RETRY_FREQ, + &connect_target, + pa); return; } if (0 == memcmp (response, @@ -330,10 +329,9 @@ wallet_select_aid (void *cls) response[0], response[1]); nfc_initiator_deselect_target (pa->pnd); - pa->task = GNUNET_SCHEDULER_add_delayed ( - GNUNET_TIME_UNIT_SECONDS /* FIXME: timeout? */, - &connect_target, - pa); + pa->task = GNUNET_SCHEDULER_add_delayed (NFC_FAILURE_RETRY_FREQ, + &connect_target, + pa); } @@ -420,12 +418,10 @@ check_payment_cb (void *cls, struct PaymentActivity *pa = cls; pa->cpo = NULL; - // FIXME: check http_status, yada yada - if (MHD_HTTP_OK != http_status) { GNUNET_log (GNUNET_ERROR_TYPE_ERROR, - "Http check payment failed: %u", + "Backend request to /check-payment failed: %u", http_status); cleanup_payment (pa); GNUNET_assert (payment_activity == pa);