From 200bbfbefda8c67ec5196d7384b32e9fa33c4bb7 Mon Sep 17 00:00:00 2001 From: Christian Grothoff Date: Mon, 18 Mar 2024 23:08:17 +0100 Subject: add new TALER_MHD_parse_request_arg_snumber function to libtalermhd --- src/mhd/Makefile.am | 2 +- src/mhd/mhd_parsing.c | 36 ++++++++++++++++++++++++++++++++++++ 2 files changed, 37 insertions(+), 1 deletion(-) (limited to 'src/mhd') diff --git a/src/mhd/Makefile.am b/src/mhd/Makefile.am index 1e3c49397..d36bba42f 100644 --- a/src/mhd/Makefile.am +++ b/src/mhd/Makefile.am @@ -16,7 +16,7 @@ libtalermhd_la_SOURCES = \ mhd_responses.c \ mhd_run.c libtalermhd_la_LDFLAGS = \ - -version-info 1:0:1 \ + -version-info 2:0:2 \ -no-undefined libtalermhd_la_LIBADD = \ $(top_builddir)/src/json/libtalerjson.la \ diff --git a/src/mhd/mhd_parsing.c b/src/mhd/mhd_parsing.c index 1e8258f55..2c3312cf2 100644 --- a/src/mhd/mhd_parsing.c +++ b/src/mhd/mhd_parsing.c @@ -245,6 +245,42 @@ TALER_MHD_parse_request_arg_number (struct MHD_Connection *connection, } +enum GNUNET_GenericReturnValue +TALER_MHD_parse_request_arg_snumber (struct MHD_Connection *connection, + const char *name, + int64_t *val) +{ + const char *ts; + char dummy; + long long num; + + ts = MHD_lookup_connection_value (connection, + MHD_GET_ARGUMENT_KIND, + name); + if (NULL == ts) + return GNUNET_OK; + if (1 != + sscanf (ts, + "%lld%c", + &num, + &dummy)) + { + MHD_RESULT mret; + + GNUNET_break_op (0); + mret = TALER_MHD_reply_with_error (connection, + MHD_HTTP_BAD_REQUEST, + TALER_EC_GENERIC_PARAMETER_MALFORMED, + name); + return (MHD_YES == mret) + ? GNUNET_NO + : GNUNET_SYSERR; + } + *val = (int64_t) num; + return GNUNET_OK; +} + + enum GNUNET_GenericReturnValue TALER_MHD_parse_request_arg_amount (struct MHD_Connection *connection, const char *name, -- cgit v1.2.3