From b21705882156f73c6623f76b719fcaadc3d26555 Mon Sep 17 00:00:00 2001 From: Christian Grothoff Date: Thu, 1 Jun 2017 23:00:06 +0200 Subject: add version to keydata returned by libtalerexchange (#5035) --- src/exchange-lib/exchange_api_handle.c | 6 ++++++ src/include/taler_exchange_service.h | 8 ++++++++ 2 files changed, 14 insertions(+) diff --git a/src/exchange-lib/exchange_api_handle.c b/src/exchange-lib/exchange_api_handle.c index 1caa6962d..6ed868f74 100644 --- a/src/exchange-lib/exchange_api_handle.c +++ b/src/exchange-lib/exchange_api_handle.c @@ -503,7 +503,10 @@ decode_keys_json (const json_t *resp_obj, hash_context = GNUNET_CRYPTO_hash_context_start (); /* parse the master public key and issue date of the response */ { + const char *ver; struct GNUNET_JSON_Specification spec[] = { + GNUNET_JSON_spec_string ("version", + &ver), GNUNET_JSON_spec_fixed_auto ("master_public_key", &key_data->master_pub), GNUNET_JSON_spec_fixed_auto ("eddsa_sig", @@ -519,6 +522,7 @@ decode_keys_json (const json_t *resp_obj, GNUNET_JSON_parse (resp_obj, spec, NULL, NULL)); + key_data->version = GNUNET_strdup (ver); } /* parse the signing keys */ @@ -643,6 +647,8 @@ free_key_data (struct TALER_EXCHANGE_Keys *key_data) GNUNET_array_grow (key_data->auditors, key_data->num_auditors, 0); + GNUNET_free_non_null (key_data->version); + key_data->version = NULL; } diff --git a/src/include/taler_exchange_service.h b/src/include/taler_exchange_service.h index 20f98998a..b60b97e65 100644 --- a/src/include/taler_exchange_service.h +++ b/src/include/taler_exchange_service.h @@ -197,6 +197,14 @@ struct TALER_EXCHANGE_Keys */ struct TALER_EXCHANGE_AuditorInformation *auditors; + /** + * Supported Taler protocol version by the exchange. + * String in the format current:revision:age using the + * semantics of GNU libtool. See + * https://www.gnu.org/software/libtool/manual/html_node/Versioning.html#Versioning + */ + char *version; + /** * Length of the @e sign_keys array. */ -- cgit v1.2.3