diff options
Diffstat (limited to 'src/microhttpd/daemon.c')
-rw-r--r-- | src/microhttpd/daemon.c | 65 |
1 files changed, 38 insertions, 27 deletions
diff --git a/src/microhttpd/daemon.c b/src/microhttpd/daemon.c index 721c5ba7..b433bff4 100644 --- a/src/microhttpd/daemon.c +++ b/src/microhttpd/daemon.c | |||
@@ -6617,42 +6617,53 @@ parse_options_va (struct MHD_Daemon *daemon, | |||
6617 | switch (opt) | 6617 | switch (opt) |
6618 | { | 6618 | { |
6619 | case MHD_OPTION_CONNECTION_MEMORY_LIMIT: | 6619 | case MHD_OPTION_CONNECTION_MEMORY_LIMIT: |
6620 | daemon->pool_size = va_arg (ap, | 6620 | if (1) |
6621 | size_t); | ||
6622 | if (64 > daemon->pool_size) | ||
6623 | { | 6621 | { |
6622 | size_t val; | ||
6623 | |||
6624 | val = va_arg (ap, | ||
6625 | size_t); | ||
6626 | if (0 != val) | ||
6627 | { | ||
6628 | daemon->pool_size = val; | ||
6629 | if (64 > daemon->pool_size) | ||
6630 | { | ||
6624 | #ifdef HAVE_MESSAGES | 6631 | #ifdef HAVE_MESSAGES |
6625 | MHD_DLOG (daemon, | 6632 | MHD_DLOG (daemon, |
6626 | _ ("Warning: specified MHD_OPTION_CONNECTION_MEMORY_LIMIT " \ | 6633 | _ ("Warning: specified " \ |
6627 | "value is too small and rounded up to 64.\n")); | 6634 | "MHD_OPTION_CONNECTION_MEMORY_LIMIT " \ |
6635 | "value is too small and rounded up to 64.\n")); | ||
6628 | #endif /* HAVE_MESSAGES */ | 6636 | #endif /* HAVE_MESSAGES */ |
6629 | daemon->pool_size = 64; | 6637 | daemon->pool_size = 64; |
6638 | } | ||
6639 | if (daemon->pool_size / 4 < daemon->pool_increment) | ||
6640 | daemon->pool_increment = daemon->pool_size / 4; | ||
6641 | } | ||
6630 | } | 6642 | } |
6631 | if (daemon->pool_size / 4 < daemon->pool_increment) | ||
6632 | daemon->pool_increment = daemon->pool_size / 4; | ||
6633 | break; | 6643 | break; |
6634 | case MHD_OPTION_CONNECTION_MEMORY_INCREMENT: | 6644 | case MHD_OPTION_CONNECTION_MEMORY_INCREMENT: |
6635 | daemon->pool_increment = va_arg (ap, | 6645 | if (1) |
6636 | size_t); | ||
6637 | if (0 == daemon->pool_increment) | ||
6638 | { | ||
6639 | #ifdef HAVE_MESSAGES | ||
6640 | MHD_DLOG (daemon, | ||
6641 | _ ("The MHD_OPTION_CONNECTION_MEMORY_INCREMENT value " \ | ||
6642 | "cannot be zero.\n")); | ||
6643 | #endif /* HAVE_MESSAGES */ | ||
6644 | return MHD_NO; | ||
6645 | } | ||
6646 | if (daemon->pool_size / 4 < daemon->pool_increment) | ||
6647 | { | 6646 | { |
6647 | size_t val; | ||
6648 | |||
6649 | val = va_arg (ap, | ||
6650 | size_t); | ||
6651 | |||
6652 | if (0 != val) | ||
6653 | { | ||
6654 | daemon->pool_increment = val; | ||
6655 | if (daemon->pool_size / 4 < daemon->pool_increment) | ||
6656 | { | ||
6648 | #ifdef HAVE_MESSAGES | 6657 | #ifdef HAVE_MESSAGES |
6649 | MHD_DLOG (daemon, | 6658 | MHD_DLOG (daemon, |
6650 | _ ("Warning: specified " \ | 6659 | _ ("Warning: specified " \ |
6651 | "MHD_OPTION_CONNECTION_MEMORY_INCREMENT value is too " \ | 6660 | "MHD_OPTION_CONNECTION_MEMORY_INCREMENT value is " \ |
6652 | "large and rounded down to 1/4 of " \ | 6661 | "too large and rounded down to 1/4 of " \ |
6653 | "MHD_OPTION_CONNECTION_MEMORY_LIMIT.\n")); | 6662 | "MHD_OPTION_CONNECTION_MEMORY_LIMIT.\n")); |
6654 | #endif /* HAVE_MESSAGES */ | 6663 | #endif /* HAVE_MESSAGES */ |
6655 | daemon->pool_increment = daemon->pool_size / 4; | 6664 | daemon->pool_increment = daemon->pool_size / 4; |
6665 | } | ||
6666 | } | ||
6656 | } | 6667 | } |
6657 | break; | 6668 | break; |
6658 | case MHD_OPTION_CONNECTION_LIMIT: | 6669 | case MHD_OPTION_CONNECTION_LIMIT: |