diff options
| author | Christian Grothoff <christian@grothoff.org> | 2020-01-15 00:15:40 +0100 | 
|---|---|---|
| committer | Christian Grothoff <christian@grothoff.org> | 2020-01-15 00:15:40 +0100 | 
| commit | 087de13e0a2173f8f1f87bcef1fe8e33c23e4967 (patch) | |
| tree | b3587b2ec05a52329b1da7720ea67ab8fe18c4d4 /src | |
| parent | bf3c7dd10fea30d3c59849a21cefcb79c7c940e4 (diff) | |
use new parsing API, fixes issues
Diffstat (limited to 'src')
| -rw-r--r-- | src/bank-lib/bank_api_common.c | 2 | ||||
| -rw-r--r-- | src/bank-lib/bank_api_payto.c | 69 | ||||
| -rw-r--r-- | src/lib/exchange_api_handle.c | 3 | ||||
| -rw-r--r-- | src/lib/test_exchange_api.c | 4 | 
4 files changed, 17 insertions, 61 deletions
diff --git a/src/bank-lib/bank_api_common.c b/src/bank-lib/bank_api_common.c index 8a8f4289..d9df5b39 100644 --- a/src/bank-lib/bank_api_common.c +++ b/src/bank-lib/bank_api_common.c @@ -70,6 +70,8 @@ TALER_BANK_setup_auth_ (CURL *easy,  /**   * Obtain the URL to use for an API request. + * FIXME: duplicates MAH_path_to_url2, and likely also logic in util! + * FIXME: duplicates TEAH_path_to_url2, and likely also logic in util!   *   * @param u base URL of the bank.   * @param path Taler API path (i.e. "/history"). diff --git a/src/bank-lib/bank_api_payto.c b/src/bank-lib/bank_api_payto.c index 5f87eb79..c429561e 100644 --- a/src/bank-lib/bank_api_payto.c +++ b/src/bank-lib/bank_api_payto.c @@ -399,74 +399,31 @@ parse_payto_iban (const char *account_url,   * Parse payto://x-taler-bank/ account URL (only account information,   * wire subject and amount are ignored).   * - * @param account_url URL to parse + * @param payto_url URL to parse   * @param account[out] set to information, can be NULL   * @return #TALER_EC_NONE if @a account_url is well-formed   */  static enum TALER_ErrorCode -parse_payto_x_taler_bank (const char *account_url, +parse_payto_x_taler_bank (const char *payto_url,                            struct TALER_Account *r_account)  { -  const char *hostname; -  const char *account; -  const char *q; -  unsigned int port; -  char *p; -  #define PREFIX "payto://x-taler-bank/" -  if (0 != strncasecmp (account_url, +  if (0 != strncasecmp (payto_url,                          PREFIX,                          strlen (PREFIX)))      return TALER_EC_PAYTO_WRONG_METHOD; -  hostname = &account_url[strlen (PREFIX)]; -  if (NULL == (account = strchr (hostname, -                                 (unsigned char) '/'))) -    return TALER_EC_PAYTO_MALFORMED; -  account++; -  if (NULL == r_account) -    return TALER_EC_NONE; -  q = strchr (account, -              (unsigned char) '?'); -  if (0 == q) -    q = account + strlen (account); +#undef PREFIX    r_account->details.x_taler_bank.hostname -    = GNUNET_strndup (hostname, -                      account - hostname); -  port = 443; /* if non given, equals 443.  */ -  if (NULL != (p = strchr (r_account->details.x_taler_bank.hostname, -                           (unsigned char) ':'))) -  { -    p++; -    if (1 != sscanf (p, -                     "%u", -                     &port)) -    { -      GNUNET_break (0); -      TALER_LOG_ERROR ("Malformed host from payto:// URI\n"); -      GNUNET_free (r_account->details.x_taler_bank.hostname); -      r_account->details.x_taler_bank.hostname = NULL; -      return TALER_EC_PAYTO_MALFORMED; -    } -  } -  if (443 != port) -  { -    GNUNET_assert -      (GNUNET_SYSERR != GNUNET_asprintf -        (&r_account->details.x_taler_bank.account_base_url, -        "http://%s/%.*s", -        r_account->details.x_taler_bank.hostname, -        (int) (q - account), -        account)); -  } -  else +    = TALER_xtalerbank_base_url_from_payto (payto_url); +  if (NULL == r_account->details.x_taler_bank.hostname) +    return TALER_EC_PAYTO_MALFORMED; +  r_account->details.x_taler_bank.account_base_url +    = TALER_xtalerbank_account_url_from_payto (payto_url); +  if (NULL == r_account->details.x_taler_bank.hostname)    { -    GNUNET_assert -      (GNUNET_SYSERR != GNUNET_asprintf -        (&r_account->details.x_taler_bank.account_base_url, -        "https://%s/%.*s", -        r_account->details.x_taler_bank.hostname, -        (int) (q - account), -        account)); +    GNUNET_free (r_account->details.x_taler_bank.hostname); +    r_account->details.x_taler_bank.hostname = NULL; +    return TALER_EC_PAYTO_MALFORMED;    }    r_account->type = TALER_PAC_X_TALER_BANK;    return TALER_EC_NONE; diff --git a/src/lib/exchange_api_handle.c b/src/lib/exchange_api_handle.c index 6b51519f..c7b402b5 100644 --- a/src/lib/exchange_api_handle.c +++ b/src/lib/exchange_api_handle.c @@ -1262,7 +1262,7 @@ keys_completed_cb (void *cls,      for (unsigned int i = 0; i<kd_old.num_denom_keys; i++)        kd.denom_keys[i].key.rsa_public_key          = GNUNET_CRYPTO_rsa_public_key_dup ( -        kd_old.denom_keys[i].key.rsa_public_key); +            kd_old.denom_keys[i].key.rsa_public_key);      kd.num_auditors = kd_old.num_auditors;      kd.auditors = GNUNET_new_array (kd.num_auditors, @@ -1422,6 +1422,7 @@ TEAH_path_to_url (struct TALER_EXCHANGE_Handle *h,  /**   * Obtain the URL to use for an API request. + * FIXME: duplicates MAH_path_to_url2, and likely also logic in util!   *   * @param base_url base URL of the exchange (i.e. "http://exchange/")   * @param path Taler API path (i.e. "/reserve/withdraw") diff --git a/src/lib/test_exchange_api.c b/src/lib/test_exchange_api.c index 81e54a98..4a1f406f 100644 --- a/src/lib/test_exchange_api.c +++ b/src/lib/test_exchange_api.c @@ -121,14 +121,11 @@ run (void *cls,       */      CMD_TRANSFER_TO_EXCHANGE ("create-reserve-1",                                "EUR:5.01"), -      /**       * Make a reserve exist, according to the previous       * transfer.       */      CMD_EXEC_WIREWATCH ("wirewatch-1"), - -      /**       * Withdraw EUR:5.       */ @@ -136,7 +133,6 @@ run (void *cls,                                         "create-reserve-1",                                         "EUR:5",                                         MHD_HTTP_OK), -      /**       * Check the reserve is depleted.       */  | 
