gnunet-svn
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[taler-exchange] branch master updated: use new parsing API, fixes issue


From: gnunet
Subject: [taler-exchange] branch master updated: use new parsing API, fixes issues
Date: Wed, 15 Jan 2020 00:15:42 +0100

This is an automated email from the git hooks/post-receive script.

grothoff pushed a commit to branch master
in repository exchange.

The following commit(s) were added to refs/heads/master by this push:
     new 087de13e use new parsing API, fixes issues
087de13e is described below

commit 087de13e0a2173f8f1f87bcef1fe8e33c23e4967
Author: Christian Grothoff <address@hidden>
AuthorDate: Wed Jan 15 00:15:40 2020 +0100

    use new parsing API, fixes issues
---
 src/bank-lib/bank_api_common.c |  2 ++
 src/bank-lib/bank_api_payto.c  | 69 ++++++++----------------------------------
 src/lib/exchange_api_handle.c  |  3 +-
 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.
      */

-- 
To stop receiving notification emails like this one, please contact
address@hidden.



reply via email to

[Prev in Thread] Current Thread [Next in Thread]