commit 6f809f45ff8ffb9a14aec80cdcd5c7902c28e7a8
parent 5ed8feaf2ecba28d88f3e746bf3f5e79782306bf
Author: Christian Grothoff <christian@grothoff.org>
Date: Sat, 9 Nov 2019 16:16:06 +0100
cleanup
Diffstat:
| M | src/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);