This commit is contained in:
Christian Grothoff 2019-11-16 10:05:57 +01:00
commit 7b353c0185
No known key found for this signature in database
GPG Key ID: 939E6BE1E29FC3CC
2 changed files with 48 additions and 7 deletions

View File

@ -1827,6 +1827,12 @@ enum TALER_ErrorCode
*/ */
TALER_EC_BANK_TRANSACTION_NOT_FOUND = 5111, TALER_EC_BANK_TRANSACTION_NOT_FOUND = 5111,
/**
* Bank received a malformed amount string.
*/
TALER_EC_BANK_BAD_FORMAT_AMOUNT = 5112,
/** /**
* The client does not own the account credited by the transaction * The client does not own the account credited by the transaction
* which is to be rejected, so it has no rights do reject it. To be * which is to be rejected, so it has no rights do reject it. To be
@ -1834,6 +1840,44 @@ enum TALER_ErrorCode
*/ */
TALER_EC_BANK_REJECT_NO_RIGHTS = 5200, TALER_EC_BANK_REJECT_NO_RIGHTS = 5200,
/**
* This error code is returned when no known exception types
* captured the exception.
*/
TALER_EC_BANK_UNMANAGED_EXCEPTION = 5300,
/**
* The sync service failed to access its database.
* This response is provided with HTTP status code
* MHD_HTTP_INTERNAL_ERROR.
*/
TALER_EC_SYNC_DB_FETCH_ERROR = 6000,
/**
* The sync service failed find the record in its database.
* This response is provided with HTTP status code
* MHD_HTTP_NOT_FOUND.
*/
TALER_EC_SYNC_BACKUP_UNKNOWN = 6001,
/**
* The sync service failed find the account in its database.
* This response is provided with HTTP status code
* MHD_HTTP_NOT_FOUND.
*/
TALER_EC_SYNC_ACCOUNT_UNKNOWN = 6002,
/**
* The Etag provided in the If-None-Match header is
* malformed.
* This response is provided with HTTP status code
* MHD_HTTP_BAD_REQUEST.
*/
TALER_EC_SYNC_BAD_ETAG = 6003,
/** /**
* End of error code range. * End of error code range.
*/ */

View File

@ -265,25 +265,22 @@ TALER_url_join (const char *base_url,
unsigned int iparam = 0; unsigned int iparam = 0;
va_list args; va_list args;
struct TALER_Buffer buf = { 0 }; struct TALER_Buffer buf = { 0 };
size_t len = 0; size_t len;
GNUNET_assert (NULL != base_url); GNUNET_assert (NULL != base_url);
GNUNET_assert (NULL != path); GNUNET_assert (NULL != path);
if (0 == strlen (base_url)) if (0 == strlen (base_url))
{ {
/* base URL can't be empty */ /* base URL can't be empty */
GNUNET_break (0); GNUNET_break (0);
return NULL; return NULL;
} }
if ('/' != base_url[strlen (base_url) - 1]) if ('/' != base_url[strlen (base_url) - 1])
{ {
/* Must be an actual base URL! */ /* Must be an actual base URL! */
GNUNET_break (0); GNUNET_break (0);
return NULL; return NULL;
} }
if ('/' == path[0]) if ('/' == path[0])
{ {
/* The path must be relative. */ /* The path must be relative. */
@ -291,14 +288,14 @@ TALER_url_join (const char *base_url,
return NULL; return NULL;
} }
// Path should be relative to existing path of base URL /* Path should be relative to existing path of base URL */
GNUNET_break ('/' != path[0]); GNUNET_break ('/' != path[0]);
if ('/' == path[0]) if ('/' == path[0])
GNUNET_break (0); GNUNET_break (0);
/* 1st pass: compute length */ /* 1st pass: compute length */
len += strlen (base_url) + strlen (path); len = strlen (base_url) + strlen (path) + 1;
va_start (args, path); va_start (args, path);
while (1) while (1)
@ -316,7 +313,6 @@ TALER_url_join (const char *base_url,
va_end (args); va_end (args);
TALER_buffer_prealloc (&buf, len); TALER_buffer_prealloc (&buf, len);
TALER_buffer_write_str (&buf, base_url); TALER_buffer_write_str (&buf, base_url);
TALER_buffer_write_str (&buf, path); TALER_buffer_write_str (&buf, path);
@ -325,6 +321,7 @@ TALER_url_join (const char *base_url,
{ {
char *key; char *key;
char *value; char *value;
key = va_arg (args, char *); key = va_arg (args, char *);
if (NULL == key) if (NULL == key)
break; break;