taler-mdb

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

commit 4b62f02405a2315bd38967a08eaa4642d0ddc44c
parent 6f809f45ff8ffb9a14aec80cdcd5c7902c28e7a8
Author: Christian Grothoff <christian@grothoff.org>
Date:   Sat,  9 Nov 2019 16:18:27 +0100

cleanup

Diffstat:
Msrc/main.c | 18++++++++++--------
1 file changed, 10 insertions(+), 8 deletions(-)

diff --git a/src/main.c b/src/main.c @@ -96,6 +96,8 @@ struct PaymentActivity struct GNUNET_SCHEDULER_Task *delay_task; + int nfc_has_target; + int wallet_has_uri; }; @@ -175,11 +177,10 @@ cleanup_payment (struct PaymentActivity *pa) GNUNET_SCHEDULER_cancel (pa->task); if (NULL != pa->delay_task) GNUNET_SCHEDULER_cancel (pa->delay_task); - if (NULL != pa->pnd) - { + if (GNUNET_YES == pa->nfc_has_target) nfc_initiator_deselect_target (pa->pnd); // needed? + if (NULL != pa->pnd) nfc_close (pa->pnd); - } GNUNET_free_non_null (pa->taler_pay_uri); GNUNET_free_non_null (pa->order_id); GNUNET_free (pa); @@ -256,7 +257,6 @@ wallet_transmit_uri (void *cls) { GNUNET_log (GNUNET_ERROR_TYPE_ERROR, "Failed to send command\n"); - nfc_initiator_deselect_target (pa->pnd); pa->task = GNUNET_SCHEDULER_add_delayed (NFC_FAILURE_RETRY_FREQ, &connect_target, pa); @@ -270,7 +270,6 @@ wallet_transmit_uri (void *cls) "'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); @@ -308,7 +307,6 @@ 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 (NFC_FAILURE_RETRY_FREQ, &connect_target, pa); @@ -328,7 +326,6 @@ wallet_select_aid (void *cls) "AID selection failure, return code: %x%x, trying to find another NFC client in 1s\n", response[0], response[1]); - nfc_initiator_deselect_target (pa->pnd); pa->task = GNUNET_SCHEDULER_add_delayed (NFC_FAILURE_RETRY_FREQ, &connect_target, pa); @@ -351,6 +348,11 @@ connect_target (void *cls) } }; pa->task = NULL; + if (GNUNET_YES == pa->nfc_has_target) + { + nfc_initiator_deselect_target (pa->pnd); + pa->nfc_has_target = GNUNET_NO; + } pa->nt.nti.nai.szUidLen = 0; GNUNET_log (GNUNET_ERROR_TYPE_INFO, "Trying to find NFC client\n"); @@ -376,11 +378,11 @@ connect_target (void *cls) { GNUNET_log (GNUNET_ERROR_TYPE_INFO, "Found NFC client\n"); + pa->nfc_has_target = GNUNET_YES; pa->task = GNUNET_SCHEDULER_add_now (&wallet_select_aid, pa); return; } - nfc_initiator_deselect_target (pa->pnd); pa->task = GNUNET_SCHEDULER_add_delayed (GNUNET_TIME_UNIT_SECONDS, &connect_target, pa);