aboutsummaryrefslogtreecommitdiff
path: root/src/microhttpd/internal.h
Commit message (Collapse)AuthorAge
* Updated copyright yearsEvgeny Grin (Karlson2k)2024-01-31
|
* digest auth: added default timeout and max nc valuesEvgeny Grin (Karlson2k)2023-12-28
|
* internal.h: reordered members in struct MHD_DaemonEvgeny Grin (Karlson2k)2023-12-28
|
* Added new daemon flag MHD_USE_NO_THREAD_SAFETYEvgeny Grin (Karlson2k)2023-11-21
| | | | | | | | | | Do not assume anymore single-threaded environment if external polling is used. The application is free to use multiple threads if MHD in the external polling mode. The new flag could be used to disable some thread-safety in MHD to improve single-thread processing speed and resources usage. Basically the new flag restores the old behaviour for external polling mode.
* Moved user options counter to shorter its lifetimeEvgeny Grin (Karlson2k)2023-11-21
|
* MHD_D_DOES_SCKT_FIT_FDSET_(): simplified macroEvgeny Grin (Karlson2k)2023-11-10
|
* Added MHD_OPTION_APP_FD_SETSIZE and MHD_FEATURE_FLEXIBLE_FD_SETSIZEEvgeny Grin (Karlson2k)2023-11-07
| | | | | | This should provide better compatibility with platforms with ability to override FD_SETSIZE. The new option is used examples and tests.
* internal.h: added macros for internal threads modes detectionEvgeny Grin (Karlson2k)2023-11-07
|
* internal.h: moved some macrosEvgeny Grin (Karlson2k)2023-11-07
| | | | This is a correction for a225047802d49add197983055005f55559d7b47f
* Updated and used macros for polling modesEvgeny Grin (Karlson2k)2023-11-01
|
* internal.h: added macros for polling mode detectionEvgeny Grin (Karlson2k)2023-11-01
|
* Added calculation of request headers total sizeEvgeny Grin (Karlson2k)2023-09-26
|
* Refactoring: store "request target" original lengthEvgeny Grin (Karlson2k)2023-09-26
|
* Improved doxy for #MHD_CONNECTION_INFO_REQUEST_HEADER_SIZE infoEvgeny Grin (Karlson2k)2023-09-19
|
* Renamed 'pid' -> 'tid' when used for threadsEvgeny Grin (Karlson2k)2023-09-08
|
* fix #7757Christian Grothoff2023-09-03
|
* Fixed some commentsEvgeny Grin (Karlson2k)2023-06-20
|
* Adjusted buffer increase default step sizeEvgeny Grin (Karlson2k)2023-06-20
|
* Minor refactoring for partially processed request bodyEvgeny Grin (Karlson2k)2023-06-20
|
* daemon: added debug member to avoid accept4() usageEvgeny Grin (Karlson2k)2023-06-20
|
* Removed request line and headers processing old functions and variablesEvgeny Grin (Karlson2k)2023-06-20
|
* Re-implemented parsing of the request headers and footers from scratch.Evgeny Grin (Karlson2k)2023-06-20
| | | | | | | | | | | | | | | | | | | | | | | | | | | | * The new algorithm parse the headers in one pass (including folded headers) thus multiple passes over the same memory area are avoided (efficiency for large headers should be improved). * Strict implementation of RFC 9110 and 9112 requirements, including replacing or reporting error for unacceptable characters. * Implemented various levels of strictness for requests interpretations: three levels within RFC requirements (more strict and more secure; less strict and more compatible with various clients; balanced (default)), one more relaxed level with violation of RFC's SHOULD/SHOULD NOT, one even more relaxed level with violation of MUST/MUST NOT, one stricter level then required by RFC, but absolutely compatible with clients following RFC's MUST/MUST NOT, and one more even stricter level compatible with clients following both MUST/MUST NOT and SHOULD/SHOULD NOT. * Added detection and handling of more erroneous situations, like space at the start of the first line (as recommended by RFC). * Added more detailed responses for invalid requests with descriptions of the found problems (as recommended by RFC). * If many chars have been replaced, only summary is reported instead of flooding logs with messages when request is badly constructed. * Whitespaces in headers values are trimmed at start and at the end. No need to handle extra spaces in the app or when using headers in other MHD parts, like cookie parsing. * In overall: increased flexibility, the security must be improved, much better compliance with the standards.
* Renamed connection state for clarityEvgeny Grin (Karlson2k)2023-06-20
|
* Re-implemented parsing of the request line from scratch.Evgeny Grin (Karlson2k)2023-06-20
| | | | | | | | | | | | | | | | | | | | | | | | | * New algorithm parse the request line in one pass thus multiple passes over the same memory area are avoided (efficiency for large URI should be improved) * Strict implementation of RFC 9110 and 9112 requirements, unacceptable characters are replaced or threaded as errors. * Implemented various levels of strictness for requests interpretations: three levels within RFC requirements (more strict and more secure; less strict and more compatible with various clients; balanced (default)), one more relaxed level with violation of RFC's SHOULD/SHOULD NOT, one even more relaxed level with violation of MUST/MUST NOT, one stricter level then required by RFC, but absolutely compatible with clients following RFC's MUST/MUST NOT, and one more even stricter level compatible with clients following both MUST/MUST NOT and SHOULD/SHOULD NOT. * Added more detailed responses for invalid requests with descriptions of the found problems (as recommended by RFC). * Limited number of empty lines skipped before the request (as recommended by RFC). * Implemented automatic redirection responses for requests targets with forbidden characters (as recommended by RFC). * In overall: increased flexibility, the security must be improved, much better compliance with the standards.
* Added new daemon option MHD_OPTION_CLIENT_DISCIPLINE_LVEvgeny Grin (Karlson2k)2022-12-22
| | | | | | | Reject URIs with spaces as per RFC. Fixed check for space before colon in headers (previously it was checked only when MHD was NOT strict). Reject HTTP/1.1 requests without host by default (as per RFC).
* Reworked partial processing of the uploadEvgeny Grin (Karlson2k)2022-10-22
| | | | | | | | Now if some data has been processed by Access Handler Callback, zero timeout is used for the next turn and at the same time more data is read (if available) from the network. If Access Handler Callback has not processed any data, MHD will wait for additional data to come.
* Renamed one more connection state for clarityEvgeny Grin (Karlson2k)2022-10-22
|
* Renamed one state in MHD_ConnectionEventLoopInfo for clarityEvgeny Grin (Karlson2k)2022-10-22
|
* Added new state for MHD_ConnectionEventLoopInfoEvgeny Grin (Karlson2k)2022-10-22
|
* New values for MHD_ConnectionEventLoopInfoEvgeny Grin (Karlson2k)2022-10-22
|
* Removed one debug member from release buildsEvgeny Grin (Karlson2k)2022-09-27
|
* Renamed request processing states for clarity and readabilityEvgeny Grin (Karlson2k)2022-09-27
|
* digestauth: added support for SHA-512/256, made MD5 and SHA-256 optionalEvgeny Grin (Karlson2k)2022-09-11
| | | | | Give more flexibility for custom builds: MD5, SHA-256 and SHA-512/256 may be disabled individually.
* digestauth: keep results of algo and QOP parsing, renamed public struct memberEvgeny Grin (Karlson2k)2022-08-25
|
* Added MHD_OPTION_DIGEST_AUTH_NONCE_BIND_TYPE to control how to generate andEvgeny Grin (Karlson2k)2022-08-15
| | | | check nonces for Digest Auth
* daemon.c: fixed and simplified sockaddr alignment handlingEvgeny Grin (Karlson2k)2022-08-15
|
* digestauth: limit nonce-count to uint32_tEvgeny Grin (Karlson2k)2022-08-09
|
* gen_auth: added support for two authorization headers in requestEvgeny Grin (Karlson2k)2022-08-09
|
* Internal refactoring: moved all reply-related members to separate structureEvgeny Grin (Karlson2k)2022-08-09
|
* Internal refactoring: moved all request-related members to separate structureEvgeny Grin (Karlson2k)2022-08-06
| | | | This should improve readability of the code and simplify reset.
* Added new MHD_OPTION_DIGEST_AUTH_RANDOM_COPY optionEvgeny Grin (Karlson2k)2022-07-30
|
* Added tracking of the request URL length.Evgeny Grin (Karlson2k)2022-06-22
| | | | | URL may have binary zeros after url-decoding, the length helps to detect such situations.
* MHD_parse_arguments_(): refactored, allow cls for the callbackEvgeny Grin (Karlson2k)2022-06-22
|
* Fixed function name introduced by 3eb2fb6dfb302a7ffbc74174d37fa047e3a94036Evgeny Grin (Karlson2k)2022-06-13
| | | | Thanks Christian for spotting it.
* Fixed very rare data races when closing upgraded connectionEvgeny Grin (Karlson2k)2022-06-08
|
* Fixed wrong usage of maximum client nonce size as maximum size of server nonceEvgeny Grin (Karlson2k)2022-06-07
| | | | This also saves some RAM for nonce-nc map array
* -fix read-only off-by one in 'if ( (0 != memcmp (nn->nonce, nonce, noncelen)) ||Christian Grothoff2022-06-07
| | | | 772 (0 != nn->nonce[noncelen]) )' by making buffer one element larger
* authentication: reworked header parsingEvgeny Grin (Karlson2k)2022-05-31
| | | | | | | | | Added single function to parse all enabled authentication schemes header strings. The parsing result is cached and reused thus avoiding repetitive header parsing. The new function correctly "unquotes" values (backslashes are removed) as required by RFC.
* internal.h: fixed incorrect use of enum value as preprocessor valueEvgeny Grin (Karlson2k)2022-05-16
|
* internal.h: fixed static function placementEvgeny Grin (Karlson2k)2022-05-06
|