diff options
author | Christian Grothoff <christian@grothoff.org> | 2021-10-14 14:45:10 +0200 |
---|---|---|
committer | Christian Grothoff <christian@grothoff.org> | 2021-10-14 14:45:10 +0200 |
commit | 7d62fa065bba408860a79fe121a62ef8f515159c (patch) | |
tree | e03053b30346fb0c6e90ccef7f57c5d63ef8d174 /src/exchange/taler-exchange-httpd.c | |
parent | 1b119edd6225567419add05e0a92170ebfa457df (diff) |
start with KYC support in DB
Diffstat (limited to 'src/exchange/taler-exchange-httpd.c')
-rw-r--r-- | src/exchange/taler-exchange-httpd.c | 48 |
1 files changed, 48 insertions, 0 deletions
diff --git a/src/exchange/taler-exchange-httpd.c b/src/exchange/taler-exchange-httpd.c index b7845f5a..9f0abb0e 100644 --- a/src/exchange/taler-exchange-httpd.c +++ b/src/exchange/taler-exchange-httpd.c @@ -1076,6 +1076,48 @@ handle_mhd_request (void *cls, /** + * Load general KYC configuration parameters for the exchange server into the + * #TEH_kyc_config variable. + * + * @return #GNUNET_OK on success + */ +static enum GNUNET_GenericReturnValue +parse_kyc_settings (void) +{ + if (GNUNET_OK != + GNUNET_CONFIGURATION_get_value_time (TEH_cfg, + "exchange", + "KYC_WITHDRAW_PERIOD", + &TEH_kyc_config.withdraw_period)) + { + GNUNET_log_config_invalid (GNUNET_ERROR_TYPE_ERROR, + "exchange", + "KYC_WITHDRAW_PERIOD", + "valid relative time expected"); + return GNUNET_SYSERR; + } + if (GNUNET_TIME_relative_is_zero (TEH_kyc_config.withdraw_period)) + return GNUNET_OK; + if (GNUNET_OK != + TALER_config_get_amount (TEH_cfg, + "exchange", + "KYC_WITHDRAW_LIMIT", + &TEH_kyc_config.withdraw_limit)) + return GNUNET_SYSERR; + if (0 != strcasecmp (TEH_kyc_config.withdraw_limit.currency, + TEH_currency)) + { + GNUNET_log_config_invalid (GNUNET_ERROR_TYPE_ERROR, + "exchange", + "KYC_WITHDRAW_LIMIT", + "currency mismatch"); + return GNUNET_SYSERR; + } + return GNUNET_OK; +} + + +/** * Load OAuth2.0 configuration parameters for the exchange server into the * #TEH_kyc_config variable. * @@ -1265,6 +1307,12 @@ exchange_serve_process_config (void) } GNUNET_free (master_public_key_str); } + if (TEH_KYC_NONE != TEH_kyc_config.mode) + { + if (GNUNET_OK != + parse_kyc_settings ()) + return GNUNET_SYSERR; + } GNUNET_log (GNUNET_ERROR_TYPE_INFO, "Launching exchange with public key `%s'...\n", GNUNET_p2s (&TEH_master_public_key.eddsa_pub)); |