commit 1689be3a275dd8b4bb26c2f8501bd6050ac17e98
parent f8502a2e07a5e3402431d6218252879c46621f46
Author: Evgeny Grin (Karlson2k) <k2k@narod.ru>
Date: Wed, 12 Oct 2022 18:27:24 +0300
daemon: merged processing of two similar options
Diffstat:
1 file changed, 22 insertions(+), 30 deletions(-)
diff --git a/src/microhttpd/daemon.c b/src/microhttpd/daemon.c
@@ -6416,26 +6416,38 @@ parse_options_va (struct MHD_Daemon *daemon,
#endif
break;
case MHD_OPTION_HTTPS_PRIORITIES:
+ case MHD_OPTION_HTTPS_PRIORITIES_APPEND:
pstr = va_arg (ap,
const char *);
if (0 != (daemon->options & MHD_USE_TLS))
{
- int init_res;
if (NULL != daemon->priority_cache)
gnutls_priority_deinit (daemon->priority_cache);
- init_res = gnutls_priority_init (&daemon->priority_cache,
- pstr,
- NULL);
- if (GNUTLS_E_SUCCESS != init_res)
+
+ if (MHD_OPTION_HTTPS_PRIORITIES == opt)
{
+ int init_res;
+ init_res = gnutls_priority_init (&daemon->priority_cache,
+ pstr,
+ NULL);
+ if (GNUTLS_E_SUCCESS != init_res)
+ {
#ifdef HAVE_MESSAGES
- MHD_DLOG (daemon,
- _ ("Setting priorities to `%s' failed: %s\n"),
- pstr,
- gnutls_strerror (init_res));
+ MHD_DLOG (daemon,
+ _ ("Setting priorities to `%s' failed: %s\n"),
+ pstr,
+ gnutls_strerror (init_res));
#endif
+ daemon->priority_cache = NULL;
+ return MHD_NO;
+ }
+ }
+ else
+ {
+ /* The cache has been deinited */
daemon->priority_cache = NULL;
- return MHD_NO;
+ if (! daemon_tls_priorities_init_append (daemon, pstr))
+ return MHD_NO;
}
}
#ifdef HAVE_MESSAGES
@@ -6446,26 +6458,6 @@ parse_options_va (struct MHD_Daemon *daemon,
opt);
#endif
break;
- case MHD_OPTION_HTTPS_PRIORITIES_APPEND:
- pstr = va_arg (ap,
- const char *);
- if (0 != (daemon->options & MHD_USE_TLS))
- {
- if (NULL != daemon->priority_cache)
- gnutls_priority_deinit (daemon->priority_cache);
- daemon->priority_cache = NULL;
- /* The next function log error messages if needed */
- if (! daemon_tls_priorities_init_append (daemon, pstr))
- return MHD_NO;
- }
-#ifdef HAVE_MESSAGES
- else
- MHD_DLOG (daemon,
- _ ("MHD HTTPS option %d passed to MHD but " \
- "MHD_USE_TLS not set.\n"),
- opt);
-#endif
- break;
case MHD_OPTION_HTTPS_CERT_CALLBACK:
#if GNUTLS_VERSION_MAJOR < 3
#ifdef HAVE_MESSAGES