diff options
Diffstat (limited to 'src/microhttpd/daemon.c')
-rw-r--r-- | src/microhttpd/daemon.c | 22 |
1 files changed, 22 insertions, 0 deletions
diff --git a/src/microhttpd/daemon.c b/src/microhttpd/daemon.c index b528622d..a91d2687 100644 --- a/src/microhttpd/daemon.c +++ b/src/microhttpd/daemon.c | |||
@@ -5063,6 +5063,18 @@ parse_options_va (struct MHD_Daemon *daemon, | |||
5063 | daemon->listen_backlog_size = va_arg (ap, | 5063 | daemon->listen_backlog_size = va_arg (ap, |
5064 | unsigned int); | 5064 | unsigned int); |
5065 | break; | 5065 | break; |
5066 | case MHD_OPTION_STRICT_FOR_CLIENT: | ||
5067 | daemon->strict_for_client = va_arg (ap, int);; | ||
5068 | #ifdef HAVE_MESSAGES | ||
5069 | if ( (0 != (daemon->options & MHD_USE_PEDANTIC_CHECKS)) && | ||
5070 | (1 != daemon->strict_for_client) ) | ||
5071 | { | ||
5072 | MHD_DLOG (daemon, | ||
5073 | _("Flag MHD_USE_PEDANTIC_CHECKS is ignored because " | ||
5074 | "another behavior is specified by MHD_OPTION_STRICT_CLIENT.\n")); | ||
5075 | } | ||
5076 | #endif /* HAVE_MESSAGES */ | ||
5077 | break; | ||
5066 | case MHD_OPTION_ARRAY: | 5078 | case MHD_OPTION_ARRAY: |
5067 | oa = va_arg (ap, struct MHD_OptionItem*); | 5079 | oa = va_arg (ap, struct MHD_OptionItem*); |
5068 | i = 0; | 5080 | i = 0; |
@@ -5117,6 +5129,15 @@ parse_options_va (struct MHD_Daemon *daemon, | |||
5117 | MHD_OPTION_END)) | 5129 | MHD_OPTION_END)) |
5118 | return MHD_NO; | 5130 | return MHD_NO; |
5119 | break; | 5131 | break; |
5132 | /* all options taking 'int' */ | ||
5133 | case MHD_OPTION_STRICT_FOR_CLIENT: | ||
5134 | if (MHD_YES != parse_options (daemon, | ||
5135 | servaddr, | ||
5136 | opt, | ||
5137 | (int) oa[i].value, | ||
5138 | MHD_OPTION_END)) | ||
5139 | return MHD_NO; | ||
5140 | break; | ||
5120 | /* all options taking one pointer */ | 5141 | /* all options taking one pointer */ |
5121 | case MHD_OPTION_SOCK_ADDR: | 5142 | case MHD_OPTION_SOCK_ADDR: |
5122 | case MHD_OPTION_HTTPS_MEM_KEY: | 5143 | case MHD_OPTION_HTTPS_MEM_KEY: |
@@ -5428,6 +5449,7 @@ MHD_start_daemon_va (unsigned int flags, | |||
5428 | daemon->listening_address_reuse = 0; | 5449 | daemon->listening_address_reuse = 0; |
5429 | daemon->options = *pflags; | 5450 | daemon->options = *pflags; |
5430 | pflags = &daemon->options; | 5451 | pflags = &daemon->options; |
5452 | daemon->strict_for_client = (0 != (*pflags & MHD_USE_PEDANTIC_CHECKS)) ? 1 : 0; | ||
5431 | daemon->port = port; | 5453 | daemon->port = port; |
5432 | daemon->apc = apc; | 5454 | daemon->apc = apc; |
5433 | daemon->apc_cls = apc_cls; | 5455 | daemon->apc_cls = apc_cls; |