From 2e2a558a59d0e7a25953cddf2afb67b7ab96135c Mon Sep 17 00:00:00 2001 From: Christian Grothoff Date: Fri, 27 Aug 2021 17:44:01 +0200 Subject: fix retry counter logic, deal with negative retry counters, limit code reuse for iban method --- src/authorization/anastasis_authorization_plugin_email.c | 5 +++++ src/authorization/anastasis_authorization_plugin_file.c | 6 ++++++ src/authorization/anastasis_authorization_plugin_iban.c | 1 + src/authorization/anastasis_authorization_plugin_post.c | 7 +++++++ src/authorization/anastasis_authorization_plugin_sms.c | 5 +++++ 5 files changed, 24 insertions(+) (limited to 'src/authorization') diff --git a/src/authorization/anastasis_authorization_plugin_email.c b/src/authorization/anastasis_authorization_plugin_email.c index 78c12ca..0eefcc5 100644 --- a/src/authorization/anastasis_authorization_plugin_email.c +++ b/src/authorization/anastasis_authorization_plugin_email.c @@ -27,6 +27,10 @@ #include #include "anastasis_database_lib.h" +/** + * How many retries do we allow per code? + */ +#define INITIAL_RETRY_COUNTER 3 /** * Saves the State of a authorization plugin. @@ -595,6 +599,7 @@ libanastasis_plugin_authorization_email_init (void *cls) } plugin = GNUNET_new (struct ANASTASIS_AuthorizationPlugin); + plugin->retry_counter = INITIAL_RETRY_COUNTER; plugin->code_validity_period = GNUNET_TIME_UNIT_DAYS; plugin->code_rotation_period = GNUNET_TIME_UNIT_HOURS; plugin->code_retransmission_frequency = GNUNET_TIME_UNIT_MINUTES; diff --git a/src/authorization/anastasis_authorization_plugin_file.c b/src/authorization/anastasis_authorization_plugin_file.c index db9dc67..66dbbe1 100644 --- a/src/authorization/anastasis_authorization_plugin_file.c +++ b/src/authorization/anastasis_authorization_plugin_file.c @@ -24,6 +24,11 @@ #include #include "anastasis_database_lib.h" +/** + * How many retries do we allow per code? + */ +#define INITIAL_RETRY_COUNTER 3 + /** * Saves the state of a authorization process @@ -293,6 +298,7 @@ libanastasis_plugin_authorization_file_init (void *cls) plugin = GNUNET_new (struct ANASTASIS_AuthorizationPlugin); plugin->cls = (void *) ac; + plugin->retry_counter = INITIAL_RETRY_COUNTER; plugin->code_validity_period = GNUNET_TIME_UNIT_MINUTES; plugin->code_rotation_period = GNUNET_TIME_UNIT_MINUTES; plugin->code_retransmission_frequency = GNUNET_TIME_UNIT_MINUTES; diff --git a/src/authorization/anastasis_authorization_plugin_iban.c b/src/authorization/anastasis_authorization_plugin_iban.c index be8f33b..cdd51a7 100644 --- a/src/authorization/anastasis_authorization_plugin_iban.c +++ b/src/authorization/anastasis_authorization_plugin_iban.c @@ -697,6 +697,7 @@ libanastasis_plugin_authorization_iban_init (void *cls) ctx->ac = ac; plugin = GNUNET_new (struct ANASTASIS_AuthorizationPlugin); plugin->payment_plugin_managed = true; + plugin->retry_counter = UINT32_MAX; /* long polling */ plugin->code_validity_period = CODE_VALIDITY_PERIOD; plugin->code_rotation_period = GNUNET_TIME_UNIT_ZERO; plugin->code_retransmission_frequency = GNUNET_TIME_UNIT_ZERO; /* not applicable */ diff --git a/src/authorization/anastasis_authorization_plugin_post.c b/src/authorization/anastasis_authorization_plugin_post.c index 98dd042..4adeffd 100644 --- a/src/authorization/anastasis_authorization_plugin_post.c +++ b/src/authorization/anastasis_authorization_plugin_post.c @@ -27,6 +27,12 @@ #include #include "anastasis_database_lib.h" +/** + * How many retries do we allow per code? + */ +#define INITIAL_RETRY_COUNTER 3 + + /** * Saves the State of a authorization plugin. */ @@ -633,6 +639,7 @@ libanastasis_plugin_authorization_post_init (void *cls) GNUNET_free (fn); } plugin = GNUNET_new (struct ANASTASIS_AuthorizationPlugin); + plugin->retry_counter = INITIAL_RETRY_COUNTER; plugin->code_validity_period = GNUNET_TIME_UNIT_MONTHS; plugin->code_rotation_period = GNUNET_TIME_UNIT_WEEKS; plugin->code_retransmission_frequency diff --git a/src/authorization/anastasis_authorization_plugin_sms.c b/src/authorization/anastasis_authorization_plugin_sms.c index 4922380..94b2c0d 100644 --- a/src/authorization/anastasis_authorization_plugin_sms.c +++ b/src/authorization/anastasis_authorization_plugin_sms.c @@ -27,6 +27,10 @@ #include #include "anastasis_database_lib.h" +/** + * How many retries do we allow per code? + */ +#define INITIAL_RETRY_COUNTER 3 /** * Saves the State of a authorization plugin. @@ -585,6 +589,7 @@ libanastasis_plugin_authorization_sms_init (void *cls) } } plugin = GNUNET_new (struct ANASTASIS_AuthorizationPlugin); + plugin->retry_counter = INITIAL_RETRY_COUNTER; plugin->code_validity_period = GNUNET_TIME_UNIT_DAYS; plugin->code_rotation_period = GNUNET_TIME_UNIT_HOURS; plugin->code_retransmission_frequency = GNUNET_TIME_UNIT_MINUTES; -- cgit v1.2.3