summaryrefslogtreecommitdiff
path: root/src/util/util.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/util/util.c')
-rw-r--r--src/util/util.c31
1 files changed, 31 insertions, 0 deletions
diff --git a/src/util/util.c b/src/util/util.c
index 531bd27f5..7f5e60e4d 100644
--- a/src/util/util.c
+++ b/src/util/util.c
@@ -710,4 +710,35 @@ TALER_xtalerbank_account_url_from_payto (const char *payto)
}
+/**
+ * Obtain the account name from a payto URL.
+ *
+ * @param payto an x-taler-bank payto URL
+ * @return only the account name from the @a payto URL, NULL if not an x-taler-bank
+ * payto URL
+ */
+char *
+TALER_xtalerbank_account_from_payto (const char *payto)
+{
+ const char *beg;
+ const char *end;
+
+ if (0 != strncasecmp (payto,
+ "payto://x-taler-bank/",
+ strlen ("payto://x-taler-bank/")))
+ return NULL;
+ beg = strchr (&payto[strlen ("payto://x-taler-bank/")],
+ '/');
+ if (NULL == beg)
+ return NULL;
+ beg++;
+ end = strchr (beg,
+ '?');
+ if (NULL == end)
+ return GNUNET_strdup (beg);
+ return GNUNET_strndup (beg,
+ end - beg);
+}
+
+
/* end of util.c */