diff options
author | Christian Grothoff <christian@grothoff.org> | 2024-05-14 14:30:23 +0200 |
---|---|---|
committer | Christian Grothoff <christian@grothoff.org> | 2024-07-29 12:18:41 +0200 |
commit | fd3a61012d093663d77ebf0bb4cac3a011c981b6 (patch) | |
tree | e8a12ead1bca12082f7399ff0d42dfacbd29e600 /src/kyclogic | |
parent | 52938c75fc93339c6f9d5e3d8c244831163f1de0 (diff) |
work on KycRule parsing
Diffstat (limited to 'src/kyclogic')
-rw-r--r-- | src/kyclogic/kyclogic_api.c | 47 |
1 files changed, 37 insertions, 10 deletions
diff --git a/src/kyclogic/kyclogic_api.c b/src/kyclogic/kyclogic_api.c index 99414a9f8..dc0ad4dcc 100644 --- a/src/kyclogic/kyclogic_api.c +++ b/src/kyclogic/kyclogic_api.c @@ -257,7 +257,20 @@ struct TALER_KYCLOGIC_Measure */ char *measure_name; - // FIXME: other fields!? + /** + * Name of the KYC check. + */ + char *check_name; + + /** + * Name of the AML program. + */ + char *prog_name; + + /** + * Context for the check. Can be NULL. + */ + json_t *context; }; @@ -457,13 +470,20 @@ TALER_KYCLOGIC_rules_parse (const json_t *jlrs) measure_name, jmeasure) { + const char *check_name; + const char *prog_name; + const json_t *context = NULL; struct TALER_KYCLOGIC_Measure *measure = &lrs->custom_measures[off++]; struct GNUNET_JSON_Specification ispec[] = { -#if 0 - GNUNET_JSON_spec_array_const ("FIXME", - &jxxx), -#endif + GNUNET_JSON_spec_string ("check_name", + &check_name), + GNUNET_JSON_spec_string ("prog_name", + &prog_name), + GNUNET_JSON_spec_mark_optional ( + GNUNET_JSON_spec_array_const ("context", + &context), + NULL), GNUNET_JSON_spec_end () }; @@ -475,9 +495,15 @@ TALER_KYCLOGIC_rules_parse (const json_t *jlrs) GNUNET_break_op (0); goto cleanup; } - - measure->measure_name = GNUNET_strdup (measure_name); - // FIXME! + measure->measure_name + = GNUNET_strdup (measure_name); + measure->check_name + = GNUNET_strdup (check_name); + measure->prog_name + = GNUNET_strdup (prog_name); + if (NULL != context) + measure->context + = json_incref ((json_t*) context); } } return lrs; @@ -505,9 +531,10 @@ TALER_KYCLOGIC_rules_free (struct TALER_KYCLOGIC_LegitimizationRuleSet *lrs) struct TALER_KYCLOGIC_Measure *measure = &lrs->custom_measures[i]; - // FIXME - GNUNET_break (0); GNUNET_free (measure->measure_name); + GNUNET_free (measure->check_name); + GNUNET_free (measure->prog_name); + json_decref (measure->context); } GNUNET_free (lrs->kyc_rules); GNUNET_free (lrs->custom_measures); |