libmicrohttpd/libmicrohttpd.keyring

225 lines
14 KiB
Plaintext
Raw Normal View History

Accepting request 673177 from home:mnhauke - Update to version 0.9.63: * Extended test_get to test URI logging and query string parsing to avoid regression fixed in previous patch in the future. * Preliminary patch for the raw query string issue, to be tested. * Added minimal example for how to compress HTTP response. * Check for GNUTLS_E_AGAIN instead of GNUTLS_E_INTERRUPTED when giving up on a TLS connection. -LM/CG * Fix connection timeout logic if in thread-per-connection mode the working thread takes longer than the timeout to queue the response. * Add logic to avoid VLA arrays with compilers that do not support them. * Fixed missing WSA_FLAG_OVERLAPPED which can cause W32 to block on socket races when using threadpool. (See very detailed description of the issue in the libmicrohttpd mailinglist post of today.) * Added test for RFC 7616 and documented new API. - Update to version 0.9.62: * Added test for RFC 7616 and documented new API. * Adding support for RFC 7616, experimental, needs testing and documentation still! * Add option to build MHD without any threads and MHD_FEATURE_THREADS to test for it. * Renamed all occurrences from _model(s)_ to _mode(s)_. * Optimized the function MHD_create_response_from_callback() for Windows by increasing its internal buffer size and allowed to customize it via macro MHD_FD_BLOCK_SIZE. * Referenced the gnutls_load_file() function in the HTTPs examples. * Fix regression causing URLs to be unescaped twice. OBS-URL: https://build.opensuse.org/request/show/673177 OBS-URL: https://build.opensuse.org/package/show/devel:libraries:c_c++/libmicrohttpd?expand=0&rev=87
2019-02-11 09:16:09 +01:00
GPG keys of Christian Grothoff <grothoff>
-----BEGIN PGP PUBLIC KEY BLOCK-----
Version: GnuPG v1
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
=rMsi
-----END PGP PUBLIC KEY BLOCK-----
Accepting request 673177 from home:mnhauke - Update to version 0.9.63: * Extended test_get to test URI logging and query string parsing to avoid regression fixed in previous patch in the future. * Preliminary patch for the raw query string issue, to be tested. * Added minimal example for how to compress HTTP response. * Check for GNUTLS_E_AGAIN instead of GNUTLS_E_INTERRUPTED when giving up on a TLS connection. -LM/CG * Fix connection timeout logic if in thread-per-connection mode the working thread takes longer than the timeout to queue the response. * Add logic to avoid VLA arrays with compilers that do not support them. * Fixed missing WSA_FLAG_OVERLAPPED which can cause W32 to block on socket races when using threadpool. (See very detailed description of the issue in the libmicrohttpd mailinglist post of today.) * Added test for RFC 7616 and documented new API. - Update to version 0.9.62: * Added test for RFC 7616 and documented new API. * Adding support for RFC 7616, experimental, needs testing and documentation still! * Add option to build MHD without any threads and MHD_FEATURE_THREADS to test for it. * Renamed all occurrences from _model(s)_ to _mode(s)_. * Optimized the function MHD_create_response_from_callback() for Windows by increasing its internal buffer size and allowed to customize it via macro MHD_FD_BLOCK_SIZE. * Referenced the gnutls_load_file() function in the HTTPs examples. * Fix regression causing URLs to be unescaped twice. OBS-URL: https://build.opensuse.org/request/show/673177 OBS-URL: https://build.opensuse.org/package/show/devel:libraries:c_c++/libmicrohttpd?expand=0&rev=87
2019-02-11 09:16:09 +01:00
GPG keys of Evgeny Grin <karlson2k>
-----BEGIN PGP PUBLIC KEY BLOCK-----
Accepting request 708972 from home:mnhauke - Update to version 0.9.64: * Updated HTTP headers, methods and status codes from registries, * Added scripts to import new headers, methods and status codes from registries. * Reodered includes in microhttpd.h * Fixed compiler warnings * Updated and fixed libcurl tests. * Added checks for too long TLS parameters strings. * Spelling fixes. * Fixed example for non-64bits platforms. * Optimized and improved processing speed by using precalculated and already calculated lengths of strings. * Store connection's keys and values with sizes; * Speedup keys search be comparing key length first; * Added functions for working with keys and values with binary zeros; * Fixed test_postprocessor_amp to fail on problems. * Reverted change of MHD_KeyValueIterator, implemented MHD_KeyValueIteratorN with sizes for connection's key and value to get keys and values with binary zeros. * Fixed signed/unsigned comparison in example http_chunked_compression.c. * Bit manipulations moved to separate header file. * Improved shell compatibility for 'bootstrap', removed bash-ism. * Adding additional "value_length" argument to MHD_KeyValueIterator callback to support binary zeros in values. This is done in a backwards-compatible way, but may require adding a cast to existing code to avoid a compiler warning. * Added example for how to compress a chunked HTTP response. OBS-URL: https://build.opensuse.org/request/show/708972 OBS-URL: https://build.opensuse.org/package/show/devel:libraries:c_c++/libmicrohttpd?expand=0&rev=89
2019-06-10 16:17:12 +02:00
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
7P27Z7KvDA==
=6E0D
-----END PGP PUBLIC KEY BLOCK-----