diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/include/taler_json_lib.h | 170 | ||||
-rw-r--r-- | src/include/taler_util.h | 50 | ||||
-rw-r--r-- | src/json/.gitignore | 1 | ||||
-rw-r--r-- | src/json/Makefile.am | 17 | ||||
-rw-r--r-- | src/json/conversion.c (renamed from src/util/conversion.c) | 1 | ||||
-rw-r--r-- | src/json/test_conversion.c (renamed from src/util/test_conversion.c) | 1 | ||||
-rwxr-xr-x | src/json/test_conversion.sh (renamed from src/util/test_conversion.sh) | 0 | ||||
-rw-r--r-- | src/util/Makefile.am | 13 |
8 files changed, 144 insertions, 109 deletions
diff --git a/src/include/taler_json_lib.h b/src/include/taler_json_lib.h index 7dd728719..dd47feb12 100644 --- a/src/include/taler_json_lib.h +++ b/src/include/taler_json_lib.h @@ -54,8 +54,9 @@ * @return json pack specification */ struct GNUNET_JSON_PackSpec -TALER_JSON_pack_time_abs_human (const char *name, - struct GNUNET_TIME_Absolute at); +TALER_JSON_pack_time_abs_human ( + const char *name, + struct GNUNET_TIME_Absolute at); /** @@ -176,8 +177,9 @@ TALER_JSON_pack_exchange_withdraw_values ( * @return json pack specification */ struct GNUNET_JSON_PackSpec -TALER_JSON_pack_amount (const char *name, - const struct TALER_Amount *amount); +TALER_JSON_pack_amount ( + const char *name, + const struct TALER_Amount *amount); /** @@ -478,8 +480,9 @@ struct TALER_JSON_ProtocolVersion * @return corresponding field spec */ struct GNUNET_JSON_Specification -TALER_JSON_spec_version (const char *field, - struct TALER_JSON_ProtocolVersion *ver); +TALER_JSON_spec_version ( + const char *field, + struct TALER_JSON_ProtocolVersion *ver); /** @@ -506,8 +509,9 @@ TALER_JSON_spec_denom_pub_cipher ( * @return corresponding field spec */ struct GNUNET_JSON_Specification -TALER_JSON_spec_denom_sig (const char *field, - struct TALER_DenominationSignature *sig); +TALER_JSON_spec_denom_sig ( + const char *field, + struct TALER_DenominationSignature *sig); /** @@ -547,9 +551,9 @@ TALER_JSON_spec_exchange_withdraw_values ( * @return corresponding field spec */ struct GNUNET_JSON_Specification -TALER_JSON_spec_blinded_planchet (const char *field, - struct TALER_BlindedPlanchet *blinded_planchet - ); +TALER_JSON_spec_blinded_planchet ( + const char *field, + struct TALER_BlindedPlanchet *blinded_planchet); /** @@ -570,9 +574,10 @@ TALER_JSON_spec_blinded_planchet (const char *field, * @param[out] strptr where to store a pointer to the field with the best variant */ struct GNUNET_JSON_Specification -TALER_JSON_spec_i18n_string (const char *name, - const char *language_pattern, - const char **strptr); +TALER_JSON_spec_i18n_string ( + const char *name, + const char *language_pattern, + const char **strptr); /** @@ -587,8 +592,9 @@ TALER_JSON_spec_i18n_string (const char *name, * @param[out] strptr where to store a pointer to the field with the best variant */ struct GNUNET_JSON_Specification -TALER_JSON_spec_i18n_str (const char *name, - const char **strptr); +TALER_JSON_spec_i18n_str ( + const char *name, + const char **strptr); /** @@ -600,8 +606,9 @@ TALER_JSON_spec_i18n_str (const char *name, * @return corresponding field spec */ struct GNUNET_JSON_Specification -TALER_JSON_spec_token_issue_sig (const char *field, - struct TALER_TokenIssueSignatureP *sig); +TALER_JSON_spec_token_issue_sig ( + const char *field, + struct TALER_TokenIssueSignatureP *sig); /** @@ -626,8 +633,9 @@ TALER_JSON_spec_blinded_token_issue_sig ( * @return corresponding field spec */ struct GNUNET_JSON_Specification -TALER_JSON_spec_token_envelope (const char *field, - struct TALER_TokenEnvelopeP *env); +TALER_JSON_spec_token_envelope ( + const char *field, + struct TALER_TokenEnvelopeP *env); /** @@ -646,8 +654,9 @@ TALER_JSON_spec_token_envelope (const char *field, * #GNUNET_SYSERR on internal error */ enum GNUNET_GenericReturnValue -TALER_JSON_contract_hash (const json_t *json, - struct TALER_PrivateContractHashP *hc); +TALER_JSON_contract_hash ( + const json_t *json, + struct TALER_PrivateContractHashP *hc); /** @@ -661,8 +670,9 @@ TALER_JSON_contract_hash (const json_t *json, * @return #GNUNET_OK on success */ enum GNUNET_GenericReturnValue -TALER_JSON_contract_seed_forgettable (const json_t *spec, - json_t *contract); +TALER_JSON_contract_seed_forgettable ( + const json_t *spec, + json_t *contract); /** @@ -673,8 +683,9 @@ TALER_JSON_contract_seed_forgettable (const json_t *spec, * @return #GNUNET_OK on success, #GNUNET_SYSERR on error */ enum GNUNET_GenericReturnValue -TALER_JSON_contract_mark_forgettable (json_t *json, - const char *field); +TALER_JSON_contract_mark_forgettable ( + json_t *json, + const char *field); /** @@ -687,8 +698,9 @@ TALER_JSON_contract_mark_forgettable (json_t *json, * #GNUNET_SYSERR on error */ enum GNUNET_GenericReturnValue -TALER_JSON_contract_part_forget (json_t *json, - const char *field); +TALER_JSON_contract_part_forget ( + json_t *json, + const char *field); /** @@ -717,10 +729,11 @@ typedef void * @return #GNUNET_OK on success, #GNUNET_SYSERR if @e path is invalid. */ enum GNUNET_GenericReturnValue -TALER_JSON_expand_path (json_t *json, - const char *path, - TALER_JSON_ExpandPathCallback cb, - void *cb_cls); +TALER_JSON_expand_path ( + json_t *json, + const char *path, + TALER_JSON_ExpandPathCallback cb, + void *cb_cls); /** @@ -770,8 +783,9 @@ TALER_JSON_get_error_code2 (const void *data, * @return #GNUNET_OK on success, #GNUNET_SYSERR if @a wire_s is malformed */ enum GNUNET_GenericReturnValue -TALER_JSON_merchant_wire_signature_hash (const json_t *wire_s, - struct TALER_MerchantWireHashP *hc); +TALER_JSON_merchant_wire_signature_hash ( + const json_t *wire_s, + struct TALER_MerchantWireHashP *hc); /** @@ -800,9 +814,10 @@ TALER_JSON_merchant_wire_signature_hash (const json_t *wire_s, * NOT incremented. */ const json_t * -TALER_JSON_extract_i18n (const json_t *object, - const char *language_pattern, - const char *field); +TALER_JSON_extract_i18n ( + const json_t *object, + const char *language_pattern, + const char *field); /** @@ -812,7 +827,8 @@ TALER_JSON_extract_i18n (const json_t *object, * @return true if @a i18n is well-formed */ bool -TALER_JSON_check_i18n (const json_t *i18n); +TALER_JSON_check_i18n ( + const json_t *i18n); /** @@ -823,7 +839,8 @@ TALER_JSON_check_i18n (const json_t *i18n); * @return NULL on error */ char * -TALER_JSON_wire_to_method (const json_t *wire_s); +TALER_JSON_wire_to_method ( + const json_t *wire_s); /** @@ -834,7 +851,8 @@ TALER_JSON_wire_to_method (const json_t *wire_s); * @return NULL on error */ char * -TALER_JSON_wire_to_payto (const json_t *wire_s); +TALER_JSON_wire_to_payto ( + const json_t *wire_s); /** @@ -844,25 +862,85 @@ TALER_JSON_wire_to_payto (const json_t *wire_s); * @param[out] ech where to write the policy hash */ void -TALER_deposit_policy_hash (const json_t *policy, - struct TALER_ExtensionPolicyHashP *ech); +TALER_deposit_policy_hash ( + const json_t *policy, + struct TALER_ExtensionPolicyHashP *ech); + /** * Hash the @a manifests of extensions, given as JSON * * @param manifests Manifests of the extensions * @param[out] eh where to write the hash - * @return GNUNET_OK on success, GNUNET_SYSERR on failure + * @return #GNUNET_OK on success, #GNUNET_SYSERR on failure */ enum GNUNET_GenericReturnValue -TALER_JSON_extensions_manifests_hash (const json_t *manifests, - struct TALER_ExtensionManifestsHashP *eh); +TALER_JSON_extensions_manifests_hash ( + const json_t *manifests, + struct TALER_ExtensionManifestsHashP *eh); + /** * Canonicalize a JSON input to a string according to RFC 8785. */ char * -TALER_JSON_canonicalize (const json_t *input); +TALER_JSON_canonicalize ( + const json_t *input); + + +/** + * Handle to an external process that will assist + * with some JSON-to-JSON conversion. + */ +struct TALER_JSON_ExternalConversion; + +/** + * Type of a callback that receives a JSON @a result. + * + * @param cls closure + * @param status_type how did the process die + * @param code termination status code from the process + * @param result some JSON result, NULL if we failed to get an JSON output + */ +typedef void +(*TALER_JSON_JsonCallback) ( + void *cls, + enum GNUNET_OS_ProcessStatusType status_type, + unsigned long code, + const json_t *result); + + +/** + * Launch some external helper @a binary to convert some @a input + * and eventually call @a cb with the result. + * + * @param input JSON to serialize and pass to the helper process + * @param cb function to call on the result + * @param cb_cls closure for @a cb + * @param binary name of the binary to execute + * @param ... NULL-terminated list of arguments for the @a binary, + * usually starting with again the name of the binary + * @return handle to cancel the operation (and kill the helper) + */ +struct TALER_JSON_ExternalConversion * +TALER_JSON_external_conversion_start ( + const json_t *input, + TALER_JSON_JsonCallback cb, + void *cb_cls, + const char *binary, + ...); + +/** + * Abort external conversion, killing the process and preventing + * the callback from being called. Must not be called after the + * callback was invoked. + * + * @param[in] ec external conversion handle to cancel + */ +void +TALER_JSON_external_conversion_stop ( + struct TALER_JSON_ExternalConversion *ec); + #endif /* TALER_JSON_LIB_H_ */ diff --git a/src/include/taler_util.h b/src/include/taler_util.h index 000d0dee5..10671ea4b 100644 --- a/src/include/taler_util.h +++ b/src/include/taler_util.h @@ -776,56 +776,6 @@ TALER_get_lowest_age ( #define TALER_adult_age(mask) \ sizeof((mask)->bits) * 8 - __builtin_clz ((mask)->bits) - 1 -/** - * Handle to an external process that will assist - * with some JSON-to-JSON conversion. - */ -struct TALER_JSON_ExternalConversion; - -/** - * Type of a callback that receives a JSON @a result. - * - * @param cls closure - * @param status_type how did the process die - * @param code termination status code from the process - * @param result some JSON result, NULL if we failed to get an JSON output - */ -typedef void -(*TALER_JSON_JsonCallback) (void *cls, - enum GNUNET_OS_ProcessStatusType status_type, - unsigned long code, - const json_t *result); - - -/** - * Launch some external helper @a binary to convert some @a input - * and eventually call @a cb with the result. - * - * @param input JSON to serialize and pass to the helper process - * @param cb function to call on the result - * @param cb_cls closure for @a cb - * @param binary name of the binary to execute - * @param ... NULL-terminated list of arguments for the @a binary, - * usually starting with again the name of the binary - * @return handle to cancel the operation (and kill the helper) - */ -struct TALER_JSON_ExternalConversion * -TALER_JSON_external_conversion_start (const json_t *input, - TALER_JSON_JsonCallback cb, - void *cb_cls, - const char *binary, - ...); - -/** - * Abort external conversion, killing the process and preventing - * the callback from being called. Must not be called after the - * callback was invoked. - * - * @param[in] ec external conversion handle to cancel - */ -void -TALER_JSON_external_conversion_stop ( - struct TALER_JSON_ExternalConversion *ec); #undef __TALER_UTIL_LIB_H_INSIDE__ diff --git a/src/json/.gitignore b/src/json/.gitignore index d28843406..5da208e58 100644 --- a/src/json/.gitignore +++ b/src/json/.gitignore @@ -1 +1,2 @@ test_json_wire +test_conversion diff --git a/src/json/Makefile.am b/src/json/Makefile.am index 200afa714..492a4ed39 100644 --- a/src/json/Makefile.am +++ b/src/json/Makefile.am @@ -10,6 +10,7 @@ lib_LTLIBRARIES = \ libtalerjson.la libtalerjson_la_SOURCES = \ + conversion.c \ i18n.c \ json.c \ json_helper.c \ @@ -28,16 +29,30 @@ libtalerjson_la_LIBADD = \ $(XLIB) TESTS = \ + test_conversion \ test_json check_PROGRAMS= \ + test_conversion \ test_json test_json_SOURCES = \ test_json.c test_json_LDADD = \ - $(top_builddir)/src/json/libtalerjson.la \ + libtalerjson.la \ -lgnunetjson \ $(top_builddir)/src/util/libtalerutil.la \ -lgnunetutil \ -ljansson + +test_conversion_SOURCES = \ + test_conversion.c +test_conversion_LDADD = \ + libtalerjson.la \ + $(top_builddir)/src/util/libtalerutil.la \ + -lgnunetjson \ + -lgnunetutil \ + -ljansson + +EXTRA_DIST = \ + test_conversion.sh diff --git a/src/util/conversion.c b/src/json/conversion.c index a7bc63789..42b6f8ed2 100644 --- a/src/util/conversion.c +++ b/src/json/conversion.c @@ -20,6 +20,7 @@ */ #include "platform.h" #include "taler_util.h" +#include "taler_json_lib.h" #include <gnunet/gnunet_util_lib.h> diff --git a/src/util/test_conversion.c b/src/json/test_conversion.c index 00cb35e72..449b02d59 100644 --- a/src/util/test_conversion.c +++ b/src/json/test_conversion.c @@ -21,6 +21,7 @@ #include "platform.h" #include "taler_util.h" #include <gnunet/gnunet_json_lib.h> +#include "taler_json_lib.h" /** * Return value from main(). diff --git a/src/util/test_conversion.sh b/src/json/test_conversion.sh index 26e1a36d8..26e1a36d8 100755 --- a/src/util/test_conversion.sh +++ b/src/json/test_conversion.sh diff --git a/src/util/Makefile.am b/src/util/Makefile.am index 1a730cdb6..9c9a76b22 100644 --- a/src/util/Makefile.am +++ b/src/util/Makefile.am @@ -21,8 +21,7 @@ EXTRA_DIST = \ taler-config.in \ test_helper_eddsa.conf \ test_helper_rsa.conf \ - test_helper_cs.conf \ - test_conversion.sh + test_helper_cs.conf bin_PROGRAMS = \ taler-exchange-secmod-eddsa \ @@ -82,7 +81,6 @@ libtalerutil_la_SOURCES = \ aml_signatures.c \ auditor_signatures.c \ config.c \ - conversion.c \ crypto.c \ crypto_confirmation.c \ crypto_contract.c \ @@ -131,7 +129,6 @@ AM_TESTS_ENVIRONMENT=export TALER_PREFIX=$${TALER_PREFIX:-@libdir@};export PATH= check_PROGRAMS = \ test_age_restriction \ test_amount \ - test_conversion \ test_crypto \ test_helper_eddsa \ test_helper_rsa \ @@ -148,14 +145,6 @@ test_age_restriction_LDADD = \ -lgnunetutil \ libtalerutil.la -test_conversion_SOURCES = \ - test_conversion.c -test_conversion_LDADD = \ - -lgnunetjson \ - -lgnunetutil \ - -ljansson \ - libtalerutil.la - test_amount_SOURCES = \ test_amount.c test_amount_LDADD = \ |