From 6c5d46327bc09b1de2c5f1fb41290b7da4aed8d0 Mon Sep 17 00:00:00 2001 From: Christian Grothoff Date: Mon, 2 Dec 2019 21:41:24 +0100 Subject: add more mime types, handle etag nicely --- src/exchange/taler-exchange-httpd_terms.c | 34 +++++++++++++++++++++++++++++-- 1 file changed, 32 insertions(+), 2 deletions(-) (limited to 'src/exchange/taler-exchange-httpd_terms.c') diff --git a/src/exchange/taler-exchange-httpd_terms.c b/src/exchange/taler-exchange-httpd_terms.c index dadc1588f..8c25e5383 100644 --- a/src/exchange/taler-exchange-httpd_terms.c +++ b/src/exchange/taler-exchange-httpd_terms.c @@ -311,6 +311,13 @@ load_terms (const char *path, const char *mime; } mm[] = { { .ext = "html", .mime = "text/html" }, + { .ext = "htm", .mime = "text/html" }, + { .ext = "txt", .mime = "text/plain" }, + { .ext = "pdf", .mime = "application/pdf" }, + { .ext = "jpg", .mime = "image/jpeg" }, + { .ext = "jpeg", .mime = "image/jpeg" }, + { .ext = "png", .mime = "image/png" }, + { .ext = "gif", .mime = "image/gif" }, { .ext = NULL, .mime = NULL } }; const char *ext = strrchr (name, '.'); @@ -325,6 +332,18 @@ load_terms (const char *path, lang); return; } + if (0 != strncmp (terms_etag, + name, + ext - name - 1)) + { + GNUNET_log (GNUNET_ERROR_TYPE_WARNING, + "Filename `%s' does not match Etag `%s' in directory `%s/%s'. Ignoring it.\n", + name, + terms_etag, + path, + lang); + return; + } mime = NULL; for (unsigned int i = 0; NULL != mm[i].ext; i++) if (0 == strcasecmp (mm[i].ext, @@ -476,15 +495,26 @@ TEH_load_terms (const struct GNUNET_CONFIGURATION_Handle *cfg) char *path; DIR *d; + if (GNUNET_OK != + GNUNET_CONFIGURATION_get_value_string (cfg, + "exchange", + "TERMS_ETAG", + &terms_etag)) + { + GNUNET_log_config_missing (GNUNET_ERROR_TYPE_WARNING, + "exchange", + "TERMS_ETAG"); + return; + } if (GNUNET_OK != GNUNET_CONFIGURATION_get_value_filename (cfg, "exchange", - "terms", + "TERMS_DIR", &path)) { GNUNET_log_config_missing (GNUNET_ERROR_TYPE_WARNING, "exchange", - "TERMS"); + "TERMS_DIR"); return; } -- cgit v1.2.3