update llhttp to v6.0.7; README typo.

This commit is contained in:
fduncanh
2022-07-23 01:23:58 -04:00
parent e0cb4aa298
commit 91663c0c57
7 changed files with 903 additions and 528 deletions

View File

@@ -244,8 +244,9 @@ source directories which contain your modifications</em>.</p>
<p>The above script installs the executable file “<code>uxplay</code>
to <code>/usr/local/bin</code>, (and installs a manpage to somewhere
like <code>/usr/local/share/man/man1</code> and README files to
somewhere like <code>/usr/local/share/doc/uxplay</code>). It can also be
found in the build directory after the build processs.</p>
somewhere like <code>/usr/local/share/doc/uxplay</code>). The uxplay
executable can also be found in the build directory after the build
processs, if you wish to test before installing.</p>
<p><strong>Finally, run uxplay in a terminal window</strong>. Use Ctrl-C
(or close the window) to terminate it when done. If it is not seen by
the iOS clients drop-down “Screen Mirroring” panel, check that your
@@ -478,7 +479,7 @@ options to be added.</p>
<p><strong>-vd <em>decoder</em></strong> chooses the GStreamer
pipelines h264 decoder element, instead of letting decodebin pick it
for you. Software decoding is done by avdec_h264; various hardware
decoders include: vaapi264dec, nvdec, nvh264dec, v4l2h264dec (these
decoders include: vaapih264dec, nvdec, nvh264dec, v4l2h264dec (these
require that the appropriate hardware is available). Using quotes “…”
allows some parameters to be included with the decoder name.</p>
<p><strong>-vc <em>converter</em></strong> chooses the GStreamer
@@ -810,7 +811,7 @@ be set. The “features” code and other settings are set in
<code>UxPlay/lib/dnssdint.h</code>.</p>
<h1 id="changelog">ChangeLog</h1>
<p>1.55 2022-07-04 Remove the bt709 fix from -v4l2 and create a new
-bt709 option (previous “-v4l2” is now “-v4l2 -bt709”. This allows the
-bt709 option (previous “-v4l2” is now “-v4l2 -bt709”). This allows the
currently-required -bt709 option to be used on its own on RPi without
-v4l2 (sometimes this give better results).</p>
<p>1.54 2022-06-25 Add support for “Cover Art” display in Audio-only

View File

@@ -217,8 +217,8 @@ the source directories which contain your modifications_.
The above script installs the executable file "`uxplay`" to `/usr/local/bin`, (and installs a manpage to
somewhere like `/usr/local/share/man/man1` and README
files to somewhere like `/usr/local/share/doc/uxplay`).
It can also be found in the build directory after the build
processs.
The uxplay executable can also be found in the build directory after the build
processs, if you wish to test before installing.
**Finally, run uxplay in a terminal window**. Use Ctrl-C (or close the window) to terminate it when done. If it is not seen by the
iOS client's drop-down "Screen Mirroring" panel, check that your DNS-SD
@@ -418,7 +418,7 @@ which will not work if a firewall is running.
**-vd _decoder_** chooses the GStreamer pipeline's h264 decoder element, instead of letting
decodebin pick it for you. Software decoding is done by avdec_h264; various hardware decoders
include: vaapi264dec, nvdec, nvh264dec, v4l2h264dec (these require that the appropriate hardware is
include: vaapih264dec, nvdec, nvh264dec, v4l2h264dec (these require that the appropriate hardware is
available). Using quotes "..." allows some parameters to be included with the decoder name.
**-vc _converter_** chooses the GStreamer pipeline's videoconverter element, instead of the default
@@ -690,7 +690,7 @@ The "features" code and other settings are set in `UxPlay/lib/dnssdint.h`.
# ChangeLog
1.55 2022-07-04 Remove the bt709 fix from -v4l2 and create a new -bt709 option (previous
"-v4l2" is now "-v4l2 -bt709". This allows the currently-required -bt709
"-v4l2" is now "-v4l2 -bt709"). This allows the currently-required -bt709
option to be used on its own on RPi without -v4l2 (sometimes this give better results).
1.54 2022-06-25 Add support for "Cover Art" display in Audio-only (ALAC) mode. Reverted a change

View File

@@ -240,8 +240,9 @@ modifications*.
The above script installs the executable file "`uxplay`" to
`/usr/local/bin`, (and installs a manpage to somewhere like
`/usr/local/share/man/man1` and README files to somewhere like
`/usr/local/share/doc/uxplay`). It can also be found in the build
directory after the build processs.
`/usr/local/share/doc/uxplay`). The uxplay executable can also be found
in the build directory after the build processs, if you wish to test
before installing.
**Finally, run uxplay in a terminal window**. Use Ctrl-C (or close the
window) to terminate it when done. If it is not seen by the iOS client's
@@ -490,7 +491,7 @@ default is h264parse. Using quotes "..." allows options to be added.
**-vd *decoder*** chooses the GStreamer pipeline's h264 decoder element,
instead of letting decodebin pick it for you. Software decoding is done
by avdec_h264; various hardware decoders include: vaapi264dec, nvdec,
by avdec_h264; various hardware decoders include: vaapih264dec, nvdec,
nvh264dec, v4l2h264dec (these require that the appropriate hardware is
available). Using quotes "..." allows some parameters to be included
with the decoder name.
@@ -845,7 +846,7 @@ code and other settings are set in `UxPlay/lib/dnssdint.h`.
# ChangeLog
1.55 2022-07-04 Remove the bt709 fix from -v4l2 and create a new -bt709
option (previous "-v4l2" is now "-v4l2 -bt709". This allows the
option (previous "-v4l2" is now "-v4l2 -bt709"). This allows the
currently-required -bt709 option to be used on its own on RPi without
-v4l2 (sometimes this give better results).

View File

@@ -253,6 +253,14 @@ void llhttp_set_lenient_keep_alive(llhttp_t* parser, int enabled) {
}
}
void llhttp_set_lenient_transfer_encoding(llhttp_t* parser, int enabled) {
if (enabled) {
parser->lenient_flags |= LENIENT_TRANSFER_ENCODING;
} else {
parser->lenient_flags &= ~LENIENT_TRANSFER_ENCODING;
}
}
/* Callbacks */

View File

@@ -52,7 +52,8 @@ int llhttp__after_headers_complete(llhttp_t* parser, const char* p,
return 2;
} else if (parser->flags & F_TRANSFER_ENCODING) {
if (parser->type == HTTP_REQUEST &&
(parser->lenient_flags & LENIENT_CHUNKED_LENGTH) == 0) {
(parser->lenient_flags & LENIENT_CHUNKED_LENGTH) == 0 &&
(parser->lenient_flags & LENIENT_TRANSFER_ENCODING) == 0) {
/* RFC 7230 3.3.3 */
/* If a Transfer-Encoding header field

File diff suppressed because it is too large Load Diff

View File

@@ -3,7 +3,7 @@
#define LLHTTP_VERSION_MAJOR 6
#define LLHTTP_VERSION_MINOR 0
#define LLHTTP_VERSION_PATCH 6
#define LLHTTP_VERSION_PATCH 7
#ifndef LLHTTP_STRICT_MODE
# define LLHTTP_STRICT_MODE 0
@@ -59,6 +59,7 @@ enum llhttp_errno {
HPE_OK = 0,
HPE_INTERNAL = 1,
HPE_STRICT = 2,
HPE_CR_EXPECTED = 25,
HPE_LF_EXPECTED = 3,
HPE_UNEXPECTED_CONTENT_LENGTH = 4,
HPE_CLOSED_CONNECTION = 5,
@@ -100,7 +101,8 @@ typedef enum llhttp_flags llhttp_flags_t;
enum llhttp_lenient_flags {
LENIENT_HEADERS = 0x1,
LENIENT_CHUNKED_LENGTH = 0x2,
LENIENT_KEEP_ALIVE = 0x4
LENIENT_KEEP_ALIVE = 0x4,
LENIENT_TRANSFER_ENCODING = 0x8
};
typedef enum llhttp_lenient_flags llhttp_lenient_flags_t;
@@ -172,6 +174,7 @@ typedef enum llhttp_method llhttp_method_t;
XX(0, OK, OK) \
XX(1, INTERNAL, INTERNAL) \
XX(2, STRICT, STRICT) \
XX(25, CR_EXPECTED, CR_EXPECTED) \
XX(3, LF_EXPECTED, LF_EXPECTED) \
XX(4, UNEXPECTED_CONTENT_LENGTH, UNEXPECTED_CONTENT_LENGTH) \
XX(5, CLOSED_CONNECTION, CLOSED_CONNECTION) \
@@ -374,8 +377,6 @@ LLHTTP_EXPORT
void llhttp_init(llhttp_t* parser, llhttp_type_t type,
const llhttp_settings_t* settings);
#if defined(__wasm__)
LLHTTP_EXPORT
llhttp_t* llhttp_alloc(llhttp_type_t type);
@@ -400,8 +401,6 @@ int llhttp_get_status_code(llhttp_t* parser);
LLHTTP_EXPORT
uint8_t llhttp_get_upgrade(llhttp_t* parser);
#endif // defined(__wasm__)
/* Reset an already initialized parser back to the start state, preserving the
* existing parser type, callback settings, user data, and lenient flags.
*/
@@ -556,6 +555,19 @@ void llhttp_set_lenient_chunked_length(llhttp_t* parser, int enabled);
*/
void llhttp_set_lenient_keep_alive(llhttp_t* parser, int enabled);
/* Enables/disables lenient handling of `Transfer-Encoding` header.
*
* Normally `llhttp` would error when a `Transfer-Encoding` has `chunked` value
* and another value after it (either in a single header or in multiple
* headers whose value are internally joined using `, `).
* This is mandated by the spec to reliably determine request body size and thus
* avoid request smuggling.
* With this flag the extra value will be parsed normally.
*
* **(USE AT YOUR OWN RISK)**
*/
void llhttp_set_lenient_transfer_encoding(llhttp_t* parser, int enabled);
#ifdef __cplusplus
} /* extern "C" */
#endif