diff options
Diffstat (limited to 'src/authorization/anastasis-helper-authorization-iban.c')
-rw-r--r-- | src/authorization/anastasis-helper-authorization-iban.c | 66 |
1 files changed, 64 insertions, 2 deletions
diff --git a/src/authorization/anastasis-helper-authorization-iban.c b/src/authorization/anastasis-helper-authorization-iban.c index f908b72..0d3200a 100644 --- a/src/authorization/anastasis-helper-authorization-iban.c +++ b/src/authorization/anastasis-helper-authorization-iban.c @@ -19,7 +19,6 @@ * @author Christian Grothoff * * TODO: - * - needs to load authentication information * - needs to add DB triggers to notify main service of inbound activity * - needs man page */ @@ -139,6 +138,7 @@ shutdown_task (void *cls) } ANASTASIS_DB_plugin_unload (db_plugin); db_plugin = NULL; + ANASTASIS_EUFIN_auth_free (&auth); cfg = NULL; } @@ -293,7 +293,68 @@ run (void *cls, global_ret = EXIT_NOTCONFIGURED; return; } - // FIXME: initialize 'auth' from cfg! + { + char *iban; + char *receiver_name; + + if (GNUNET_OK != + GNUNET_CONFIGURATION_get_value_string (cfg, + "authorization-iban", + "CREDIT_IBAN", + &iban)) + { + GNUNET_log_config_missing (GNUNET_ERROR_TYPE_ERROR, + "authorization-iban", + "CREDIT_IBAN"); + global_ret = EXIT_NOTCONFIGURED; + ANASTASIS_DB_plugin_unload (db_plugin); + db_plugin = NULL; + return; + } + if (GNUNET_OK != + GNUNET_CONFIGURATION_get_value_string (cfg, + "authorization-iban", + "BUSINESS_NAME", + &receiver_name)) + { + GNUNET_log_config_missing (GNUNET_ERROR_TYPE_ERROR, + "authorization-iban", + "BUSINESS_NAME"); + global_ret = EXIT_NOTCONFIGURED; + ANASTASIS_DB_plugin_unload (db_plugin); + db_plugin = NULL; + return; + } + { + size_t len; + char *uri_receiver_name; + + len = GNUNET_STRINGS_urlencode (receiver_name, + strlen (receiver_name), + &uri_receiver_name); + GNUNET_assert (uri_receiver_name[len] == '\0'); + GNUNET_asprintf (&credit_account_uri, + "payto://iban/%s?receiver-name=%s", + iban, + uri_receiver_name); + GNUNET_free (uri_receiver_name); + } + GNUNET_free (iban); + GNUNET_free (receiver_name); + } + + if (GNUNET_OK != + ANASTASIS_EUFIN_auth_parse_cfg (cfg, + "authorization-iban", + &auth)) + { + GNUNET_log (GNUNET_ERROR_TYPE_ERROR, + "Failed to load bank access configuration data\n"); + ANASTASIS_DB_plugin_unload (db_plugin); + db_plugin = NULL; + global_ret = EXIT_NOTCONFIGURED; + return; + } { enum GNUNET_DB_QueryStatus qs; @@ -303,6 +364,7 @@ run (void *cls, if (qs < 0) { GNUNET_break (0); + ANASTASIS_EUFIN_auth_free (&auth); ANASTASIS_DB_plugin_unload (db_plugin); db_plugin = NULL; return; |