exchange

Base system with REST service to issue digital coins, run by the payment service provider
Log | Files | Refs | Submodules | README | LICENSE

commit f1cc1ca2085de9b112d42f7e2c68d21e4753781b
parent ad27d52bdbfd0569ac9c87153c73d575beaca89e
Author: Christian Grothoff <christian@grothoff.org>
Date:   Mon,  3 Aug 2020 01:16:53 +0200

expose language check logic

Diffstat:
Msrc/include/taler_mhd_lib.h | 16++++++++++++++++
Msrc/mhd/mhd_legal.c | 14+++++++-------
2 files changed, 23 insertions(+), 7 deletions(-)

diff --git a/src/include/taler_mhd_lib.h b/src/include/taler_mhd_lib.h @@ -97,6 +97,22 @@ TALER_MHD_can_compress (struct MHD_Connection *connection); /** + * Check if @a lang matches the @a language_pattern, and if so with + * which preference. + * See also: https://tools.ietf.org/html/rfc7231#section-5.3.1 + * + * @param language_pattern a language preferences string + * like "fr-CH, fr;q=0.9, en;q=0.8, *;q=0.1" + * @param lang the 2-digit language to match + * @return q-weight given for @a lang in @a language_pattern, 1.0 if no weights are given; + * 0 if @a lang is not in @a language_pattern + */ +double +TALER_MHD_language_matches (const char *language_pattern, + const char *lang); + + +/** * Send JSON object as response. * * @param connection the MHD connection diff --git a/src/mhd/mhd_legal.c b/src/mhd/mhd_legal.c @@ -165,9 +165,9 @@ xmime_matches (const char *accept_pattern, * @return q-weight given for @a lang in @a language_pattern, 1.0 if no weights are given; * 0 if @a lang is not in @a language_pattern */ -static double -language_matches (const char *language_pattern, - const char *lang) +double +TALER_MHD_language_matches (const char *language_pattern, + const char *lang) { char *p = GNUNET_strdup (language_pattern); char *sptr; @@ -271,10 +271,10 @@ TALER_MHD_reply_legal (struct MHD_Connection *conn, if ( (NULL == t) || (! xmime_matches (mime, t->mime_type)) || - (language_matches (lang, - p->language) > - language_matches (lang, - t->language) ) ) + (TALER_MHD_language_matches (lang, + p->language) > + TALER_MHD_language_matches (lang, + t->language) ) ) t = p; } }