diff options
author | Christian Grothoff <christian@grothoff.org> | 2021-08-27 17:44:01 +0200 |
---|---|---|
committer | Christian Grothoff <christian@grothoff.org> | 2021-08-27 17:44:01 +0200 |
commit | 2e2a558a59d0e7a25953cddf2afb67b7ab96135c (patch) | |
tree | a8bbc38cdb83092cea3624a855d63a5fb8a71603 /src/authorization | |
parent | 3a6466bb3854863b4b35deb08cb2e4ed03ebf12b (diff) | |
download | anastasis-2e2a558a59d0e7a25953cddf2afb67b7ab96135c.tar.gz anastasis-2e2a558a59d0e7a25953cddf2afb67b7ab96135c.tar.bz2 anastasis-2e2a558a59d0e7a25953cddf2afb67b7ab96135c.zip |
fix retry counter logic, deal with negative retry counters, limit code reuse for iban method
Diffstat (limited to 'src/authorization')
5 files changed, 24 insertions, 0 deletions
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 <gnunet/gnunet_db_lib.h> #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 <gnunet/gnunet_db_lib.h> #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 @@ -28,6 +28,12 @@ #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. */ struct PostContext @@ -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 <gnunet/gnunet_db_lib.h> #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; |