Added daemon options for default nonce timeout and max nc values

This commit is contained in:
Evgeny Grin (Karlson2k)
2023-12-28 13:30:47 +03:00
parent ff63d75797
commit ce1ea19549
2 changed files with 49 additions and 1 deletions
+19 -1
View File
@@ -96,7 +96,7 @@ extern "C"
* they are parsed as decimal numbers.
* Example: 0x01093001 = 1.9.30-1.
*/
#define MHD_VERSION 0x00097708
#define MHD_VERSION 0x00097709
/* If generic headers don't work on your platform, include headers
which define 'va_list', 'size_t', 'ssize_t', 'intptr_t', 'off_t',
@@ -2172,6 +2172,24 @@ enum MHD_OPTION
* @note Available since #MHD_VERSION 0x00097706
*/
MHD_OPTION_SOCK_ADDR_LEN = 40
,
/**
* Default nonce timeout value used for Digest Auth.
* This option should be followed by an 'unsigned int' argument.
* Silently ignored if followed by zero value.
* @see #MHD_digest_auth_check3(), MHD_digest_auth_check_digest3()
* @note Available since #MHD_VERSION 0x00097709
*/
MHD_OPTION_DIGEST_AUTH_DEFAULT_NONCE_TIMEOUT = 41
,
/**
* Default maximum nc (nonce count) value used for Digest Auth.
* This option should be followed by an 'uint32_t' argument.
* Silently ignored if followed by zero value.
* @see #MHD_digest_auth_check3(), MHD_digest_auth_check_digest3()
* @note Available since #MHD_VERSION 0x00097709
*/
MHD_OPTION_DIGEST_AUTH_DEFAULT_MAX_NC = 42
} _MHD_FIXED_ENUM;
+30
View File
@@ -6993,6 +6993,26 @@ parse_options_va (struct MHD_Daemon *daemon,
if (0 != (daemon->dauth_bind_type & MHD_DAUTH_BIND_NONCE_URI_PARAMS))
daemon->dauth_bind_type |= MHD_DAUTH_BIND_NONCE_URI;
break;
case MHD_OPTION_DIGEST_AUTH_DEFAULT_NONCE_TIMEOUT:
if (1)
{
unsigned int val;
val = va_arg (ap,
unsigned int);
if (0 != val)
daemon->dauth_def_nonce_timeout = val;
}
break;
case MHD_OPTION_DIGEST_AUTH_DEFAULT_MAX_NC:
if (1)
{
uint32_t val;
val = va_arg (ap,
uint32_t);
if (0 != val)
daemon->dauth_def_max_nc = val;
}
break;
#endif
case MHD_OPTION_LISTEN_SOCKET:
params->listen_fd = va_arg (ap,
@@ -7105,6 +7125,7 @@ parse_options_va (struct MHD_Daemon *daemon,
case MHD_OPTION_LISTEN_BACKLOG_SIZE:
case MHD_OPTION_SERVER_INSANITY:
case MHD_OPTION_DIGEST_AUTH_NONCE_BIND_TYPE:
case MHD_OPTION_DIGEST_AUTH_DEFAULT_NONCE_TIMEOUT:
if (MHD_NO == parse_options (daemon,
params,
opt,
@@ -7145,6 +7166,15 @@ parse_options_va (struct MHD_Daemon *daemon,
MHD_OPTION_END))
return MHD_NO;
break;
/* all options taking 'uint32_t' */
case MHD_OPTION_DIGEST_AUTH_DEFAULT_MAX_NC:
if (MHD_NO == parse_options (daemon,
params,
opt,
(uint32_t) oa[i].value,
MHD_OPTION_END))
return MHD_NO;
break;
/* all options taking one pointer */
case MHD_OPTION_SOCK_ADDR:
case MHD_OPTION_HTTPS_MEM_KEY: