commit ccbfca3f47e03c4876d617788c0987c050785301
parent 2717fca0bd9353a2534728448fa04ed0d0a376ac
Author: Christian Grothoff <christian@grothoff.org>
Date: Fri, 11 Apr 2025 21:47:10 +0200
do not continue after first configuration file parsing error
Diffstat:
1 file changed, 30 insertions(+), 4 deletions(-)
diff --git a/src/kyclogic/kyclogic_api.c b/src/kyclogic/kyclogic_api.c
@@ -1939,6 +1939,8 @@ handle_provider_section (void *cls,
{
struct SectionContext *sc = cls;
+ if (! sc->result)
+ return;
if (0 == strncasecmp (section,
"kyc-provider-",
strlen ("kyc-provider-")))
@@ -2207,6 +2209,8 @@ handle_check_section (void *cls,
{
struct SectionContext *sc = cls;
+ if (! sc->result)
+ return;
if (0 == strncasecmp (section,
"kyc-check-",
strlen ("kyc-check-")))
@@ -2215,7 +2219,6 @@ handle_check_section (void *cls,
add_check (sc->cfg,
section))
sc->result = false;
- return;
}
}
@@ -2386,6 +2389,8 @@ handle_rule_section (void *cls,
{
struct SectionContext *sc = cls;
+ if (! sc->result)
+ return;
if (0 == strncasecmp (section,
"kyc-rule-",
strlen ("kyc-rule-")))
@@ -2394,7 +2399,6 @@ handle_rule_section (void *cls,
add_rule (sc->cfg,
section))
sc->result = false;
- return;
}
}
@@ -2641,6 +2645,8 @@ handle_program_section (void *cls,
{
struct SectionContext *sc = cls;
+ if (! sc->result)
+ return;
if (0 == strncasecmp (section,
"aml-program-",
strlen ("aml-program-")))
@@ -2649,7 +2655,6 @@ handle_program_section (void *cls,
add_program (sc->cfg,
section))
sc->result = false;
- return;
}
}
@@ -2757,6 +2762,8 @@ handle_measure_section (void *cls,
{
struct SectionContext *sc = cls;
+ if (! sc->result)
+ return;
if (0 == strncasecmp (section,
"kyc-measure-",
strlen ("kyc-measure-")))
@@ -2765,7 +2772,6 @@ handle_measure_section (void *cls,
add_measure (sc->cfg,
section))
sc->result = false;
- return;
}
}
@@ -2819,15 +2825,35 @@ TALER_KYCLOGIC_kyc_init (
GNUNET_CONFIGURATION_iterate_sections (cfg,
&handle_provider_section,
&sc);
+ if (! sc.result)
+ {
+ TALER_KYCLOGIC_kyc_done ();
+ return GNUNET_SYSERR;
+ }
GNUNET_CONFIGURATION_iterate_sections (cfg,
&handle_check_section,
&sc);
+ if (! sc.result)
+ {
+ TALER_KYCLOGIC_kyc_done ();
+ return GNUNET_SYSERR;
+ }
GNUNET_CONFIGURATION_iterate_sections (cfg,
&handle_rule_section,
&sc);
+ if (! sc.result)
+ {
+ TALER_KYCLOGIC_kyc_done ();
+ return GNUNET_SYSERR;
+ }
GNUNET_CONFIGURATION_iterate_sections (cfg,
&handle_program_section,
&sc);
+ if (! sc.result)
+ {
+ TALER_KYCLOGIC_kyc_done ();
+ return GNUNET_SYSERR;
+ }
GNUNET_CONFIGURATION_iterate_sections (cfg,
&handle_measure_section,
&sc);