diff options
author | Christian Grothoff <christian@grothoff.org> | 2022-02-27 14:17:49 +0100 |
---|---|---|
committer | Christian Grothoff <christian@grothoff.org> | 2022-02-27 14:17:49 +0100 |
commit | d79df04ba7ea596c308d8d0803d6b5948d7e1252 (patch) | |
tree | ae63ee7e3ac491adc1658dce105eda7ec3430fd1 /src/backend | |
parent | 393d657198c650f2b256457a4b26b8431806b4d2 (diff) | |
download | anastasis-d79df04ba7ea596c308d8d0803d6b5948d7e1252.tar.gz anastasis-d79df04ba7ea596c308d8d0803d6b5948d7e1252.tar.bz2 anastasis-d79df04ba7ea596c308d8d0803d6b5948d7e1252.zip |
-fix tests, clean up code
Diffstat (limited to 'src/backend')
-rw-r--r-- | src/backend/anastasis-httpd_truth_upload.c | 129 |
1 files changed, 61 insertions, 68 deletions
diff --git a/src/backend/anastasis-httpd_truth_upload.c b/src/backend/anastasis-httpd_truth_upload.c index ddf645c..fd14663 100644 --- a/src/backend/anastasis-httpd_truth_upload.c +++ b/src/backend/anastasis-httpd_truth_upload.c @@ -526,7 +526,8 @@ AH_handler_truth_post ( const char *type; enum GNUNET_DB_QueryStatus qs; uint32_t storage_years; - struct GNUNET_TIME_Timestamp paid_until; + struct GNUNET_TIME_Timestamp paid_until + = GNUNET_TIME_UNIT_ZERO_TS; struct GNUNET_JSON_Specification spec[] = { GNUNET_JSON_spec_fixed_auto ("key_share_data", &key_share_data), @@ -695,79 +696,71 @@ AH_handler_truth_post ( if (0 == storage_years) storage_years = 1; + if (! TALER_amount_is_zero (&AH_truth_upload_fee)) { - struct TALER_Amount zero_amount; - - TALER_amount_set_zero (AH_currency, - &zero_amount); - if (0 != TALER_amount_cmp (&AH_truth_upload_fee, - &zero_amount)) + struct GNUNET_TIME_Timestamp desired_until; + enum GNUNET_DB_QueryStatus qs; + + desired_until + = GNUNET_TIME_relative_to_timestamp ( + GNUNET_TIME_relative_multiply (GNUNET_TIME_UNIT_YEARS, + storage_years)); + qs = db->check_truth_upload_paid (db->cls, + truth_uuid, + &paid_until); + if (qs < 0) + return TALER_MHD_reply_with_error (connection, + MHD_HTTP_INTERNAL_SERVER_ERROR, + TALER_EC_GENERIC_DB_FETCH_FAILED, + NULL); + if ( (0 == qs) || + (GNUNET_TIME_timestamp_cmp (paid_until, + <, + desired_until) ) ) { - struct GNUNET_TIME_Timestamp desired_until; - enum GNUNET_DB_QueryStatus qs; - - desired_until - = GNUNET_TIME_relative_to_timestamp ( - GNUNET_TIME_relative_multiply (GNUNET_TIME_UNIT_YEARS, - storage_years)); - qs = db->check_truth_upload_paid (db->cls, - truth_uuid, - &paid_until); - if (qs < 0) + struct GNUNET_TIME_Relative rem; + + if (GNUNET_TIME_absolute_is_past (paid_until.abs_time)) + paid_until = GNUNET_TIME_timestamp_get (); + rem = GNUNET_TIME_absolute_get_difference (paid_until.abs_time, + desired_until.abs_time); + tuc->years_to_pay = rem.rel_value_us + / GNUNET_TIME_UNIT_YEARS.rel_value_us; + if (0 != (rem.rel_value_us % GNUNET_TIME_UNIT_YEARS.rel_value_us)) + tuc->years_to_pay++; + if (0 > + TALER_amount_multiply (&tuc->upload_fee, + &AH_truth_upload_fee, + tuc->years_to_pay)) + { + GNUNET_break_op (0); return TALER_MHD_reply_with_error (connection, - MHD_HTTP_INTERNAL_SERVER_ERROR, - TALER_EC_GENERIC_DB_FETCH_FAILED, - NULL); - if ( (0 == qs) || - (GNUNET_TIME_timestamp_cmp (paid_until, - <, - desired_until) ) ) + MHD_HTTP_BAD_REQUEST, + TALER_EC_GENERIC_PARAMETER_MALFORMED, + "storage_duration_years"); + } + if (! TALER_amount_is_zero (&tuc->upload_fee)) { - struct GNUNET_TIME_Relative rem; - - if (GNUNET_TIME_absolute_is_past (paid_until.abs_time)) - paid_until = GNUNET_TIME_timestamp_get (); - rem = GNUNET_TIME_absolute_get_difference (paid_until.abs_time, - desired_until.abs_time); - tuc->years_to_pay = rem.rel_value_us - / GNUNET_TIME_UNIT_YEARS.rel_value_us; - if (0 != (rem.rel_value_us % GNUNET_TIME_UNIT_YEARS.rel_value_us)) - tuc->years_to_pay++; - if (0 > - TALER_amount_multiply (&tuc->upload_fee, - &AH_truth_upload_fee, - tuc->years_to_pay)) - { - GNUNET_break_op (0); - return TALER_MHD_reply_with_error (connection, - MHD_HTTP_BAD_REQUEST, - TALER_EC_GENERIC_PARAMETER_MALFORMED, - "storage_duration_years"); - } - if ( (0 != tuc->upload_fee.fraction) || - (0 != tuc->upload_fee.value) ) - { - GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, - "Truth upload payment required (%d)!\n", - qs); - return begin_payment (tuc); - } + GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, + "Truth upload payment required (%d)!\n", + qs); + return begin_payment (tuc); } - GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, - "TRUTH paid until %s (%d)!\n", - GNUNET_TIME_relative2s ( - GNUNET_TIME_absolute_get_remaining ( - paid_until.abs_time), - GNUNET_YES), - qs); - } - else - { - paid_until - = GNUNET_TIME_relative_to_timestamp ( - GNUNET_TIME_relative_multiply (GNUNET_TIME_UNIT_YEARS, - ANASTASIS_MAX_YEARS_STORAGE)); } + GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, + "TRUTH paid until %s (%d)!\n", + GNUNET_TIME_relative2s ( + GNUNET_TIME_absolute_get_remaining ( + paid_until.abs_time), + GNUNET_YES), + qs); + } + else + { + paid_until + = GNUNET_TIME_relative_to_timestamp ( + GNUNET_TIME_relative_multiply (GNUNET_TIME_UNIT_YEARS, + ANASTASIS_MAX_YEARS_STORAGE)); } |