summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDaniel Baumann <daniel.baumann@progress-linux.org>2023-11-01 15:49:07 +0000
committerDaniel Baumann <daniel.baumann@progress-linux.org>2023-11-01 15:49:07 +0000
commite7ccb779d2e98bbf13f1ee36bc9fd64bb295c4fe (patch)
tree7c3f73323421ace60ab7b6bd49269fd054d5fdab
parentAdding debian version 1.54.0-1. (diff)
downloadnghttp2-e7ccb779d2e98bbf13f1ee36bc9fd64bb295c4fe.tar.xz
nghttp2-e7ccb779d2e98bbf13f1ee36bc9fd64bb295c4fe.zip
Merging upstream version 1.55.1.
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
-rw-r--r--.github/workflows/build.yml20
-rw-r--r--CMakeLists.txt16
-rw-r--r--Makefile.am2
-rw-r--r--README.rst10
-rw-r--r--cmake/FindLibngtcp2_crypto_openssl.cmake43
-rw-r--r--cmake/FindLibngtcp2_crypto_quictls.cmake43
-rw-r--r--cmakeconfig.h.in7
-rw-r--r--configure.ac40
-rw-r--r--doc/h2load.12
-rw-r--r--doc/nghttp.12
-rw-r--r--doc/nghttpd.12
-rw-r--r--doc/nghttpx.12
-rw-r--r--docker/Dockerfile4
-rw-r--r--go.mod18
-rw-r--r--go.sum32
-rw-r--r--lib/nghttp2_session.c10
-rw-r--r--src/CMakeLists.txt4
-rw-r--r--src/Makefile.am4
-rw-r--r--src/h2load.cc22
-rw-r--r--src/h2load_quic.cc73
-rw-r--r--src/shrpx_http3_upstream.cc4
-rw-r--r--src/shrpx_quic_listener.cc57
-rw-r--r--src/shrpx_tls.cc14
-rw-r--r--src/shrpx_worker.cc11
-rw-r--r--src/util.cc17
-rw-r--r--src/util.h10
-rw-r--r--tests/nghttp2_session_test.c34
-rw-r--r--third-party/CMakeLists.txt2
-rw-r--r--third-party/Makefile.am9
-rw-r--r--third-party/build_config.rb26
-rw-r--r--third-party/llhttp/README.md71
-rw-r--r--third-party/llhttp/include/llhttp.h2
-rw-r--r--third-party/llhttp/llhttp.gyp11
-rw-r--r--third-party/llhttp/src/llhttp.c1064
34 files changed, 977 insertions, 711 deletions
diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml
index c8eab90..9732384 100644
--- a/.github/workflows/build.yml
+++ b/.github/workflows/build.yml
@@ -8,15 +8,15 @@ env:
LIBBPF_VERSION: v1.2.0
OPENSSL1_VERSION: 1_1_1u+quic
OPENSSL3_VERSION: 3.1.0+quic
- BORINGSSL_VERSION: b0341041b03ea71d8371a9692aedae263fc06ee9
- NGHTTP3_VERSION: v0.12.0
- NGTCP2_VERSION: v0.16.0
+ BORINGSSL_VERSION: 80dcb67d4481fb1194b9669917e35580c32dc388
+ NGHTTP3_VERSION: v0.13.0
+ NGTCP2_VERSION: v0.17.0
jobs:
build-cache:
strategy:
matrix:
- os: [ubuntu-22.04, macos-11]
+ os: [ubuntu-22.04, macos-12]
runs-on: ${{ matrix.os }}
@@ -175,22 +175,22 @@ jobs:
strategy:
matrix:
- os: [ubuntu-22.04, macos-11]
+ os: [ubuntu-22.04, macos-12]
compiler: [gcc, clang]
buildtool: [autotools, cmake]
http3: [http3, no-http3]
openssl: [openssl1, openssl3, boringssl]
exclude:
- - os: macos-11
+ - os: macos-12
openssl: openssl3
- http3: no-http3
openssl: openssl3
- - os: macos-11
+ - os: macos-12
compiler: gcc
- # disable macos cmake because of include path issue
- os: macos-11
+ os: macos-12
buildtool: cmake
- - os: macos-11
+ - os: macos-12
openssl: boringssl
- openssl: boringssl
buildtool: cmake
@@ -397,7 +397,7 @@ jobs:
- uses: actions/setup-go@v3
if: matrix.buildtool == 'cmake'
with:
- go-version: '1.19'
+ go-version-file: go.mod
- name: Integration test
# Integration tests for nghttpx; autotools erases build
# artifacts.
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 288957f..3f7ec67 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -24,12 +24,12 @@
cmake_minimum_required(VERSION 3.0)
# XXX using 1.8.90 instead of 1.9.0-DEV
-project(nghttp2 VERSION 1.54.0)
+project(nghttp2 VERSION 1.55.1)
# See versioning rule:
# https://www.gnu.org/software/libtool/manual/html_node/Updating-version-info.html
set(LT_CURRENT 38)
-set(LT_REVISION 2)
+set(LT_REVISION 3)
set(LT_AGE 24)
set(CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/cmake" ${CMAKE_MODULE_PATH})
@@ -61,9 +61,9 @@ find_package(Libev 4.11)
find_package(Libcares 1.7.5)
find_package(ZLIB 1.2.3)
find_package(Libngtcp2 0.0.0)
-find_package(Libngtcp2_crypto_openssl 0.0.0)
-if(LIBNGTCP2_CRYPTO_OPENSSL_FOUND)
- set(HAVE_LIBNGTCP2_CRYPTO_OPENSSL 1)
+find_package(Libngtcp2_crypto_quictls 0.0.0)
+if(LIBNGTCP2_CRYPTO_QUICTLS_FOUND)
+ set(HAVE_LIBNGTCP2_CRYPTO_QUICTLS 1)
endif()
find_package(Libnghttp3 0.0.0)
if(WITH_LIBBPF)
@@ -238,9 +238,9 @@ if(ENABLE_APP AND NOT (ZLIB_FOUND AND OPENSSL_FOUND AND LIBEV_FOUND))
message(FATAL_ERROR "Applications were requested (ENABLE_APP=1) but dependencies are not met.")
endif()
-# HTTP/3 requires quictls/openssl, libngtcp2, libngtcp2_crypto_openssl
+# HTTP/3 requires quictls/openssl, libngtcp2, libngtcp2_crypto_quictls
# and libnghttp3.
-if(ENABLE_HTTP3 AND NOT (HAVE_SSL_IS_QUIC AND LIBNGTCP2_FOUND AND LIBNGTCP2_CRYPTO_OPENSSL_FOUND AND LIBNGHTTP3_FOUND))
+if(ENABLE_HTTP3 AND NOT (HAVE_SSL_IS_QUIC AND LIBNGTCP2_FOUND AND LIBNGTCP2_CRYPTO_QUICTLS_FOUND AND LIBNGHTTP3_FOUND))
message(FATAL_ERROR "HTTP/3 was requested (ENABLE_HTTP3=1) but dependencies are not met.")
endif()
@@ -513,7 +513,7 @@ message(STATUS "summary of build options:
Libev: ${HAVE_LIBEV} (LIBS='${LIBEV_LIBRARIES}')
Libc-ares: ${HAVE_LIBCARES} (LIBS='${LIBCARES_LIBRARIES}')
Libngtcp2: ${HAVE_LIBNGTCP2} (LIBS='${LIBNGTCP2_LIBRARIES}')
- Libngtcp2_crypto_openssl: ${HAVE_LIBNGTCP2_CRYPTO_OPENSSL} (LIBS='${LIBNGTCP2_CRYPTO_OPENSSL_LIBRARIES}')
+ Libngtcp2_crypto_quictls: ${HAVE_LIBNGTCP2_CRYPTO_QUICTLS} (LIBS='${LIBNGTCP2_CRYPTO_QUICTLS_LIBRARIES}')
Libnghttp3: ${HAVE_LIBNGHTTP3} (LIBS='${LIBNGHTTP3_LIBRARIES}')
Libbpf: ${HAVE_LIBBPF} (LIBS='${LIBBPF_LIBRARIES}')
Libevent(SSL): ${HAVE_LIBEVENT_OPENSSL} (LIBS='${LIBEVENT_OPENSSL_LIBRARIES}')
diff --git a/Makefile.am b/Makefile.am
index 7086674..df1c3e5 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -44,7 +44,7 @@ EXTRA_DIST = nghttpx.conf.sample proxy.pac.sample android-config android-env \
cmake/FindLibbpf.cmake \
cmake/FindLibnghttp3.cmake \
cmake/FindLibngtcp2.cmake \
- cmake/FindLibngtcp2_crypto_openssl.cmake
+ cmake/FindLibngtcp2_crypto_quictls.cmake
.PHONY: clang-format
diff --git a/README.rst b/README.rst
index 5215be3..e551651 100644
--- a/README.rst
+++ b/README.rst
@@ -129,9 +129,9 @@ following libraries are required:
* `OpenSSL with QUIC support
<https://github.com/quictls/openssl/tree/OpenSSL_1_1_1u+quic>`_; or
`BoringSSL <https://boringssl.googlesource.com/boringssl/>`_ (commit
- b0341041b03ea71d8371a9692aedae263fc06ee9)
-* `ngtcp2 <https://github.com/ngtcp2/ngtcp2>`_ 0.16.x
-* `nghttp3 <https://github.com/ngtcp2/nghttp3>`_ 0.12.x
+ 80dcb67d4481fb1194b9669917e35580c32dc388)
+* `ngtcp2 <https://github.com/ngtcp2/ngtcp2>`_ 0.17.x
+* `nghttp3 <https://github.com/ngtcp2/nghttp3>`_ 0.13.x
Use ``--enable-http3`` configure option to enable HTTP/3 feature for
h2load and nghttpx.
@@ -354,7 +354,7 @@ Build nghttp3:
.. code-block:: text
- $ git clone --depth 1 -b v0.12.0 https://github.com/ngtcp2/nghttp3
+ $ git clone --depth 1 -b v0.13.0 https://github.com/ngtcp2/nghttp3
$ cd nghttp3
$ autoreconf -i
$ ./configure --prefix=$PWD/build --enable-lib-only
@@ -366,7 +366,7 @@ Build ngtcp2:
.. code-block:: text
- $ git clone --depth 1 -b v0.16.0 https://github.com/ngtcp2/ngtcp2
+ $ git clone --depth 1 -b v0.17.0 https://github.com/ngtcp2/ngtcp2
$ cd ngtcp2
$ autoreconf -i
$ ./configure --prefix=$PWD/build --enable-lib-only \
diff --git a/cmake/FindLibngtcp2_crypto_openssl.cmake b/cmake/FindLibngtcp2_crypto_openssl.cmake
deleted file mode 100644
index 8df7859..0000000
--- a/cmake/FindLibngtcp2_crypto_openssl.cmake
+++ /dev/null
@@ -1,43 +0,0 @@
-# - Try to find libngtcp2_crypto_openssl
-# Once done this will define
-# LIBNGTCP2_CRYPTO_OPENSSL_FOUND - System has libngtcp2_crypto_openssl
-# LIBNGTCP2_CRYPTO_OPENSSL_INCLUDE_DIRS - The libngtcp2_crypto_openssl include directories
-# LIBNGTCP2_CRYPTO_OPENSSL_LIBRARIES - The libraries needed to use libngtcp2_crypto_openssl
-
-find_package(PkgConfig QUIET)
-pkg_check_modules(PC_LIBNGTCP2_CRYPTO_OPENSSL QUIET libngtcp2_crypto_openssl)
-
-find_path(LIBNGTCP2_CRYPTO_OPENSSL_INCLUDE_DIR
- NAMES ngtcp2/ngtcp2_crypto_openssl.h
- HINTS ${PC_LIBNGTCP2_CRYPTO_OPENSSL_INCLUDE_DIRS}
-)
-find_library(LIBNGTCP2_CRYPTO_OPENSSL_LIBRARY
- NAMES ngtcp2_crypto_openssl
- HINTS ${PC_LIBNGTCP2_CRYPTO_OPENSSL_LIBRARY_DIRS}
-)
-
-if(LIBNGTCP2_CRYPTO_OPENSSL_INCLUDE_DIR)
- set(_version_regex "^#define[ \t]+NGTCP2_VERSION[ \t]+\"([^\"]+)\".*")
- file(STRINGS "${LIBNGTCP2_CRYPTO_OPENSSL_INCLUDE_DIR}/ngtcp2/version.h"
- LIBNGTCP2_CRYPTO_OPENSSL_VERSION REGEX "${_version_regex}")
- string(REGEX REPLACE "${_version_regex}" "\\1"
- LIBNGTCP2_CRYPTO_OPENSSL_VERSION "${LIBNGTCP2_CRYPTO_OPENSSL_VERSION}")
- unset(_version_regex)
-endif()
-
-include(FindPackageHandleStandardArgs)
-# handle the QUIETLY and REQUIRED arguments and set
-# LIBNGTCP2_CRYPTO_OPENSSL_FOUND to TRUE if all listed variables are
-# TRUE and the requested version matches.
-find_package_handle_standard_args(Libngtcp2_crypto_openssl REQUIRED_VARS
- LIBNGTCP2_CRYPTO_OPENSSL_LIBRARY
- LIBNGTCP2_CRYPTO_OPENSSL_INCLUDE_DIR
- VERSION_VAR LIBNGTCP2_CRYPTO_OPENSSL_VERSION)
-
-if(LIBNGTCP2_CRYPTO_OPENSSL_FOUND)
- set(LIBNGTCP2_CRYPTO_OPENSSL_LIBRARIES ${LIBNGTCP2_CRYPTO_OPENSSL_LIBRARY})
- set(LIBNGTCP2_CRYPTO_OPENSSL_INCLUDE_DIRS ${LIBNGTCP2_CRYPTO_OPENSSL_INCLUDE_DIR})
-endif()
-
-mark_as_advanced(LIBNGTCP2_CRYPTO_OPENSSL_INCLUDE_DIR
- LIBNGTCP2_CRYPTO_OPENSSL_LIBRARY)
diff --git a/cmake/FindLibngtcp2_crypto_quictls.cmake b/cmake/FindLibngtcp2_crypto_quictls.cmake
new file mode 100644
index 0000000..3d55b63
--- /dev/null
+++ b/cmake/FindLibngtcp2_crypto_quictls.cmake
@@ -0,0 +1,43 @@
+# - Try to find libngtcp2_crypto_quictls
+# Once done this will define
+# LIBNGTCP2_CRYPTO_QUICTLS_FOUND - System has libngtcp2_crypto_quictls
+# LIBNGTCP2_CRYPTO_QUICTLS_INCLUDE_DIRS - The libngtcp2_crypto_quictls include directories
+# LIBNGTCP2_CRYPTO_QUICTLS_LIBRARIES - The libraries needed to use libngtcp2_crypto_quictls
+
+find_package(PkgConfig QUIET)
+pkg_check_modules(PC_LIBNGTCP2_CRYPTO_QUICTLS QUIET libngtcp2_crypto_quictls)
+
+find_path(LIBNGTCP2_CRYPTO_QUICTLS_INCLUDE_DIR
+ NAMES ngtcp2/ngtcp2_crypto_quictls.h
+ HINTS ${PC_LIBNGTCP2_CRYPTO_QUICTLS_INCLUDE_DIRS}
+)
+find_library(LIBNGTCP2_CRYPTO_QUICTLS_LIBRARY
+ NAMES ngtcp2_crypto_quictls
+ HINTS ${PC_LIBNGTCP2_CRYPTO_QUICTLS_LIBRARY_DIRS}
+)
+
+if(LIBNGTCP2_CRYPTO_QUICTLS_INCLUDE_DIR)
+ set(_version_regex "^#define[ \t]+NGTCP2_VERSION[ \t]+\"([^\"]+)\".*")
+ file(STRINGS "${LIBNGTCP2_CRYPTO_QUICTLS_INCLUDE_DIR}/ngtcp2/version.h"
+ LIBNGTCP2_CRYPTO_QUICTLS_VERSION REGEX "${_version_regex}")
+ string(REGEX REPLACE "${_version_regex}" "\\1"
+ LIBNGTCP2_CRYPTO_QUICTLS_VERSION "${LIBNGTCP2_CRYPTO_QUICTLS_VERSION}")
+ unset(_version_regex)
+endif()
+
+include(FindPackageHandleStandardArgs)
+# handle the QUIETLY and REQUIRED arguments and set
+# LIBNGTCP2_CRYPTO_QUICTLS_FOUND to TRUE if all listed variables are
+# TRUE and the requested version matches.
+find_package_handle_standard_args(Libngtcp2_crypto_quictls REQUIRED_VARS
+ LIBNGTCP2_CRYPTO_QUICTLS_LIBRARY
+ LIBNGTCP2_CRYPTO_QUICTLS_INCLUDE_DIR
+ VERSION_VAR LIBNGTCP2_CRYPTO_QUICTLS_VERSION)
+
+if(LIBNGTCP2_CRYPTO_QUICTLS_FOUND)
+ set(LIBNGTCP2_CRYPTO_QUICTLS_LIBRARIES ${LIBNGTCP2_CRYPTO_QUICTLS_LIBRARY})
+ set(LIBNGTCP2_CRYPTO_QUICTLS_INCLUDE_DIRS ${LIBNGTCP2_CRYPTO_QUICTLS_INCLUDE_DIR})
+endif()
+
+mark_as_advanced(LIBNGTCP2_CRYPTO_QUICTLS_INCLUDE_DIR
+ LIBNGTCP2_CRYPTO_QUICTLS_LIBRARY)
diff --git a/cmakeconfig.h.in b/cmakeconfig.h.in
index 2e357d5..49d19a3 100644
--- a/cmakeconfig.h.in
+++ b/cmakeconfig.h.in
@@ -88,5 +88,8 @@
/* Define to 1 if you have enum bpf_stats_type in linux/bpf.h. */
#cmakedefine HAVE_BPF_STATS_TYPE 1
-/* Define to 1 if you have `libngtcp2_crypto_openssl` library. */
-#cmakedefine HAVE_LIBNGTCP2_CRYPTO_OPENSSL
+/* Define to 1 if you have `libngtcp2_crypto_quictls` library. */
+#cmakedefine HAVE_LIBNGTCP2_CRYPTO_QUICTLS
+
+/* Define to 1 if you have `libev` library. */
+#cmakedefine HAVE_LIBEV 1
diff --git a/configure.ac b/configure.ac
index c913a02..5163b03 100644
--- a/configure.ac
+++ b/configure.ac
@@ -25,7 +25,7 @@ dnl Do not change user variables!
dnl https://www.gnu.org/software/automake/manual/html_node/Flag-Variables-Ordering.html
AC_PREREQ(2.61)
-AC_INIT([nghttp2], [1.54.0], [t-tujikawa@users.sourceforge.net])
+AC_INIT([nghttp2], [1.55.1], [t-tujikawa@users.sourceforge.net])
AC_CONFIG_AUX_DIR([.])
AC_CONFIG_MACRO_DIR([m4])
AC_CONFIG_HEADERS([config.h])
@@ -45,7 +45,7 @@ m4_ifdef([AM_SILENT_RULES], [AM_SILENT_RULES([yes])])
dnl See versioning rule:
dnl https://www.gnu.org/software/libtool/manual/html_node/Updating-version-info.html
AC_SUBST(LT_CURRENT, 38)
-AC_SUBST(LT_REVISION, 2)
+AC_SUBST(LT_REVISION, 3)
AC_SUBST(LT_AGE, 24)
major=`echo $PACKAGE_VERSION |cut -d. -f1 | sed -e "s/[^0-9]//g"`
@@ -433,6 +433,10 @@ if test "x${request_libev}" != "xno"; then
else
have_libev=yes
fi
+
+ if test "x${have_libev}" = "xyes"; then
+ AC_DEFINE([HAVE_LIBEV], [1], [Define to 1 if you have `libev` library.])
+ fi
fi
if test "x${request_libev}" = "xyes" &&
@@ -504,7 +508,7 @@ fi
# ngtcp2 (for src)
have_libngtcp2=no
if test "x${request_libngtcp2}" != "xno"; then
- PKG_CHECK_MODULES([LIBNGTCP2], [libngtcp2 >= 0.16.0], [have_libngtcp2=yes],
+ PKG_CHECK_MODULES([LIBNGTCP2], [libngtcp2 >= 0.17.0], [have_libngtcp2=yes],
[have_libngtcp2=no])
if test "x${have_libngtcp2}" = "xno"; then
AC_MSG_NOTICE($LIBNGTCP2_PKG_ERRORS)
@@ -516,26 +520,26 @@ if test "x${request_libngtcp2}" = "xyes" &&
AC_MSG_ERROR([libngtcp2 was requested (--with-libngtcp2) but not found])
fi
-# ngtcp2_crypto_openssl (for src)
-have_libngtcp2_crypto_openssl=no
+# ngtcp2_crypto_quictls (for src)
+have_libngtcp2_crypto_quictls=no
if test "x${have_ssl_is_quic}" = "xyes" &&
test "x${request_libngtcp2}" != "xno"; then
- PKG_CHECK_MODULES([LIBNGTCP2_CRYPTO_OPENSSL],
- [libngtcp2_crypto_openssl >= 0.16.0],
- [have_libngtcp2_crypto_openssl=yes],
- [have_libngtcp2_crypto_openssl=no])
- if test "x${have_libngtcp2_crypto_openssl}" = "xno"; then
- AC_MSG_NOTICE($LIBNGTCP2_CRYPTO_OPENSSL_PKG_ERRORS)
+ PKG_CHECK_MODULES([LIBNGTCP2_CRYPTO_QUICTLS],
+ [libngtcp2_crypto_quictls >= 0.17.0],
+ [have_libngtcp2_crypto_quictls=yes],
+ [have_libngtcp2_crypto_quictls=no])
+ if test "x${have_libngtcp2_crypto_quictls}" = "xno"; then
+ AC_MSG_NOTICE($LIBNGTCP2_CRYPTO_QUICTLS_PKG_ERRORS)
else
- AC_DEFINE([HAVE_LIBNGTCP2_CRYPTO_OPENSSL], [1],
- [Define to 1 if you have `libngtcp2_crypto_openssl` library.])
+ AC_DEFINE([HAVE_LIBNGTCP2_CRYPTO_QUICTLS], [1],
+ [Define to 1 if you have `libngtcp2_crypto_quictls` library.])
fi
fi
if test "x${have_ssl_is_quic}" = "xyes" &&
test "x${request_libngtcp2}" = "xyes" &&
- test "x${have_libngtcp2_crypto_openssl}" != "xyes"; then
- AC_MSG_ERROR([libngtcp2_crypto_openssl was requested (--with-libngtcp2) but not found])
+ test "x${have_libngtcp2_crypto_quictls}" != "xyes"; then
+ AC_MSG_ERROR([libngtcp2_crypto_quictls was requested (--with-libngtcp2) but not found])
fi
# ngtcp2_crypto_boringssl (for src)
@@ -563,7 +567,7 @@ fi
# nghttp3 (for src)
have_libnghttp3=no
if test "x${request_libnghttp3}" != "xno"; then
- PKG_CHECK_MODULES([LIBNGHTTP3], [libnghttp3 >= 0.12.0], [have_libnghttp3=yes],
+ PKG_CHECK_MODULES([LIBNGHTTP3], [libnghttp3 >= 0.13.0], [have_libnghttp3=yes],
[have_libnghttp3=no])
if test "x${have_libnghttp3}" = "xno"; then
AC_MSG_NOTICE($LIBNGHTTP3_PKG_ERRORS)
@@ -751,7 +755,7 @@ if test "x${request_http3}" != "xno" &&
(test "x${have_ssl_is_quic}" = "xyes" ||
test "x${have_boringssl_quic}" = "xyes") &&
test "x${have_libngtcp2}" = "xyes" &&
- (test "x${have_libngtcp2_crypto_openssl}" = "xyes" ||
+ (test "x${have_libngtcp2_crypto_quictls}" = "xyes" ||
test "x${have_libngtcp2_crypto_boringssl}" = "xyes") &&
test "x${have_libnghttp3}" = "xyes"; then
enable_http3=yes
@@ -1140,7 +1144,7 @@ AC_MSG_NOTICE([summary of build options:
Libev: ${have_libev} (CFLAGS='${LIBEV_CFLAGS}' LIBS='${LIBEV_LIBS}')
Libc-ares: ${have_libcares} (CFLAGS='${LIBCARES_CFLAGS}' LIBS='${LIBCARES_LIBS}')
libngtcp2: ${have_libngtcp2} (CFLAGS='${LIBNGTCP2_CFLAGS}' LIBS='${LIBNGTCP2_LIBS}')
- libngtcp2_crypto_openssl: ${have_libngtcp2_crypto_openssl} (CFLAGS='${LIBNGTCP2_CRYPTO_OPENSSL_CFLAGS}' LIBS='${LIBNGTCP2_CRYPTO_OPENSSL_LIBS}')
+ libngtcp2_crypto_quictls: ${have_libngtcp2_crypto_quictls} (CFLAGS='${LIBNGTCP2_CRYPTO_QUICTLS_CFLAGS}' LIBS='${LIBNGTCP2_CRYPTO_QUICTLS_LIBS}')
libngtcp2_crypto_boringssl: ${have_libngtcp2_crypto_boringssl} (CFLAGS='${LIBNGTCP2_CRYPTO_BORINGSSL_CFLAGS}' LIBS='${LIBNGTCP2_CRYPTO_BORINGSSL_LIBS}')
libnghttp3: ${have_libnghttp3} (CFLAGS='${LIBNGHTTP3_CFLAGS}' LIBS='${LIBNGHTTP3_LIBS}')
libbpf: ${have_libbpf} (CFLAGS='${LIBBPF_CFLAGS}' LIBS='${LIBBPF_LIBS}')
diff --git a/doc/h2load.1 b/doc/h2load.1
index 41fb0d1..538cff2 100644
--- a/doc/h2load.1
+++ b/doc/h2load.1
@@ -27,7 +27,7 @@ level margin: \\n[rst2man-indent\\n[rst2man-indent-level]]
.\" new: \\n[rst2man-indent\\n[rst2man-indent-level]]
.in \\n[rst2man-indent\\n[rst2man-indent-level]]u
..
-.TH "H2LOAD" "1" "Jun 07, 2023" "1.54.0" "nghttp2"
+.TH "H2LOAD" "1" "Jul 14, 2023" "1.55.1" "nghttp2"
.SH NAME
h2load \- HTTP/2 benchmarking tool
.SH SYNOPSIS
diff --git a/doc/nghttp.1 b/doc/nghttp.1
index c315aef..f97b9ac 100644
--- a/doc/nghttp.1
+++ b/doc/nghttp.1
@@ -27,7 +27,7 @@ level margin: \\n[rst2man-indent\\n[rst2man-indent-level]]
.\" new: \\n[rst2man-indent\\n[rst2man-indent-level]]
.in \\n[rst2man-indent\\n[rst2man-indent-level]]u
..
-.TH "NGHTTP" "1" "Jun 07, 2023" "1.54.0" "nghttp2"
+.TH "NGHTTP" "1" "Jul 14, 2023" "1.55.1" "nghttp2"
.SH NAME
nghttp \- HTTP/2 client
.SH SYNOPSIS
diff --git a/doc/nghttpd.1 b/doc/nghttpd.1
index e67dbb8..3e9df04 100644
--- a/doc/nghttpd.1
+++ b/doc/nghttpd.1
@@ -27,7 +27,7 @@ level margin: \\n[rst2man-indent\\n[rst2man-indent-level]]
.\" new: \\n[rst2man-indent\\n[rst2man-indent-level]]
.in \\n[rst2man-indent\\n[rst2man-indent-level]]u
..
-.TH "NGHTTPD" "1" "Jun 07, 2023" "1.54.0" "nghttp2"
+.TH "NGHTTPD" "1" "Jul 14, 2023" "1.55.1" "nghttp2"
.SH NAME
nghttpd \- HTTP/2 server
.SH SYNOPSIS
diff --git a/doc/nghttpx.1 b/doc/nghttpx.1
index 52cf9dd..e61f13f 100644
--- a/doc/nghttpx.1
+++ b/doc/nghttpx.1
@@ -27,7 +27,7 @@ level margin: \\n[rst2man-indent\\n[rst2man-indent-level]]
.\" new: \\n[rst2man-indent\\n[rst2man-indent-level]]
.in \\n[rst2man-indent\\n[rst2man-indent-level]]u
..
-.TH "NGHTTPX" "1" "Jun 07, 2023" "1.54.0" "nghttp2"
+.TH "NGHTTPX" "1" "Jul 14, 2023" "1.55.1" "nghttp2"
.SH NAME
nghttpx \- HTTP/2 proxy
.SH SYNOPSIS
diff --git a/docker/Dockerfile b/docker/Dockerfile
index 9cb49bb..979287c 100644
--- a/docker/Dockerfile
+++ b/docker/Dockerfile
@@ -15,7 +15,7 @@ RUN git clone --depth 1 -b OpenSSL_1_1_1u+quic https://github.com/quictls/openss
cd .. && \
rm -rf openssl
-RUN git clone --depth 1 -b v0.12.0 https://github.com/ngtcp2/nghttp3 && \
+RUN git clone --depth 1 -b v0.13.0 https://github.com/ngtcp2/nghttp3 && \
cd nghttp3 && \
autoreconf -i && \
./configure --enable-lib-only && \
@@ -24,7 +24,7 @@ RUN git clone --depth 1 -b v0.12.0 https://github.com/ngtcp2/nghttp3 && \
cd .. && \
rm -rf nghttp3
-RUN git clone --depth 1 -b v0.16.0 https://github.com/ngtcp2/ngtcp2 && \
+RUN git clone --depth 1 -b v0.17.0 https://github.com/ngtcp2/ngtcp2 && \
cd ngtcp2 && \
autoreconf -i && \
./configure --enable-lib-only \
diff --git a/go.mod b/go.mod
index 831b741..f540e19 100644
--- a/go.mod
+++ b/go.mod
@@ -1,12 +1,12 @@
module github.com/nghttp2/nghttp2
-go 1.19
+go 1.20
require (
github.com/bradfitz/gomemcache v0.0.0-20230124162541-5f7a7d875746
- github.com/quic-go/quic-go v0.33.0
+ github.com/quic-go/quic-go v0.35.1
github.com/tatsuhiro-t/go-nghttp2 v0.0.0-20150408091349-4742878d9c90
- golang.org/x/net v0.7.0
+ golang.org/x/net v0.10.0
)
require (
@@ -15,12 +15,12 @@ require (
github.com/google/pprof v0.0.0-20210407192527-94a9f03dee38 // indirect
github.com/onsi/ginkgo/v2 v2.2.0 // indirect
github.com/quic-go/qpack v0.4.0 // indirect
- github.com/quic-go/qtls-go1-19 v0.2.1 // indirect
- github.com/quic-go/qtls-go1-20 v0.1.1 // indirect
+ github.com/quic-go/qtls-go1-19 v0.3.2 // indirect
+ github.com/quic-go/qtls-go1-20 v0.2.2 // indirect
golang.org/x/crypto v0.4.0 // indirect
golang.org/x/exp v0.0.0-20221205204356-47842c84f3db // indirect
- golang.org/x/mod v0.6.0 // indirect
- golang.org/x/sys v0.5.0 // indirect
- golang.org/x/text v0.7.0 // indirect
- golang.org/x/tools v0.2.0 // indirect
+ golang.org/x/mod v0.8.0 // indirect
+ golang.org/x/sys v0.8.0 // indirect
+ golang.org/x/text v0.9.0 // indirect
+ golang.org/x/tools v0.6.0 // indirect
)
diff --git a/go.sum b/go.sum
index 6f974f9..1d95030 100644
--- a/go.sum
+++ b/go.sum
@@ -22,12 +22,12 @@ github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZb
github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4=
github.com/quic-go/qpack v0.4.0 h1:Cr9BXA1sQS2SmDUWjSofMPNKmvF6IiIfDRmgU0w1ZCo=
github.com/quic-go/qpack v0.4.0/go.mod h1:UZVnYIfi5GRk+zI9UMaCPsmZ2xKJP7XBUvVyT1Knj9A=
-github.com/quic-go/qtls-go1-19 v0.2.1 h1:aJcKNMkH5ASEJB9FXNeZCyTEIHU1J7MmHyz1Q1TSG1A=
-github.com/quic-go/qtls-go1-19 v0.2.1/go.mod h1:ySOI96ew8lnoKPtSqx2BlI5wCpUVPT05RMAlajtnyOI=
-github.com/quic-go/qtls-go1-20 v0.1.1 h1:KbChDlg82d3IHqaj2bn6GfKRj84Per2VGf5XV3wSwQk=
-github.com/quic-go/qtls-go1-20 v0.1.1/go.mod h1:JKtK6mjbAVcUTN/9jZpvLbGxvdWIKS8uT7EiStoU1SM=
-github.com/quic-go/quic-go v0.33.0 h1:ItNoTDN/Fm/zBlq769lLJc8ECe9gYaW40veHCCco7y0=
-github.com/quic-go/quic-go v0.33.0/go.mod h1:YMuhaAV9/jIu0XclDXwZPAsP/2Kgr5yMYhe9oxhhOFA=
+github.com/quic-go/qtls-go1-19 v0.3.2 h1:tFxjCFcTQzK+oMxG6Zcvp4Dq8dx4yD3dDiIiyc86Z5U=
+github.com/quic-go/qtls-go1-19 v0.3.2/go.mod h1:ySOI96ew8lnoKPtSqx2BlI5wCpUVPT05RMAlajtnyOI=
+github.com/quic-go/qtls-go1-20 v0.2.2 h1:WLOPx6OY/hxtTxKV1Zrq20FtXtDEkeY00CGQm8GEa3E=
+github.com/quic-go/qtls-go1-20 v0.2.2/go.mod h1:JKtK6mjbAVcUTN/9jZpvLbGxvdWIKS8uT7EiStoU1SM=
+github.com/quic-go/quic-go v0.35.1 h1:b0kzj6b/cQAf05cT0CkQubHM31wiA+xH3IBkxP62poo=
+github.com/quic-go/quic-go v0.35.1/go.mod h1:+4CVgVppm0FNjpG3UcX8Joi/frKOH7/ciD5yGcwOO1g=
github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME=
github.com/stretchr/testify v1.5.1 h1:nOGnQDM7FYENwehXlg/kFVnos3rEvtKTjRvOWSzb6H4=
github.com/stretchr/testify v1.5.1/go.mod h1:5W2xD1RspED5o8YsWQXVCued0rvSQ+mT+I5cxcmMvtA=
@@ -41,13 +41,13 @@ golang.org/x/crypto v0.4.0/go.mod h1:3quD/ATkf6oY+rnes5c3ExXTbLc8mueNue5/DoinL80
golang.org/x/exp v0.0.0-20221205204356-47842c84f3db h1:D/cFflL63o2KSLJIwjlcIt8PR064j/xsmdEJL/YvY/o=
golang.org/x/exp v0.0.0-20221205204356-47842c84f3db/go.mod h1:CxIveKay+FTh1D0yPZemJVgC/95VzuuOLq5Qi4xnoYc=
golang.org/x/mod v0.4.2/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA=
-golang.org/x/mod v0.6.0 h1:b9gGHsz9/HhJ3HF5DHQytPpuwocVTChQJK3AvoLRD5I=
-golang.org/x/mod v0.6.0/go.mod h1:4mET923SAdbXp2ki8ey+zGs1SLqsuM2Y0uvdZR/fUNI=
+golang.org/x/mod v0.8.0 h1:LUYupSeNrTNCGzR/hVBk2NHZO4hXcVaW1k4Qx7rjPx8=
+golang.org/x/mod v0.8.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs=
golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg=
golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
golang.org/x/net v0.0.0-20210405180319-a5a99cb37ef4/go.mod h1:p54w0d4576C0XHj96bSt6lcn1PtDYWL6XObtHCRCNQM=
-golang.org/x/net v0.7.0 h1:rJrUqqhjsgNp7KqAIc25s9pZnjU7TUcSY7HcVZjdn1g=
-golang.org/x/net v0.7.0/go.mod h1:2Tu9+aMcznHK/AK1HMvgo6xiTLG5rD5rZLDS+rp2Bjs=
+golang.org/x/net v0.10.0 h1:X2//UzNDwYmtCLn7To6G58Wr6f5ahEAQgKNzv9Y951M=
+golang.org/x/net v0.10.0/go.mod h1:0qNGK6F8kojg2nk9dLZ2mShWaEBan6FAoqfSigmmuDg=
golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
golang.org/x/sync v0.0.0-20210220032951-036812b2e83c/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
@@ -56,18 +56,18 @@ golang.org/x/sys v0.0.0-20191204072324-ce4227a45e2e/go.mod h1:h1NjWce9XRLGQEsW7w
golang.org/x/sys v0.0.0-20201119102817-f84b799fce68/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20210330210617-4fbd30eecc44/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20210510120138-977fb7262007/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
-golang.org/x/sys v0.5.0 h1:MUK/U/4lj1t1oPg0HfuXDN/Z1wv31ZJ/YcPiGccS4DU=
-golang.org/x/sys v0.5.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
+golang.org/x/sys v0.8.0 h1:EBmGv8NaZBZTWvrbjNoL6HVt+IVy3QDQpJs7VRIw3tU=
+golang.org/x/sys v0.8.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo=
golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ=
-golang.org/x/text v0.7.0 h1:4BRB4x83lYWy72KwLD/qYDuTu7q9PjSagHvijDw7cLo=
-golang.org/x/text v0.7.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8=
+golang.org/x/text v0.9.0 h1:2sjJmO8cDvYveuX97RDLsxlyUxLl+GHoLxBiRdHllBE=
+golang.org/x/text v0.9.0/go.mod h1:e1OnstbJyHTd6l/uOt8jFFHp6TRDWZR/bV3emEE/zU8=
golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=
golang.org/x/tools v0.1.1/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk=
-golang.org/x/tools v0.2.0 h1:G6AHpWxTMGY1KyEYoAQ5WTtIekUUvDNjan3ugu60JvE=
-golang.org/x/tools v0.2.0/go.mod h1:y4OqIKeOV/fWJetJ8bXPU1sEVniLMIyDAZWeHdV+NTA=
+golang.org/x/tools v0.6.0 h1:BOw41kyTf3PuCW1pVQf8+Cyg8pMlkYB1oo9iJ6D/lKM=
+golang.org/x/tools v0.6.0/go.mod h1:Xwgl3UAJ/d3gWutnCtw505GrjyAbvKui8lOU390QaIU=
golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
diff --git a/lib/nghttp2_session.c b/lib/nghttp2_session.c
index 7509ceb..71858a3 100644
--- a/lib/nghttp2_session.c
+++ b/lib/nghttp2_session.c
@@ -3296,6 +3296,7 @@ static ssize_t nghttp2_session_mem_send_internal(nghttp2_session *session,
if (rv < 0) {
int32_t opened_stream_id = 0;
uint32_t error_code = NGHTTP2_INTERNAL_ERROR;
+ int rv2 = 0;
DEBUGF("send: frame preparation failed with %s\n",
nghttp2_strerror(rv));
@@ -3338,19 +3339,18 @@ static ssize_t nghttp2_session_mem_send_internal(nghttp2_session *session,
}
if (opened_stream_id) {
/* careful not to override rv */
- int rv2;
rv2 = nghttp2_session_close_stream(session, opened_stream_id,
error_code);
-
- if (nghttp2_is_fatal(rv2)) {
- return rv2;
- }
}
nghttp2_outbound_item_free(item, mem);
nghttp2_mem_free(mem, item);
active_outbound_item_reset(aob, mem);
+ if (nghttp2_is_fatal(rv2)) {
+ return rv2;
+ }
+
if (rv == NGHTTP2_ERR_HEADER_COMP) {
/* If header compression error occurred, should terminiate
connection. */
diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
index cd7fd2b..201c5a2 100644
--- a/src/CMakeLists.txt
+++ b/src/CMakeLists.txt
@@ -15,7 +15,7 @@ include_directories(
${LIBEV_INCLUDE_DIRS}
${LIBNGHTTP3_INCLUDE_DIRS}
${LIBNGTCP2_INCLUDE_DIRS}
- ${LIBNGTCP2_CRYPTO_OPENSSL_INCLUDE_DIRS}
+ ${LIBNGTCP2_CRYPTO_QUICTLS_INCLUDE_DIRS}
${OPENSSL_INCLUDE_DIRS}
${LIBCARES_INCLUDE_DIRS}
${JANSSON_INCLUDE_DIRS}
@@ -31,7 +31,7 @@ link_libraries(
${LIBEV_LIBRARIES}
${LIBNGHTTP3_LIBRARIES}
${LIBNGTCP2_LIBRARIES}
- ${LIBNGTCP2_CRYPTO_OPENSSL_LIBRARIES}
+ ${LIBNGTCP2_CRYPTO_QUICTLS_LIBRARIES}
${OPENSSL_LIBRARIES}
${LIBCARES_LIBRARIES}
${JANSSON_LIBRARIES}
diff --git a/src/Makefile.am b/src/Makefile.am
index a2072e3..f112ac2 100644
--- a/src/Makefile.am
+++ b/src/Makefile.am
@@ -45,7 +45,7 @@ AM_CPPFLAGS = \
@LIBXML2_CFLAGS@ \
@LIBEV_CFLAGS@ \
@LIBNGHTTP3_CFLAGS@ \
- @LIBNGTCP2_CRYPTO_OPENSSL_CFLAGS@ \
+ @LIBNGTCP2_CRYPTO_QUICTLS_CFLAGS@ \
@LIBNGTCP2_CRYPTO_BORINGSSL_CFLAGS@ \
@LIBNGTCP2_CFLAGS@ \
@OPENSSL_CFLAGS@ \
@@ -64,7 +64,7 @@ LDADD = $(top_builddir)/lib/libnghttp2.la \
@LIBXML2_LIBS@ \
@LIBEV_LIBS@ \
@LIBNGHTTP3_LIBS@ \
- @LIBNGTCP2_CRYPTO_OPENSSL_LIBS@ \
+ @LIBNGTCP2_CRYPTO_QUICTLS_LIBS@ \
@LIBNGTCP2_CRYPTO_BORINGSSL_LIBS@ \
@LIBNGTCP2_LIBS@ \
@OPENSSL_LIBS@ \
diff --git a/src/h2load.cc b/src/h2load.cc
index d4c3c69..07b8357 100644
--- a/src/h2load.cc
+++ b/src/h2load.cc
@@ -51,9 +51,9 @@
#include <openssl/err.h>
#ifdef ENABLE_HTTP3
-# ifdef HAVE_LIBNGTCP2_CRYPTO_OPENSSL
-# include <ngtcp2/ngtcp2_crypto_openssl.h>
-# endif // HAVE_LIBNGTCP2_CRYPTO_OPENSSL
+# ifdef HAVE_LIBNGTCP2_CRYPTO_QUICTLS
+# include <ngtcp2/ngtcp2_crypto_quictls.h>
+# endif // HAVE_LIBNGTCP2_CRYPTO_QUICTLS
# ifdef HAVE_LIBNGTCP2_CRYPTO_BORINGSSL
# include <ngtcp2/ngtcp2_crypto_boringssl.h>
# endif // HAVE_LIBNGTCP2_CRYPTO_BORINGSSL
@@ -541,6 +541,14 @@ int Client::make_socket(addrinfo *addr) {
return -1;
}
+# ifdef UDP_GRO
+ int val = 1;
+ if (setsockopt(fd, IPPROTO_UDP, UDP_GRO, &val, sizeof(val)) != 0) {
+ std::cerr << "setsockopt UDP_GRO failed" << std::endl;
+ return -1;
+ }
+# endif // UDP_GRO
+
rv = util::bind_any_addr_udp(fd, addr->ai_family);
if (rv != 0) {
close(fd);
@@ -2919,13 +2927,13 @@ int main(int argc, char **argv) {
if (config.is_quic()) {
#ifdef ENABLE_HTTP3
-# ifdef HAVE_LIBNGTCP2_CRYPTO_OPENSSL
- if (ngtcp2_crypto_openssl_configure_client_context(ssl_ctx) != 0) {
- std::cerr << "ngtcp2_crypto_openssl_configure_client_context failed"
+# ifdef HAVE_LIBNGTCP2_CRYPTO_QUICTLS
+ if (ngtcp2_crypto_quictls_configure_client_context(ssl_ctx) != 0) {
+ std::cerr << "ngtcp2_crypto_quictls_configure_client_context failed"
<< std::endl;
exit(EXIT_FAILURE);
}
-# endif // HAVE_LIBNGTCP2_CRYPTO_OPENSSL
+# endif // HAVE_LIBNGTCP2_CRYPTO_QUICTLS
# ifdef HAVE_LIBNGTCP2_CRYPTO_BORINGSSL
if (ngtcp2_crypto_boringssl_configure_client_context(ssl_ctx) != 0) {
std::cerr << "ngtcp2_crypto_boringssl_configure_client_context failed"
diff --git a/src/h2load_quic.cc b/src/h2load_quic.cc
index a58a642..65fbc10 100644
--- a/src/h2load_quic.cc
+++ b/src/h2load_quic.cc
@@ -28,9 +28,9 @@
#include <iostream>
-#ifdef HAVE_LIBNGTCP2_CRYPTO_OPENSSL
-# include <ngtcp2/ngtcp2_crypto_openssl.h>
-#endif // HAVE_LIBNGTCP2_CRYPTO_OPENSSL
+#ifdef HAVE_LIBNGTCP2_CRYPTO_QUICTLS
+# include <ngtcp2/ngtcp2_crypto_quictls.h>
+#endif // HAVE_LIBNGTCP2_CRYPTO_QUICTLS
#ifdef HAVE_LIBNGTCP2_CRYPTO_BORINGSSL
# include <ngtcp2/ngtcp2_crypto_boringssl.h>
#endif // HAVE_LIBNGTCP2_CRYPTO_BORINGSSL
@@ -538,22 +538,40 @@ void Client::quic_restart_pkt_timer() {
}
int Client::read_quic() {
- std::array<uint8_t, 65536> buf;
+ std::array<uint8_t, 65535> buf;
sockaddr_union su;
- socklen_t addrlen = sizeof(su);
int rv;
size_t pktcnt = 0;
ngtcp2_pkt_info pi{};
+ iovec msg_iov;
+ msg_iov.iov_base = buf.data();
+ msg_iov.iov_len = buf.size();
+
+ msghdr msg{};
+ msg.msg_name = &su;
+ msg.msg_iov = &msg_iov;
+ msg.msg_iovlen = 1;
+
+ uint8_t msg_ctrl[CMSG_SPACE(sizeof(uint16_t))];
+ msg.msg_control = msg_ctrl;
+
auto ts = quic_timestamp();
for (;;) {
- auto nread =
- recvfrom(fd, buf.data(), buf.size(), MSG_DONTWAIT, &su.sa, &addrlen);
+ msg.msg_namelen = sizeof(su);
+ msg.msg_controllen = sizeof(msg_ctrl);
+
+ auto nread = recvmsg(fd, &msg, 0);
if (nread == -1) {
return 0;
}
+ auto gso_size = util::msghdr_get_udp_gro(&msg);
+ if (gso_size == 0) {
+ gso_size = static_cast<size_t>(nread);
+ }
+
assert(quic.conn);
++worker->stats.udp_dgram_recv;
@@ -565,28 +583,41 @@ int Client::read_quic() {
},
{
&su.sa,
- addrlen,
+ msg.msg_namelen,
},
};
- rv = ngtcp2_conn_read_pkt(quic.conn, &path, &pi, buf.data(), nread, ts);
- if (rv != 0) {
- std::cerr << "ngtcp2_conn_read_pkt: " << ngtcp2_strerror(rv) << std::endl;
-
- if (!quic.last_error.error_code) {
- if (rv == NGTCP2_ERR_CRYPTO) {
- ngtcp2_ccerr_set_tls_alert(&quic.last_error,
- ngtcp2_conn_get_tls_alert(quic.conn),
- nullptr, 0);
- } else {
- ngtcp2_ccerr_set_liberr(&quic.last_error, rv, nullptr, 0);
+ auto data = buf.data();
+
+ for (;;) {
+ auto datalen = std::min(static_cast<size_t>(nread), gso_size);
+
+ ++pktcnt;
+
+ rv = ngtcp2_conn_read_pkt(quic.conn, &path, &pi, data, datalen, ts);
+ if (rv != 0) {
+ if (!quic.last_error.error_code) {
+ if (rv == NGTCP2_ERR_CRYPTO) {
+ ngtcp2_ccerr_set_tls_alert(&quic.last_error,
+ ngtcp2_conn_get_tls_alert(quic.conn),
+ nullptr, 0);
+ } else {
+ ngtcp2_ccerr_set_liberr(&quic.last_error, rv, nullptr, 0);
+ }
}
+
+ return -1;
}
- return -1;
+ nread -= datalen;
+ if (nread == 0) {
+ break;
+ }
+
+ data += datalen;
}
- if (++pktcnt == 100) {
+ if (pktcnt >= 100) {
break;
}
}
diff --git a/src/shrpx_http3_upstream.cc b/src/shrpx_http3_upstream.cc
index b01d630..f826ac6 100644
--- a/src/shrpx_http3_upstream.cc
+++ b/src/shrpx_http3_upstream.cc
@@ -638,6 +638,8 @@ int Http3Upstream::init(const UpstreamAddr *faddr, const Address &remote_addr,
settings.rand_ctx.native_handle = &worker->get_randgen();
settings.token = token;
settings.tokenlen = tokenlen;
+ settings.initial_pkt_num = std::uniform_int_distribution<uint32_t>(
+ 0, std::numeric_limits<int32_t>::max())(worker->get_randgen());
ngtcp2_transport_params params;
ngtcp2_transport_params_default(&params);
@@ -1498,7 +1500,7 @@ void Http3Upstream::on_handler_delete() {
auto worker = handler_->get_worker();
auto quic_conn_handler = worker->get_quic_connection_handler();
- std::vector<ngtcp2_cid> scids(ngtcp2_conn_get_num_scid(conn_) + 1);
+ std::vector<ngtcp2_cid> scids(ngtcp2_conn_get_scid(conn_, nullptr) + 1);
ngtcp2_conn_get_scid(conn_, scids.data());
scids.back() = hashed_scid_;
diff --git a/src/shrpx_quic_listener.cc b/src/shrpx_quic_listener.cc
index d22045d..9607ba1 100644
--- a/src/shrpx_quic_listener.cc
+++ b/src/shrpx_quic_listener.cc
@@ -59,8 +59,9 @@ void QUICListener::on_read() {
msg.msg_iov = &msg_iov;
msg.msg_iovlen = 1;
- uint8_t
- msg_ctrl[CMSG_SPACE(sizeof(uint8_t)) + CMSG_SPACE(sizeof(in6_pktinfo))];
+ uint8_t msg_ctrl[CMSG_SPACE(sizeof(uint8_t)) +
+ CMSG_SPACE(sizeof(in6_pktinfo)) +
+ CMSG_SPACE(sizeof(uint16_t))];
msg.msg_control = msg_ctrl;
auto quic_conn_handler = worker_->get_quic_connection_handler();
@@ -74,11 +75,11 @@ void QUICListener::on_read() {
return;
}
- ++pktcnt;
-
Address local_addr{};
if (util::msghdr_get_local_addr(local_addr, &msg, su.storage.ss_family) !=
0) {
+ ++pktcnt;
+
continue;
}
@@ -88,24 +89,44 @@ void QUICListener::on_read() {
.ecn = util::msghdr_get_ecn(&msg, su.storage.ss_family),
};
- if (LOG_ENABLED(INFO)) {
- LOG(INFO) << "QUIC received packet: local="
- << util::to_numeric_addr(&local_addr)
- << " remote=" << util::to_numeric_addr(&su.sa, msg.msg_namelen)
- << " ecn=" << log::hex << pi.ecn << log::dec << " " << nread
- << " bytes";
+ auto gso_size = util::msghdr_get_udp_gro(&msg);
+ if (gso_size == 0) {
+ gso_size = static_cast<size_t>(nread);
}
- if (nread == 0) {
- continue;
- }
+ auto data = buf.data();
+
+ for (;;) {
+ auto datalen = std::min(static_cast<size_t>(nread), gso_size);
+
+ ++pktcnt;
- Address remote_addr;
- remote_addr.su = su;
- remote_addr.len = msg.msg_namelen;
+ if (LOG_ENABLED(INFO)) {
+ LOG(INFO) << "QUIC received packet: local="
+ << util::to_numeric_addr(&local_addr) << " remote="
+ << util::to_numeric_addr(&su.sa, msg.msg_namelen)
+ << " ecn=" << log::hex << pi.ecn << log::dec << " " << datalen
+ << " bytes";
+ }
- quic_conn_handler->handle_packet(faddr_, remote_addr, local_addr, pi,
- buf.data(), nread);
+ if (datalen == 0) {
+ break;
+ }
+
+ Address remote_addr;
+ remote_addr.su = su;
+ remote_addr.len = msg.msg_namelen;
+
+ quic_conn_handler->handle_packet(faddr_, remote_addr, local_addr, pi,
+ data, datalen);
+
+ nread -= datalen;
+ if (nread == 0) {
+ break;
+ }
+
+ data += datalen;
+ }
}
}
diff --git a/src/shrpx_tls.cc b/src/shrpx_tls.cc
index 43930d1..2d6e004 100644
--- a/src/shrpx_tls.cc
+++ b/src/shrpx_tls.cc
@@ -64,9 +64,9 @@
#ifdef ENABLE_HTTP3
# include <ngtcp2/ngtcp2.h>
# include <ngtcp2/ngtcp2_crypto.h>
-# ifdef HAVE_LIBNGTCP2_CRYPTO_OPENSSL
-# include <ngtcp2/ngtcp2_crypto_openssl.h>
-# endif // HAVE_LIBNGTCP2_CRYPTO_OPENSSL
+# ifdef HAVE_LIBNGTCP2_CRYPTO_QUICTLS
+# include <ngtcp2/ngtcp2_crypto_quictls.h>
+# endif // HAVE_LIBNGTCP2_CRYPTO_QUICTLS
# ifdef HAVE_LIBNGTCP2_CRYPTO_BORINGSSL
# include <ngtcp2/ngtcp2_crypto_boringssl.h>
# endif // HAVE_LIBNGTCP2_CRYPTO_BORINGSSL
@@ -1258,12 +1258,12 @@ SSL_CTX *create_quic_ssl_context(const char *private_key_file,
SSL_CTX_set_options(ssl_ctx, ssl_opts);
-# ifdef HAVE_LIBNGTCP2_CRYPTO_OPENSSL
- if (ngtcp2_crypto_openssl_configure_server_context(ssl_ctx) != 0) {
- LOG(FATAL) << "ngtcp2_crypto_openssl_configure_server_context failed";
+# ifdef HAVE_LIBNGTCP2_CRYPTO_QUICTLS
+ if (ngtcp2_crypto_quictls_configure_server_context(ssl_ctx) != 0) {
+ LOG(FATAL) << "ngtcp2_crypto_quictls_configure_server_context failed";
DIE();
}
-# endif // HAVE_LIBNGTCP2_CRYPTO_OPENSSL
+# endif // HAVE_LIBNGTCP2_CRYPTO_QUICTLS
# ifdef HAVE_LIBNGTCP2_CRYPTO_BORINGSSL
if (ngtcp2_crypto_boringssl_configure_server_context(ssl_ctx) != 0) {
LOG(FATAL) << "ngtcp2_crypto_boringssl_configure_server_context failed";
diff --git a/src/shrpx_worker.cc b/src/shrpx_worker.cc
index 4756322..567fc20 100644
--- a/src/shrpx_worker.cc
+++ b/src/shrpx_worker.cc
@@ -27,6 +27,7 @@
#ifdef HAVE_UNISTD_H
# include <unistd.h>
#endif // HAVE_UNISTD_H
+#include <netinet/udp.h>
#include <cstdio>
#include <memory>
@@ -892,6 +893,16 @@ int Worker::create_quic_server_socket(UpstreamAddr &faddr) {
# endif // defined(IP_MTU_DISCOVER) && defined(IP_PMTUDISC_DO)
}
+# ifdef UDP_GRO
+ if (setsockopt(fd, IPPROTO_UDP, UDP_GRO, &val, sizeof(val)) == -1) {
+ auto error = errno;
+ LOG(WARN) << "Failed to set UDP_GRO option to listener socket: "
+ << xsi_strerror(error, errbuf.data(), errbuf.size());
+ close(fd);
+ continue;
+ }
+# endif // UDP_GRO
+
if (bind(fd, rp->ai_addr, rp->ai_addrlen) == -1) {
auto error = errno;
LOG(WARN) << "bind() syscall failed: "
diff --git a/src/util.cc b/src/util.cc
index 06b6e29..87bbd0f 100644
--- a/src/util.cc
+++ b/src/util.cc
@@ -41,6 +41,7 @@
#ifdef HAVE_NETINET_IN_H
# include <netinet/in.h>
#endif // HAVE_NETINET_IN_H
+#include <netinet/udp.h>
#ifdef _WIN32
# include <ws2tcpip.h>
#else // !_WIN32
@@ -1733,6 +1734,22 @@ unsigned int msghdr_get_ecn(msghdr *msg, int family) {
return 0;
}
+size_t msghdr_get_udp_gro(msghdr *msg) {
+ uint16_t gso_size = 0;
+
+# ifdef UDP_GRO
+ for (auto cmsg = CMSG_FIRSTHDR(msg); cmsg; cmsg = CMSG_NXTHDR(msg, cmsg)) {
+ if (cmsg->cmsg_level == SOL_UDP && cmsg->cmsg_type == UDP_GRO) {
+ memcpy(&gso_size, CMSG_DATA(cmsg), sizeof(gso_size));
+
+ break;
+ }
+ }
+# endif // UDP_GRO
+
+ return gso_size;
+}
+
int fd_set_send_ecn(int fd, int family, unsigned int ecn) {
switch (family) {
case AF_INET:
diff --git a/src/util.h b/src/util.h
index 6b45922..c5575d8 100644
--- a/src/util.h
+++ b/src/util.h
@@ -47,7 +47,9 @@
#include <map>
#include <random>
-#include <ev.h>
+#ifdef HAVE_LIBEV
+# include <ev.h>
+#endif // HAVE_LIBEV
#include "url-parser/url_parser.h"
@@ -697,6 +699,7 @@ template <typename Clock, typename Rep> Rep clock_precision() {
return duration.count();
}
+#ifdef HAVE_LIBEV
template <typename Duration = std::chrono::steady_clock::duration>
Duration duration_from(ev_tstamp d) {
return std::chrono::duration_cast<Duration>(std::chrono::duration<double>(d));
@@ -705,6 +708,7 @@ Duration duration_from(ev_tstamp d) {
template <typename Duration> ev_tstamp ev_tstamp_from(const Duration &d) {
return std::chrono::duration<double>(d).count();
}
+#endif // HAVE_LIBEV
int make_socket_closeonexec(int fd);
int make_socket_nonblocking(int fd);
@@ -955,6 +959,10 @@ int msghdr_get_local_addr(Address &dest, msghdr *msg, int family);
unsigned int msghdr_get_ecn(msghdr *msg, int family);
+// msghdr_get_udp_gro returns UDP_GRO value from |msg|. If UDP_GRO is
+// not found, or UDP_GRO is not supported, this function returns 0.
+size_t msghdr_get_udp_gro(msghdr *msg);
+
int fd_set_send_ecn(int fd, int family, unsigned int ecn);
#endif // ENABLE_HTTP3
diff --git a/tests/nghttp2_session_test.c b/tests/nghttp2_session_test.c
index b55ff53..7435242 100644
--- a/tests/nghttp2_session_test.c
+++ b/tests/nghttp2_session_test.c
@@ -584,6 +584,15 @@ static int on_stream_close_callback(nghttp2_session *session, int32_t stream_id,
return 0;
}
+static int fatal_error_on_stream_close_callback(nghttp2_session *session,
+ int32_t stream_id,
+ uint32_t error_code,
+ void *user_data) {
+ on_stream_close_callback(session, stream_id, error_code, user_data);
+
+ return NGHTTP2_ERR_CALLBACK_FAILURE;
+}
+
static ssize_t pack_extension_callback(nghttp2_session *session, uint8_t *buf,
size_t len, const nghttp2_frame *frame,
void *user_data) {
@@ -4296,6 +4305,8 @@ void test_nghttp2_session_on_goaway_received(void) {
nghttp2_frame frame;
int i;
nghttp2_mem *mem;
+ const uint8_t *data;
+ ssize_t datalen;
mem = nghttp2_mem_default();
user_data.frame_recv_cb_called = 0;
@@ -4337,6 +4348,29 @@ void test_nghttp2_session_on_goaway_received(void) {
nghttp2_frame_goaway_free(&frame.goaway, mem);
nghttp2_session_del(session);
+
+ /* Make sure that no memory leak when stream_close callback fails
+ with a fatal error */
+ memset(&callbacks, 0, sizeof(nghttp2_session_callbacks));
+ callbacks.on_stream_close_callback = fatal_error_on_stream_close_callback;
+
+ memset(&user_data, 0, sizeof(user_data));
+
+ nghttp2_session_client_new(&session, &callbacks, &user_data);
+
+ nghttp2_frame_goaway_init(&frame.goaway, 0, NGHTTP2_NO_ERROR, NULL, 0);
+
+ CU_ASSERT(0 == nghttp2_session_on_goaway_received(session, &frame));
+
+ nghttp2_submit_request(session, NULL, reqnv, ARRLEN(reqnv), NULL, NULL);
+
+ datalen = nghttp2_session_mem_send(session, &data);
+
+ CU_ASSERT(NGHTTP2_ERR_CALLBACK_FAILURE == datalen);
+ CU_ASSERT(1 == user_data.stream_close_cb_called);
+
+ nghttp2_frame_goaway_free(&frame.goaway, mem);
+ nghttp2_session_del(session);
}
void test_nghttp2_session_on_window_update_received(void) {
diff --git a/third-party/CMakeLists.txt b/third-party/CMakeLists.txt
index 2f8270d..b0ef060 100644
--- a/third-party/CMakeLists.txt
+++ b/third-party/CMakeLists.txt
@@ -58,7 +58,7 @@ if(ENABLE_THIRD_PARTY)
"MRUBY_CONFIG=${CMAKE_CURRENT_SOURCE_DIR}/build_config.rb"
"BUILD_DIR=${MRUBY_BUILD_DIR}"
"INSTALL_DIR=${MRUBY_BUILD_DIR}/install/bin"
- "CC=${CMAKE_C_COMPILER}" "CXX=${CMAKE_CXX_COMPILER}"
+ "MRUBY_CC=${CMAKE_C_COMPILER}" "MRUBY_CXX=${CMAKE_CXX_COMPILER}"
"${CMAKE_CURRENT_SOURCE_DIR}/mruby/minirake"
-f "${CMAKE_CURRENT_SOURCE_DIR}/mruby/Rakefile"
${_byproducts}
diff --git a/third-party/Makefile.am b/third-party/Makefile.am
index 7d85fb1..8b47532 100644
--- a/third-party/Makefile.am
+++ b/third-party/Makefile.am
@@ -574,10 +574,9 @@ mruby:
MRUBY_CONFIG="${abs_builddir}/mruby/build/build_config.rb" \
BUILD_DIR="${abs_builddir}/mruby/build" \
INSTALL_DIR="${abs_builddir}/mruby/build/install/bin" \
- CC="${CC}" CXX="$(firstword $(CXX))" LD="${LD}" \
- CFLAGS="${CPPFLAGS} ${CFLAGS}" \
- CXXFLAGS="$(wordlist 2, $(words $(CXX)), $(CXX)) ${CPPFLAGS} ${CXXFLAGS}" \
- LDFLAGS="${LDFLAGS}" \
+ MRUBY_CC="${CC}" MRUBY_CXX="$(firstword $(CXX))" MRUBY_LD="${LD}" \
+ MRUBY_AR="${AR}" \
+ HOST="${host}" BUILD="${build}" \
"${srcdir}/mruby/minirake" -f "${srcdir}/mruby/Rakefile"
all-local: mruby
@@ -586,7 +585,7 @@ clean-local:
[ ! -f "${abs_builddir}/mruby/build/build_config.rb" ] || \
MRUBY_CONFIG="${abs_builddir}/mruby/build/build_config.rb" \
BUILD_DIR="${abs_builddir}/mruby/build" \
- CC="${CC}" \
+ MRUBY_CC="${CC}" \
"${srcdir}/mruby/minirake" -f "${srcdir}/mruby/Rakefile" clean
endif # HAVE_MRUBY
diff --git a/third-party/build_config.rb b/third-party/build_config.rb
index 86dd815..e06a4cc 100644
--- a/third-party/build_config.rb
+++ b/third-party/build_config.rb
@@ -1,6 +1,16 @@
-MRuby::Build.new do |conf|
- toolchain :clang if ENV['CC'].include? "clang"
- toolchain :gcc if ENV['CC'].include? "gcc"
+def config(conf)
+ toolchain :clang if ENV['MRUBY_CC'].include? "clang"
+ toolchain :gcc if ENV['MRUBY_CC'].include? "gcc"
+
+ conf.cc.command = ENV['MRUBY_CC']
+ conf.cxx.command = ENV['MRUBY_CXX']
+
+ if ENV['MRUBY_LD']
+ conf.linker.command = ENV['MRUBY_LD']
+ end
+ if ENV['MRUBY_AR']
+ conf.archiver.command = ENV['MRUBY_AR']
+ end
# C++ project needs this. Without this, mruby exception does not
# properly destroy C++ object allocated on stack.
@@ -12,3 +22,13 @@ MRuby::Build.new do |conf|
conf.gembox 'default'
conf.gem :core => 'mruby-eval'
end
+
+if ENV['BUILD'] == ENV['HOST'] then
+ MRuby::Build.new do |conf|
+ config(conf)
+ end
+else
+ MRuby::CrossBuild.new(ENV['HOST']) do |conf|
+ config(conf)
+ end
+end
diff --git a/third-party/llhttp/README.md b/third-party/llhttp/README.md
index e227b17..4d886b5 100644
--- a/third-party/llhttp/README.md
+++ b/third-party/llhttp/README.md
@@ -61,33 +61,41 @@ checks could be performed to get even stricter verification of the llhttp.
## Usage
```C
+#include "stdio.h"
#include "llhttp.h"
+#include "string.h"
-llhttp_t parser;
-llhttp_settings_t settings;
+int handle_on_message_complete(llhttp_t* parser) {
+ fprintf(stdout, "Message completed!\n");
+ return 0;
+}
+
+int main() {
+ llhttp_t parser;
+ llhttp_settings_t settings;
-/* Initialize user callbacks and settings */
-llhttp_settings_init(&settings);
+ /*Initialize user callbacks and settings */
+ llhttp_settings_init(&settings);
-/* Set user callback */
-settings.on_message_complete = handle_on_message_complete;
+ /*Set user callback */
+ settings.on_message_complete = handle_on_message_complete;
-/* Initialize the parser in HTTP_BOTH mode, meaning that it will select between
- * HTTP_REQUEST and HTTP_RESPONSE parsing automatically while reading the first
- * input.
- */
-llhttp_init(&parser, HTTP_BOTH, &settings);
+ /*Initialize the parser in HTTP_BOTH mode, meaning that it will select between
+ *HTTP_REQUEST and HTTP_RESPONSE parsing automatically while reading the first
+ *input.
+ */
+ llhttp_init(&parser, HTTP_BOTH, &settings);
-/* Parse request! */
-const char* request = "GET / HTTP/1.1\r\n\r\n";
-int request_len = strlen(request);
+ /*Parse request! */
+ const char* request = "GET / HTTP/1.1\r\n\r\n";
+ int request_len = strlen(request);
-enum llhttp_errno err = llhttp_execute(&parser, request, request_len);
-if (err == HPE_OK) {
- /* Successfully parsed! */
-} else {
- fprintf(stderr, "Parse error: %s %s\n", llhttp_errno_name(err),
- parser.reason);
+ enum llhttp_errno err = llhttp_execute(&parser, request, request_len);
+ if (err == HPE_OK) {
+ fprintf(stdout, "Successfully parsed!\n");
+ } else {
+ fprintf(stderr, "Parse error: %s %s\n", llhttp_errno_name(err), parser.reason);
+ }
}
```
For more information on API usage, please refer to [src/native/api.h](https://github.com/nodejs/llhttp/blob/main/src/native/api.h).
@@ -345,16 +353,33 @@ make
### Using with CMake
-If you want to use this library in a CMake project you can use the snippet below.
+If you want to use this library in a CMake project as a shared library, you can use the snippet below.
```
FetchContent_Declare(llhttp
- URL "https://github.com/nodejs/llhttp/archive/refs/tags/v6.0.5.tar.gz") # Using version 6.0.5
+ URL "https://github.com/nodejs/llhttp/archive/refs/tags/release/v8.1.0.tar.gz")
FetchContent_MakeAvailable(llhttp)
-target_link_libraries(${EXAMPLE_PROJECT_NAME} ${PROJECT_LIBRARIES} llhttp ${PROJECT_NAME})
+# Link with the llhttp_shared target
+target_link_libraries(${EXAMPLE_PROJECT_NAME} ${PROJECT_LIBRARIES} llhttp_shared ${PROJECT_NAME})
+```
+
+If you want to use this library in a CMake project as a static library, you can set some cache variables first.
+
```
+FetchContent_Declare(llhttp
+ URL "https://github.com/nodejs/llhttp/archive/refs/tags/release/v8.1.0.tar.gz")
+
+set(BUILD_SHARED_LIBS OFF CACHE INTERNAL "")
+set(BUILD_STATIC_LIBS ON CACHE INTERNAL "")
+FetchContent_MakeAvailable(llhttp)
+
+# Link with the llhttp_static target
+target_link_libraries(${EXAMPLE_PROJECT_NAME} ${PROJECT_LIBRARIES} llhttp_static ${PROJECT_NAME})
+```
+
+_Note that using the git repo directly (e.g., via a git repo url and tag) will not work with FetchContent_Declare because [CMakeLists.txt](./CMakeLists.txt) requires string replacements (e.g., `_RELEASE_`) before it will build._
## Building on Windows
diff --git a/third-party/llhttp/include/llhttp.h b/third-party/llhttp/include/llhttp.h
index 88ef85d..557e1b3 100644
--- a/third-party/llhttp/include/llhttp.h
+++ b/third-party/llhttp/include/llhttp.h
@@ -3,7 +3,7 @@
#define LLHTTP_VERSION_MAJOR 8
#define LLHTTP_VERSION_MINOR 1
-#define LLHTTP_VERSION_PATCH 0
+#define LLHTTP_VERSION_PATCH 1
#ifndef LLHTTP_STRICT_MODE
# define LLHTTP_STRICT_MODE 0
diff --git a/third-party/llhttp/llhttp.gyp b/third-party/llhttp/llhttp.gyp
index 4acc79b..c7b8800 100644
--- a/third-party/llhttp/llhttp.gyp
+++ b/third-party/llhttp/llhttp.gyp
@@ -1,4 +1,11 @@
{
+ 'variables': {
+ 'llhttp_sources': [
+ 'src/llhttp.c',
+ 'src/api.c',
+ 'src/http.c',
+ ]
+ },
'targets': [
{
'target_name': 'llhttp',
@@ -7,7 +14,9 @@
'direct_dependent_settings': {
'include_dirs': [ 'include' ],
},
- 'sources': [ 'src/llhttp.c', 'src/api.c', 'src/http.c' ],
+ 'sources': [
+ '<@(llhttp_sources)',
+ ],
},
]
}
diff --git a/third-party/llhttp/src/llhttp.c b/third-party/llhttp/src/llhttp.c
index 03c720c..e426c6d 100644
--- a/third-party/llhttp/src/llhttp.c
+++ b/third-party/llhttp/src/llhttp.c
@@ -373,7 +373,7 @@ enum llparse_state_e {
s_n_llhttp__internal__n_header_value_lws,
s_n_llhttp__internal__n_header_value_almost_done,
s_n_llhttp__internal__n_header_value_lenient,
- s_n_llhttp__internal__n_error_40,
+ s_n_llhttp__internal__n_error_41,
s_n_llhttp__internal__n_header_value_otherwise,
s_n_llhttp__internal__n_header_value_connection_token,
s_n_llhttp__internal__n_header_value_connection_ws,
@@ -381,12 +381,12 @@ enum llparse_state_e {
s_n_llhttp__internal__n_header_value_connection_2,
s_n_llhttp__internal__n_header_value_connection_3,
s_n_llhttp__internal__n_header_value_connection,
- s_n_llhttp__internal__n_error_42,
s_n_llhttp__internal__n_error_43,
+ s_n_llhttp__internal__n_error_44,
s_n_llhttp__internal__n_header_value_content_length_ws,
s_n_llhttp__internal__n_header_value_content_length,
+ s_n_llhttp__internal__n_error_46,
s_n_llhttp__internal__n_error_45,
- s_n_llhttp__internal__n_error_44,
s_n_llhttp__internal__n_header_value_te_token_ows,
s_n_llhttp__internal__n_header_value,
s_n_llhttp__internal__n_header_value_te_token,
@@ -418,12 +418,12 @@ enum llparse_state_e {
s_n_llhttp__internal__n_req_http_complete,
s_n_llhttp__internal__n_invoke_load_method_1,
s_n_llhttp__internal__n_invoke_llhttp__on_version_complete,
- s_n_llhttp__internal__n_error_50,
- s_n_llhttp__internal__n_error_55,
- s_n_llhttp__internal__n_req_http_minor,
+ s_n_llhttp__internal__n_error_51,
s_n_llhttp__internal__n_error_56,
- s_n_llhttp__internal__n_req_http_dot,
+ s_n_llhttp__internal__n_req_http_minor,
s_n_llhttp__internal__n_error_57,
+ s_n_llhttp__internal__n_req_http_dot,
+ s_n_llhttp__internal__n_error_58,
s_n_llhttp__internal__n_req_http_major,
s_n_llhttp__internal__n_span_start_llhttp__on_version,
s_n_llhttp__internal__n_req_http_start_1,
@@ -536,12 +536,12 @@ enum llparse_state_e {
s_n_llhttp__internal__n_res_status_code_digit_1,
s_n_llhttp__internal__n_res_after_version,
s_n_llhttp__internal__n_invoke_llhttp__on_version_complete_1,
- s_n_llhttp__internal__n_error_72,
- s_n_llhttp__internal__n_error_84,
- s_n_llhttp__internal__n_res_http_minor,
+ s_n_llhttp__internal__n_error_73,
s_n_llhttp__internal__n_error_85,
- s_n_llhttp__internal__n_res_http_dot,
+ s_n_llhttp__internal__n_res_http_minor,
s_n_llhttp__internal__n_error_86,
+ s_n_llhttp__internal__n_res_http_dot,
+ s_n_llhttp__internal__n_error_87,
s_n_llhttp__internal__n_res_http_major,
s_n_llhttp__internal__n_span_start_llhttp__on_version_1,
s_n_llhttp__internal__n_start_res,
@@ -976,7 +976,7 @@ int llhttp__internal__c_test_flags_3(
return (state->flags & 8) == 8;
}
-int llhttp__internal__c_test_lenient_flags_6(
+int llhttp__internal__c_test_lenient_flags_8(
llhttp__internal_t* state,
const unsigned char* p,
const unsigned char* endp) {
@@ -1040,7 +1040,7 @@ int llhttp__internal__c_store_http_minor(
return 0;
}
-int llhttp__internal__c_test_lenient_flags_8(
+int llhttp__internal__c_test_lenient_flags_10(
llhttp__internal_t* state,
const unsigned char* p,
const unsigned char* endp) {
@@ -1963,7 +1963,7 @@ static llparse_state_t llhttp__internal__run(
case 21:
goto s_n_llhttp__internal__n_pause_14;
default:
- goto s_n_llhttp__internal__n_error_36;
+ goto s_n_llhttp__internal__n_error_37;
}
/* UNREACHABLE */;
abort();
@@ -1987,11 +1987,11 @@ static llparse_state_t llhttp__internal__run(
switch (*p) {
case 9: {
p++;
- goto s_n_llhttp__internal__n_header_value_discard_ws;
+ goto s_n_llhttp__internal__n_invoke_test_lenient_flags_5;
}
case ' ': {
p++;
- goto s_n_llhttp__internal__n_header_value_discard_ws;
+ goto s_n_llhttp__internal__n_invoke_test_lenient_flags_5;
}
default: {
goto s_n_llhttp__internal__n_invoke_load_header_state;
@@ -2011,7 +2011,7 @@ static llparse_state_t llhttp__internal__run(
goto s_n_llhttp__internal__n_header_value_discard_lws;
}
default: {
- goto s_n_llhttp__internal__n_error_38;
+ goto s_n_llhttp__internal__n_invoke_test_lenient_flags_6;
}
}
/* UNREACHABLE */;
@@ -2047,7 +2047,7 @@ static llparse_state_t llhttp__internal__run(
goto s_n_llhttp__internal__n_header_value_lws;
}
default: {
- goto s_n_llhttp__internal__n_error_39;
+ goto s_n_llhttp__internal__n_error_40;
}
}
/* UNREACHABLE */;
@@ -2073,8 +2073,8 @@ static llparse_state_t llhttp__internal__run(
/* UNREACHABLE */;
abort();
}
- case s_n_llhttp__internal__n_error_40:
- s_n_llhttp__internal__n_error_40: {
+ case s_n_llhttp__internal__n_error_41:
+ s_n_llhttp__internal__n_error_41: {
state->error = 0xa;
state->reason = "Invalid header value char";
state->error_pos = (const char*) p;
@@ -2093,7 +2093,7 @@ static llparse_state_t llhttp__internal__run(
goto s_n_llhttp__internal__n_span_end_llhttp__on_header_value_1;
}
default: {
- goto s_n_llhttp__internal__n_invoke_test_lenient_flags_5;
+ goto s_n_llhttp__internal__n_invoke_test_lenient_flags_7;
}
}
/* UNREACHABLE */;
@@ -2270,8 +2270,8 @@ static llparse_state_t llhttp__internal__run(
/* UNREACHABLE */;
abort();
}
- case s_n_llhttp__internal__n_error_42:
- s_n_llhttp__internal__n_error_42: {
+ case s_n_llhttp__internal__n_error_43:
+ s_n_llhttp__internal__n_error_43: {
state->error = 0xb;
state->reason = "Content-Length overflow";
state->error_pos = (const char*) p;
@@ -2280,8 +2280,8 @@ static llparse_state_t llhttp__internal__run(
/* UNREACHABLE */;
abort();
}
- case s_n_llhttp__internal__n_error_43:
- s_n_llhttp__internal__n_error_43: {
+ case s_n_llhttp__internal__n_error_44:
+ s_n_llhttp__internal__n_error_44: {
state->error = 0xb;
state->reason = "Invalid character in Content-Length";
state->error_pos = (const char*) p;
@@ -2376,8 +2376,8 @@ static llparse_state_t llhttp__internal__run(
/* UNREACHABLE */;
abort();
}
- case s_n_llhttp__internal__n_error_45:
- s_n_llhttp__internal__n_error_45: {
+ case s_n_llhttp__internal__n_error_46:
+ s_n_llhttp__internal__n_error_46: {
state->error = 0xf;
state->reason = "Invalid `Transfer-Encoding` header value";
state->error_pos = (const char*) p;
@@ -2386,8 +2386,8 @@ static llparse_state_t llhttp__internal__run(
/* UNREACHABLE */;
abort();
}
- case s_n_llhttp__internal__n_error_44:
- s_n_llhttp__internal__n_error_44: {
+ case s_n_llhttp__internal__n_error_45:
+ s_n_llhttp__internal__n_error_45: {
state->error = 0xf;
state->reason = "Invalid `Transfer-Encoding` header value";
state->error_pos = (const char*) p;
@@ -2628,7 +2628,7 @@ static llparse_state_t llhttp__internal__run(
goto s_n_llhttp__internal__n_span_end_llhttp__on_header_field_2;
}
default: {
- goto s_n_llhttp__internal__n_error_46;
+ goto s_n_llhttp__internal__n_error_47;
}
}
/* UNREACHABLE */;
@@ -3025,7 +3025,7 @@ static llparse_state_t llhttp__internal__run(
goto s_n_llhttp__internal__n_url_to_http_09;
}
default: {
- goto s_n_llhttp__internal__n_error_47;
+ goto s_n_llhttp__internal__n_error_48;
}
}
/* UNREACHABLE */;
@@ -3050,7 +3050,7 @@ static llparse_state_t llhttp__internal__run(
goto s_n_llhttp__internal__n_url_skip_lf_to_http09_1;
}
default: {
- goto s_n_llhttp__internal__n_error_47;
+ goto s_n_llhttp__internal__n_error_48;
}
}
/* UNREACHABLE */;
@@ -3068,13 +3068,13 @@ static llparse_state_t llhttp__internal__run(
switch (match_seq.status) {
case kMatchComplete: {
p++;
- goto s_n_llhttp__internal__n_error_53;
+ goto s_n_llhttp__internal__n_error_54;
}
case kMatchPause: {
return s_n_llhttp__internal__n_req_pri_upgrade;
}
case kMatchMismatch: {
- goto s_n_llhttp__internal__n_error_54;
+ goto s_n_llhttp__internal__n_error_55;
}
}
/* UNREACHABLE */;
@@ -3091,7 +3091,7 @@ static llparse_state_t llhttp__internal__run(
goto s_n_llhttp__internal__n_headers_start;
}
default: {
- goto s_n_llhttp__internal__n_error_52;
+ goto s_n_llhttp__internal__n_error_53;
}
}
/* UNREACHABLE */;
@@ -3112,7 +3112,7 @@ static llparse_state_t llhttp__internal__run(
goto s_n_llhttp__internal__n_req_http_complete_1;
}
default: {
- goto s_n_llhttp__internal__n_error_52;
+ goto s_n_llhttp__internal__n_error_53;
}
}
/* UNREACHABLE */;
@@ -3137,13 +3137,13 @@ static llparse_state_t llhttp__internal__run(
case 21:
goto s_n_llhttp__internal__n_pause_17;
default:
- goto s_n_llhttp__internal__n_error_51;
+ goto s_n_llhttp__internal__n_error_52;
}
/* UNREACHABLE */;
abort();
}
- case s_n_llhttp__internal__n_error_50:
- s_n_llhttp__internal__n_error_50: {
+ case s_n_llhttp__internal__n_error_51:
+ s_n_llhttp__internal__n_error_51: {
state->error = 0x9;
state->reason = "Invalid HTTP version";
state->error_pos = (const char*) p;
@@ -3152,8 +3152,8 @@ static llparse_state_t llhttp__internal__run(
/* UNREACHABLE */;
abort();
}
- case s_n_llhttp__internal__n_error_55:
- s_n_llhttp__internal__n_error_55: {
+ case s_n_llhttp__internal__n_error_56:
+ s_n_llhttp__internal__n_error_56: {
state->error = 0x9;
state->reason = "Invalid minor version";
state->error_pos = (const char*) p;
@@ -3225,8 +3225,8 @@ static llparse_state_t llhttp__internal__run(
/* UNREACHABLE */;
abort();
}
- case s_n_llhttp__internal__n_error_56:
- s_n_llhttp__internal__n_error_56: {
+ case s_n_llhttp__internal__n_error_57:
+ s_n_llhttp__internal__n_error_57: {
state->error = 0x9;
state->reason = "Expected dot";
state->error_pos = (const char*) p;
@@ -3252,8 +3252,8 @@ static llparse_state_t llhttp__internal__run(
/* UNREACHABLE */;
abort();
}
- case s_n_llhttp__internal__n_error_57:
- s_n_llhttp__internal__n_error_57: {
+ case s_n_llhttp__internal__n_error_58:
+ s_n_llhttp__internal__n_error_58: {
state->error = 0x9;
state->reason = "Invalid major version";
state->error_pos = (const char*) p;
@@ -3354,7 +3354,7 @@ static llparse_state_t llhttp__internal__run(
return s_n_llhttp__internal__n_req_http_start_1;
}
case kMatchMismatch: {
- goto s_n_llhttp__internal__n_error_60;
+ goto s_n_llhttp__internal__n_error_61;
}
}
/* UNREACHABLE */;
@@ -3378,7 +3378,7 @@ static llparse_state_t llhttp__internal__run(
return s_n_llhttp__internal__n_req_http_start_2;
}
case kMatchMismatch: {
- goto s_n_llhttp__internal__n_error_60;
+ goto s_n_llhttp__internal__n_error_61;
}
}
/* UNREACHABLE */;
@@ -3402,7 +3402,7 @@ static llparse_state_t llhttp__internal__run(
return s_n_llhttp__internal__n_req_http_start_3;
}
case kMatchMismatch: {
- goto s_n_llhttp__internal__n_error_60;
+ goto s_n_llhttp__internal__n_error_61;
}
}
/* UNREACHABLE */;
@@ -3431,7 +3431,7 @@ static llparse_state_t llhttp__internal__run(
goto s_n_llhttp__internal__n_req_http_start_3;
}
default: {
- goto s_n_llhttp__internal__n_error_60;
+ goto s_n_llhttp__internal__n_error_61;
}
}
/* UNREACHABLE */;
@@ -3522,7 +3522,7 @@ static llparse_state_t llhttp__internal__run(
goto s_n_llhttp__internal__n_url_fragment;
}
default: {
- goto s_n_llhttp__internal__n_error_61;
+ goto s_n_llhttp__internal__n_error_62;
}
}
/* UNREACHABLE */;
@@ -3583,7 +3583,7 @@ static llparse_state_t llhttp__internal__run(
goto s_n_llhttp__internal__n_span_end_stub_query_3;
}
default: {
- goto s_n_llhttp__internal__n_error_62;
+ goto s_n_llhttp__internal__n_error_63;
}
}
/* UNREACHABLE */;
@@ -3621,7 +3621,7 @@ static llparse_state_t llhttp__internal__run(
goto s_n_llhttp__internal__n_url_query;
}
default: {
- goto s_n_llhttp__internal__n_error_63;
+ goto s_n_llhttp__internal__n_error_64;
}
}
/* UNREACHABLE */;
@@ -3746,10 +3746,10 @@ static llparse_state_t llhttp__internal__run(
}
case 8: {
p++;
- goto s_n_llhttp__internal__n_error_64;
+ goto s_n_llhttp__internal__n_error_65;
}
default: {
- goto s_n_llhttp__internal__n_error_65;
+ goto s_n_llhttp__internal__n_error_66;
}
}
/* UNREACHABLE */;
@@ -3808,7 +3808,7 @@ static llparse_state_t llhttp__internal__run(
goto s_n_llhttp__internal__n_url_server_with_at;
}
default: {
- goto s_n_llhttp__internal__n_error_66;
+ goto s_n_llhttp__internal__n_error_67;
}
}
/* UNREACHABLE */;
@@ -3825,7 +3825,7 @@ static llparse_state_t llhttp__internal__run(
goto s_n_llhttp__internal__n_url_server;
}
default: {
- goto s_n_llhttp__internal__n_error_68;
+ goto s_n_llhttp__internal__n_error_69;
}
}
/* UNREACHABLE */;
@@ -3843,7 +3843,7 @@ static llparse_state_t llhttp__internal__run(
}
case 10: {
p++;
- goto s_n_llhttp__internal__n_error_67;
+ goto s_n_llhttp__internal__n_error_68;
}
case 12: {
p++;
@@ -3851,18 +3851,18 @@ static llparse_state_t llhttp__internal__run(
}
case 13: {
p++;
- goto s_n_llhttp__internal__n_error_67;
+ goto s_n_llhttp__internal__n_error_68;
}
case ' ': {
p++;
- goto s_n_llhttp__internal__n_error_67;
+ goto s_n_llhttp__internal__n_error_68;
}
case '/': {
p++;
goto s_n_llhttp__internal__n_url_schema_delim_1;
}
default: {
- goto s_n_llhttp__internal__n_error_68;
+ goto s_n_llhttp__internal__n_error_69;
}
}
/* UNREACHABLE */;
@@ -3908,7 +3908,7 @@ static llparse_state_t llhttp__internal__run(
}
case 2: {
p++;
- goto s_n_llhttp__internal__n_error_67;
+ goto s_n_llhttp__internal__n_error_68;
}
case 3: {
goto s_n_llhttp__internal__n_span_end_stub_schema;
@@ -3918,7 +3918,7 @@ static llparse_state_t llhttp__internal__run(
goto s_n_llhttp__internal__n_url_schema;
}
default: {
- goto s_n_llhttp__internal__n_error_69;
+ goto s_n_llhttp__internal__n_error_70;
}
}
/* UNREACHABLE */;
@@ -3954,7 +3954,7 @@ static llparse_state_t llhttp__internal__run(
}
case 2: {
p++;
- goto s_n_llhttp__internal__n_error_67;
+ goto s_n_llhttp__internal__n_error_68;
}
case 3: {
goto s_n_llhttp__internal__n_span_start_stub_path_2;
@@ -3963,7 +3963,7 @@ static llparse_state_t llhttp__internal__run(
goto s_n_llhttp__internal__n_url_schema;
}
default: {
- goto s_n_llhttp__internal__n_error_70;
+ goto s_n_llhttp__internal__n_error_71;
}
}
/* UNREACHABLE */;
@@ -4061,7 +4061,7 @@ static llparse_state_t llhttp__internal__run(
goto s_n_llhttp__internal__n_req_spaces_before_url;
}
default: {
- goto s_n_llhttp__internal__n_error_71;
+ goto s_n_llhttp__internal__n_error_72;
}
}
/* UNREACHABLE */;
@@ -4075,7 +4075,7 @@ static llparse_state_t llhttp__internal__run(
case 21:
goto s_n_llhttp__internal__n_pause_22;
default:
- goto s_n_llhttp__internal__n_error_88;
+ goto s_n_llhttp__internal__n_error_89;
}
/* UNREACHABLE */;
abort();
@@ -4092,7 +4092,7 @@ static llparse_state_t llhttp__internal__run(
goto s_n_llhttp__internal__n_invoke_store_method_1;
}
default: {
- goto s_n_llhttp__internal__n_error_89;
+ goto s_n_llhttp__internal__n_error_90;
}
}
/* UNREACHABLE */;
@@ -4117,7 +4117,7 @@ static llparse_state_t llhttp__internal__run(
return s_n_llhttp__internal__n_after_start_req_3;
}
case kMatchMismatch: {
- goto s_n_llhttp__internal__n_error_89;
+ goto s_n_llhttp__internal__n_error_90;
}
}
/* UNREACHABLE */;
@@ -4138,7 +4138,7 @@ static llparse_state_t llhttp__internal__run(
goto s_n_llhttp__internal__n_after_start_req_3;
}
default: {
- goto s_n_llhttp__internal__n_error_89;
+ goto s_n_llhttp__internal__n_error_90;
}
}
/* UNREACHABLE */;
@@ -4163,7 +4163,7 @@ static llparse_state_t llhttp__internal__run(
return s_n_llhttp__internal__n_after_start_req_4;
}
case kMatchMismatch: {
- goto s_n_llhttp__internal__n_error_89;
+ goto s_n_llhttp__internal__n_error_90;
}
}
/* UNREACHABLE */;
@@ -4188,7 +4188,7 @@ static llparse_state_t llhttp__internal__run(
return s_n_llhttp__internal__n_after_start_req_6;
}
case kMatchMismatch: {
- goto s_n_llhttp__internal__n_error_89;
+ goto s_n_llhttp__internal__n_error_90;
}
}
/* UNREACHABLE */;
@@ -4213,7 +4213,7 @@ static llparse_state_t llhttp__internal__run(
return s_n_llhttp__internal__n_after_start_req_8;
}
case kMatchMismatch: {
- goto s_n_llhttp__internal__n_error_89;
+ goto s_n_llhttp__internal__n_error_90;
}
}
/* UNREACHABLE */;
@@ -4231,7 +4231,7 @@ static llparse_state_t llhttp__internal__run(
goto s_n_llhttp__internal__n_invoke_store_method_1;
}
default: {
- goto s_n_llhttp__internal__n_error_89;
+ goto s_n_llhttp__internal__n_error_90;
}
}
/* UNREACHABLE */;
@@ -4252,7 +4252,7 @@ static llparse_state_t llhttp__internal__run(
goto s_n_llhttp__internal__n_after_start_req_9;
}
default: {
- goto s_n_llhttp__internal__n_error_89;
+ goto s_n_llhttp__internal__n_error_90;
}
}
/* UNREACHABLE */;
@@ -4273,7 +4273,7 @@ static llparse_state_t llhttp__internal__run(
goto s_n_llhttp__internal__n_after_start_req_7;
}
default: {
- goto s_n_llhttp__internal__n_error_89;
+ goto s_n_llhttp__internal__n_error_90;
}
}
/* UNREACHABLE */;
@@ -4298,7 +4298,7 @@ static llparse_state_t llhttp__internal__run(
return s_n_llhttp__internal__n_after_start_req_12;
}
case kMatchMismatch: {
- goto s_n_llhttp__internal__n_error_89;
+ goto s_n_llhttp__internal__n_error_90;
}
}
/* UNREACHABLE */;
@@ -4323,7 +4323,7 @@ static llparse_state_t llhttp__internal__run(
return s_n_llhttp__internal__n_after_start_req_13;
}
case kMatchMismatch: {
- goto s_n_llhttp__internal__n_error_89;
+ goto s_n_llhttp__internal__n_error_90;
}
}
/* UNREACHABLE */;
@@ -4344,7 +4344,7 @@ static llparse_state_t llhttp__internal__run(
goto s_n_llhttp__internal__n_after_start_req_13;
}
default: {
- goto s_n_llhttp__internal__n_error_89;
+ goto s_n_llhttp__internal__n_error_90;
}
}
/* UNREACHABLE */;
@@ -4361,7 +4361,7 @@ static llparse_state_t llhttp__internal__run(
goto s_n_llhttp__internal__n_after_start_req_11;
}
default: {
- goto s_n_llhttp__internal__n_error_89;
+ goto s_n_llhttp__internal__n_error_90;
}
}
/* UNREACHABLE */;
@@ -4386,7 +4386,7 @@ static llparse_state_t llhttp__internal__run(
return s_n_llhttp__internal__n_after_start_req_14;
}
case kMatchMismatch: {
- goto s_n_llhttp__internal__n_error_89;
+ goto s_n_llhttp__internal__n_error_90;
}
}
/* UNREACHABLE */;
@@ -4411,7 +4411,7 @@ static llparse_state_t llhttp__internal__run(
return s_n_llhttp__internal__n_after_start_req_17;
}
case kMatchMismatch: {
- goto s_n_llhttp__internal__n_error_89;
+ goto s_n_llhttp__internal__n_error_90;
}
}
/* UNREACHABLE */;
@@ -4453,7 +4453,7 @@ static llparse_state_t llhttp__internal__run(
return s_n_llhttp__internal__n_after_start_req_15;
}
case kMatchMismatch: {
- goto s_n_llhttp__internal__n_error_89;
+ goto s_n_llhttp__internal__n_error_90;
}
}
/* UNREACHABLE */;
@@ -4478,7 +4478,7 @@ static llparse_state_t llhttp__internal__run(
return s_n_llhttp__internal__n_after_start_req_18;
}
case kMatchMismatch: {
- goto s_n_llhttp__internal__n_error_89;
+ goto s_n_llhttp__internal__n_error_90;
}
}
/* UNREACHABLE */;
@@ -4503,7 +4503,7 @@ static llparse_state_t llhttp__internal__run(
return s_n_llhttp__internal__n_after_start_req_20;
}
case kMatchMismatch: {
- goto s_n_llhttp__internal__n_error_89;
+ goto s_n_llhttp__internal__n_error_90;
}
}
/* UNREACHABLE */;
@@ -4528,7 +4528,7 @@ static llparse_state_t llhttp__internal__run(
return s_n_llhttp__internal__n_after_start_req_21;
}
case kMatchMismatch: {
- goto s_n_llhttp__internal__n_error_89;
+ goto s_n_llhttp__internal__n_error_90;
}
}
/* UNREACHABLE */;
@@ -4549,7 +4549,7 @@ static llparse_state_t llhttp__internal__run(
goto s_n_llhttp__internal__n_after_start_req_21;
}
default: {
- goto s_n_llhttp__internal__n_error_89;
+ goto s_n_llhttp__internal__n_error_90;
}
}
/* UNREACHABLE */;
@@ -4574,7 +4574,7 @@ static llparse_state_t llhttp__internal__run(
return s_n_llhttp__internal__n_after_start_req_23;
}
case kMatchMismatch: {
- goto s_n_llhttp__internal__n_error_89;
+ goto s_n_llhttp__internal__n_error_90;
}
}
/* UNREACHABLE */;
@@ -4599,7 +4599,7 @@ static llparse_state_t llhttp__internal__run(
return s_n_llhttp__internal__n_after_start_req_24;
}
case kMatchMismatch: {
- goto s_n_llhttp__internal__n_error_89;
+ goto s_n_llhttp__internal__n_error_90;
}
}
/* UNREACHABLE */;
@@ -4624,7 +4624,7 @@ static llparse_state_t llhttp__internal__run(
return s_n_llhttp__internal__n_after_start_req_26;
}
case kMatchMismatch: {
- goto s_n_llhttp__internal__n_error_89;
+ goto s_n_llhttp__internal__n_error_90;
}
}
/* UNREACHABLE */;
@@ -4649,7 +4649,7 @@ static llparse_state_t llhttp__internal__run(
return s_n_llhttp__internal__n_after_start_req_28;
}
case kMatchMismatch: {
- goto s_n_llhttp__internal__n_error_89;
+ goto s_n_llhttp__internal__n_error_90;
}
}
/* UNREACHABLE */;
@@ -4667,7 +4667,7 @@ static llparse_state_t llhttp__internal__run(
goto s_n_llhttp__internal__n_invoke_store_method_1;
}
default: {
- goto s_n_llhttp__internal__n_error_89;
+ goto s_n_llhttp__internal__n_error_90;
}
}
/* UNREACHABLE */;
@@ -4688,7 +4688,7 @@ static llparse_state_t llhttp__internal__run(
goto s_n_llhttp__internal__n_after_start_req_29;
}
default: {
- goto s_n_llhttp__internal__n_error_89;
+ goto s_n_llhttp__internal__n_error_90;
}
}
/* UNREACHABLE */;
@@ -4709,7 +4709,7 @@ static llparse_state_t llhttp__internal__run(
goto s_n_llhttp__internal__n_after_start_req_27;
}
default: {
- goto s_n_llhttp__internal__n_error_89;
+ goto s_n_llhttp__internal__n_error_90;
}
}
/* UNREACHABLE */;
@@ -4734,7 +4734,7 @@ static llparse_state_t llhttp__internal__run(
return s_n_llhttp__internal__n_after_start_req_30;
}
case kMatchMismatch: {
- goto s_n_llhttp__internal__n_error_89;
+ goto s_n_llhttp__internal__n_error_90;
}
}
/* UNREACHABLE */;
@@ -4763,7 +4763,7 @@ static llparse_state_t llhttp__internal__run(
goto s_n_llhttp__internal__n_after_start_req_30;
}
default: {
- goto s_n_llhttp__internal__n_error_89;
+ goto s_n_llhttp__internal__n_error_90;
}
}
/* UNREACHABLE */;
@@ -4788,7 +4788,7 @@ static llparse_state_t llhttp__internal__run(
return s_n_llhttp__internal__n_after_start_req_31;
}
case kMatchMismatch: {
- goto s_n_llhttp__internal__n_error_89;
+ goto s_n_llhttp__internal__n_error_90;
}
}
/* UNREACHABLE */;
@@ -4813,7 +4813,7 @@ static llparse_state_t llhttp__internal__run(
return s_n_llhttp__internal__n_after_start_req_32;
}
case kMatchMismatch: {
- goto s_n_llhttp__internal__n_error_89;
+ goto s_n_llhttp__internal__n_error_90;
}
}
/* UNREACHABLE */;
@@ -4838,7 +4838,7 @@ static llparse_state_t llhttp__internal__run(
return s_n_llhttp__internal__n_after_start_req_35;
}
case kMatchMismatch: {
- goto s_n_llhttp__internal__n_error_89;
+ goto s_n_llhttp__internal__n_error_90;
}
}
/* UNREACHABLE */;
@@ -4863,7 +4863,7 @@ static llparse_state_t llhttp__internal__run(
return s_n_llhttp__internal__n_after_start_req_36;
}
case kMatchMismatch: {
- goto s_n_llhttp__internal__n_error_89;
+ goto s_n_llhttp__internal__n_error_90;
}
}
/* UNREACHABLE */;
@@ -4884,7 +4884,7 @@ static llparse_state_t llhttp__internal__run(
goto s_n_llhttp__internal__n_after_start_req_36;
}
default: {
- goto s_n_llhttp__internal__n_error_89;
+ goto s_n_llhttp__internal__n_error_90;
}
}
/* UNREACHABLE */;
@@ -4909,7 +4909,7 @@ static llparse_state_t llhttp__internal__run(
return s_n_llhttp__internal__n_after_start_req_37;
}
case kMatchMismatch: {
- goto s_n_llhttp__internal__n_error_89;
+ goto s_n_llhttp__internal__n_error_90;
}
}
/* UNREACHABLE */;
@@ -4934,7 +4934,7 @@ static llparse_state_t llhttp__internal__run(
return s_n_llhttp__internal__n_after_start_req_38;
}
case kMatchMismatch: {
- goto s_n_llhttp__internal__n_error_89;
+ goto s_n_llhttp__internal__n_error_90;
}
}
/* UNREACHABLE */;
@@ -4959,7 +4959,7 @@ static llparse_state_t llhttp__internal__run(
return s_n_llhttp__internal__n_after_start_req_42;
}
case kMatchMismatch: {
- goto s_n_llhttp__internal__n_error_89;
+ goto s_n_llhttp__internal__n_error_90;
}
}
/* UNREACHABLE */;
@@ -4984,7 +4984,7 @@ static llparse_state_t llhttp__internal__run(
return s_n_llhttp__internal__n_after_start_req_43;
}
case kMatchMismatch: {
- goto s_n_llhttp__internal__n_error_89;
+ goto s_n_llhttp__internal__n_error_90;
}
}
/* UNREACHABLE */;
@@ -5005,7 +5005,7 @@ static llparse_state_t llhttp__internal__run(
goto s_n_llhttp__internal__n_after_start_req_43;
}
default: {
- goto s_n_llhttp__internal__n_error_89;
+ goto s_n_llhttp__internal__n_error_90;
}
}
/* UNREACHABLE */;
@@ -5022,7 +5022,7 @@ static llparse_state_t llhttp__internal__run(
goto s_n_llhttp__internal__n_after_start_req_41;
}
default: {
- goto s_n_llhttp__internal__n_error_89;
+ goto s_n_llhttp__internal__n_error_90;
}
}
/* UNREACHABLE */;
@@ -5044,7 +5044,7 @@ static llparse_state_t llhttp__internal__run(
goto s_n_llhttp__internal__n_after_start_req_40;
}
default: {
- goto s_n_llhttp__internal__n_error_89;
+ goto s_n_llhttp__internal__n_error_90;
}
}
/* UNREACHABLE */;
@@ -5069,7 +5069,7 @@ static llparse_state_t llhttp__internal__run(
return s_n_llhttp__internal__n_after_start_req_45;
}
case kMatchMismatch: {
- goto s_n_llhttp__internal__n_error_89;
+ goto s_n_llhttp__internal__n_error_90;
}
}
/* UNREACHABLE */;
@@ -5091,7 +5091,7 @@ static llparse_state_t llhttp__internal__run(
goto s_n_llhttp__internal__n_invoke_store_method_1;
}
default: {
- goto s_n_llhttp__internal__n_error_89;
+ goto s_n_llhttp__internal__n_error_90;
}
}
/* UNREACHABLE */;
@@ -5124,7 +5124,7 @@ static llparse_state_t llhttp__internal__run(
goto s_n_llhttp__internal__n_after_start_req_44;
}
default: {
- goto s_n_llhttp__internal__n_error_89;
+ goto s_n_llhttp__internal__n_error_90;
}
}
/* UNREACHABLE */;
@@ -5149,7 +5149,7 @@ static llparse_state_t llhttp__internal__run(
return s_n_llhttp__internal__n_after_start_req_48;
}
case kMatchMismatch: {
- goto s_n_llhttp__internal__n_error_89;
+ goto s_n_llhttp__internal__n_error_90;
}
}
/* UNREACHABLE */;
@@ -5174,7 +5174,7 @@ static llparse_state_t llhttp__internal__run(
return s_n_llhttp__internal__n_after_start_req_49;
}
case kMatchMismatch: {
- goto s_n_llhttp__internal__n_error_89;
+ goto s_n_llhttp__internal__n_error_90;
}
}
/* UNREACHABLE */;
@@ -5199,7 +5199,7 @@ static llparse_state_t llhttp__internal__run(
return s_n_llhttp__internal__n_after_start_req_50;
}
case kMatchMismatch: {
- goto s_n_llhttp__internal__n_error_89;
+ goto s_n_llhttp__internal__n_error_90;
}
}
/* UNREACHABLE */;
@@ -5224,7 +5224,7 @@ static llparse_state_t llhttp__internal__run(
return s_n_llhttp__internal__n_after_start_req_51;
}
case kMatchMismatch: {
- goto s_n_llhttp__internal__n_error_89;
+ goto s_n_llhttp__internal__n_error_90;
}
}
/* UNREACHABLE */;
@@ -5253,7 +5253,7 @@ static llparse_state_t llhttp__internal__run(
goto s_n_llhttp__internal__n_after_start_req_51;
}
default: {
- goto s_n_llhttp__internal__n_error_89;
+ goto s_n_llhttp__internal__n_error_90;
}
}
/* UNREACHABLE */;
@@ -5270,7 +5270,7 @@ static llparse_state_t llhttp__internal__run(
goto s_n_llhttp__internal__n_after_start_req_47;
}
default: {
- goto s_n_llhttp__internal__n_error_89;
+ goto s_n_llhttp__internal__n_error_90;
}
}
/* UNREACHABLE */;
@@ -5295,7 +5295,7 @@ static llparse_state_t llhttp__internal__run(
return s_n_llhttp__internal__n_after_start_req_54;
}
case kMatchMismatch: {
- goto s_n_llhttp__internal__n_error_89;
+ goto s_n_llhttp__internal__n_error_90;
}
}
/* UNREACHABLE */;
@@ -5313,7 +5313,7 @@ static llparse_state_t llhttp__internal__run(
goto s_n_llhttp__internal__n_invoke_store_method_1;
}
default: {
- goto s_n_llhttp__internal__n_error_89;
+ goto s_n_llhttp__internal__n_error_90;
}
}
/* UNREACHABLE */;
@@ -5338,7 +5338,7 @@ static llparse_state_t llhttp__internal__run(
return s_n_llhttp__internal__n_after_start_req_57;
}
case kMatchMismatch: {
- goto s_n_llhttp__internal__n_error_89;
+ goto s_n_llhttp__internal__n_error_90;
}
}
/* UNREACHABLE */;
@@ -5359,7 +5359,7 @@ static llparse_state_t llhttp__internal__run(
goto s_n_llhttp__internal__n_after_start_req_57;
}
default: {
- goto s_n_llhttp__internal__n_error_89;
+ goto s_n_llhttp__internal__n_error_90;
}
}
/* UNREACHABLE */;
@@ -5380,7 +5380,7 @@ static llparse_state_t llhttp__internal__run(
goto s_n_llhttp__internal__n_after_start_req_55;
}
default: {
- goto s_n_llhttp__internal__n_error_89;
+ goto s_n_llhttp__internal__n_error_90;
}
}
/* UNREACHABLE */;
@@ -5405,7 +5405,7 @@ static llparse_state_t llhttp__internal__run(
return s_n_llhttp__internal__n_after_start_req_58;
}
case kMatchMismatch: {
- goto s_n_llhttp__internal__n_error_89;
+ goto s_n_llhttp__internal__n_error_90;
}
}
/* UNREACHABLE */;
@@ -5430,7 +5430,7 @@ static llparse_state_t llhttp__internal__run(
return s_n_llhttp__internal__n_after_start_req_59;
}
case kMatchMismatch: {
- goto s_n_llhttp__internal__n_error_89;
+ goto s_n_llhttp__internal__n_error_90;
}
}
/* UNREACHABLE */;
@@ -5455,7 +5455,7 @@ static llparse_state_t llhttp__internal__run(
goto s_n_llhttp__internal__n_after_start_req_59;
}
default: {
- goto s_n_llhttp__internal__n_error_89;
+ goto s_n_llhttp__internal__n_error_90;
}
}
/* UNREACHABLE */;
@@ -5480,7 +5480,7 @@ static llparse_state_t llhttp__internal__run(
return s_n_llhttp__internal__n_after_start_req_61;
}
case kMatchMismatch: {
- goto s_n_llhttp__internal__n_error_89;
+ goto s_n_llhttp__internal__n_error_90;
}
}
/* UNREACHABLE */;
@@ -5505,7 +5505,7 @@ static llparse_state_t llhttp__internal__run(
return s_n_llhttp__internal__n_after_start_req_62;
}
case kMatchMismatch: {
- goto s_n_llhttp__internal__n_error_89;
+ goto s_n_llhttp__internal__n_error_90;
}
}
/* UNREACHABLE */;
@@ -5526,7 +5526,7 @@ static llparse_state_t llhttp__internal__run(
goto s_n_llhttp__internal__n_after_start_req_62;
}
default: {
- goto s_n_llhttp__internal__n_error_89;
+ goto s_n_llhttp__internal__n_error_90;
}
}
/* UNREACHABLE */;
@@ -5551,7 +5551,7 @@ static llparse_state_t llhttp__internal__run(
return s_n_llhttp__internal__n_after_start_req_65;
}
case kMatchMismatch: {
- goto s_n_llhttp__internal__n_error_89;
+ goto s_n_llhttp__internal__n_error_90;
}
}
/* UNREACHABLE */;
@@ -5576,7 +5576,7 @@ static llparse_state_t llhttp__internal__run(
return s_n_llhttp__internal__n_after_start_req_67;
}
case kMatchMismatch: {
- goto s_n_llhttp__internal__n_error_89;
+ goto s_n_llhttp__internal__n_error_90;
}
}
/* UNREACHABLE */;
@@ -5601,7 +5601,7 @@ static llparse_state_t llhttp__internal__run(
return s_n_llhttp__internal__n_after_start_req_68;
}
case kMatchMismatch: {
- goto s_n_llhttp__internal__n_error_89;
+ goto s_n_llhttp__internal__n_error_90;
}
}
/* UNREACHABLE */;
@@ -5622,7 +5622,7 @@ static llparse_state_t llhttp__internal__run(
goto s_n_llhttp__internal__n_after_start_req_68;
}
default: {
- goto s_n_llhttp__internal__n_error_89;
+ goto s_n_llhttp__internal__n_error_90;
}
}
/* UNREACHABLE */;
@@ -5647,7 +5647,7 @@ static llparse_state_t llhttp__internal__run(
return s_n_llhttp__internal__n_after_start_req_69;
}
case kMatchMismatch: {
- goto s_n_llhttp__internal__n_error_89;
+ goto s_n_llhttp__internal__n_error_90;
}
}
/* UNREACHABLE */;
@@ -5672,7 +5672,7 @@ static llparse_state_t llhttp__internal__run(
goto s_n_llhttp__internal__n_after_start_req_69;
}
default: {
- goto s_n_llhttp__internal__n_error_89;
+ goto s_n_llhttp__internal__n_error_90;
}
}
/* UNREACHABLE */;
@@ -5689,7 +5689,7 @@ static llparse_state_t llhttp__internal__run(
goto s_n_llhttp__internal__n_after_start_req_64;
}
default: {
- goto s_n_llhttp__internal__n_error_89;
+ goto s_n_llhttp__internal__n_error_90;
}
}
/* UNREACHABLE */;
@@ -5766,7 +5766,7 @@ static llparse_state_t llhttp__internal__run(
goto s_n_llhttp__internal__n_after_start_req_63;
}
default: {
- goto s_n_llhttp__internal__n_error_89;
+ goto s_n_llhttp__internal__n_error_90;
}
}
/* UNREACHABLE */;
@@ -5791,7 +5791,7 @@ static llparse_state_t llhttp__internal__run(
case 21:
goto s_n_llhttp__internal__n_pause_20;
default:
- goto s_n_llhttp__internal__n_error_74;
+ goto s_n_llhttp__internal__n_error_75;
}
/* UNREACHABLE */;
abort();
@@ -5807,7 +5807,7 @@ static llparse_state_t llhttp__internal__run(
goto s_n_llhttp__internal__n_invoke_llhttp__on_status_complete;
}
default: {
- goto s_n_llhttp__internal__n_error_75;
+ goto s_n_llhttp__internal__n_error_76;
}
}
/* UNREACHABLE */;
@@ -5882,7 +5882,7 @@ static llparse_state_t llhttp__internal__run(
goto s_n_llhttp__internal__n_res_status_start;
}
default: {
- goto s_n_llhttp__internal__n_error_76;
+ goto s_n_llhttp__internal__n_error_77;
}
}
/* UNREACHABLE */;
@@ -5945,7 +5945,7 @@ static llparse_state_t llhttp__internal__run(
goto s_n_llhttp__internal__n_invoke_mul_add_status_code_2;
}
default: {
- goto s_n_llhttp__internal__n_error_78;
+ goto s_n_llhttp__internal__n_error_79;
}
}
/* UNREACHABLE */;
@@ -6008,7 +6008,7 @@ static llparse_state_t llhttp__internal__run(
goto s_n_llhttp__internal__n_invoke_mul_add_status_code_1;
}
default: {
- goto s_n_llhttp__internal__n_error_80;
+ goto s_n_llhttp__internal__n_error_81;
}
}
/* UNREACHABLE */;
@@ -6071,7 +6071,7 @@ static llparse_state_t llhttp__internal__run(
goto s_n_llhttp__internal__n_invoke_mul_add_status_code;
}
default: {
- goto s_n_llhttp__internal__n_error_82;
+ goto s_n_llhttp__internal__n_error_83;
}
}
/* UNREACHABLE */;
@@ -6088,7 +6088,7 @@ static llparse_state_t llhttp__internal__run(
goto s_n_llhttp__internal__n_invoke_update_status_code;
}
default: {
- goto s_n_llhttp__internal__n_error_83;
+ goto s_n_llhttp__internal__n_error_84;
}
}
/* UNREACHABLE */;
@@ -6102,13 +6102,13 @@ static llparse_state_t llhttp__internal__run(
case 21:
goto s_n_llhttp__internal__n_pause_21;
default:
- goto s_n_llhttp__internal__n_error_73;
+ goto s_n_llhttp__internal__n_error_74;
}
/* UNREACHABLE */;
abort();
}
- case s_n_llhttp__internal__n_error_72:
- s_n_llhttp__internal__n_error_72: {
+ case s_n_llhttp__internal__n_error_73:
+ s_n_llhttp__internal__n_error_73: {
state->error = 0x9;
state->reason = "Invalid HTTP version";
state->error_pos = (const char*) p;
@@ -6117,8 +6117,8 @@ static llparse_state_t llhttp__internal__run(
/* UNREACHABLE */;
abort();
}
- case s_n_llhttp__internal__n_error_84:
- s_n_llhttp__internal__n_error_84: {
+ case s_n_llhttp__internal__n_error_85:
+ s_n_llhttp__internal__n_error_85: {
state->error = 0x9;
state->reason = "Invalid minor version";
state->error_pos = (const char*) p;
@@ -6190,8 +6190,8 @@ static llparse_state_t llhttp__internal__run(
/* UNREACHABLE */;
abort();
}
- case s_n_llhttp__internal__n_error_85:
- s_n_llhttp__internal__n_error_85: {
+ case s_n_llhttp__internal__n_error_86:
+ s_n_llhttp__internal__n_error_86: {
state->error = 0x9;
state->reason = "Expected dot";
state->error_pos = (const char*) p;
@@ -6217,8 +6217,8 @@ static llparse_state_t llhttp__internal__run(
/* UNREACHABLE */;
abort();
}
- case s_n_llhttp__internal__n_error_86:
- s_n_llhttp__internal__n_error_86: {
+ case s_n_llhttp__internal__n_error_87:
+ s_n_llhttp__internal__n_error_87: {
state->error = 0x9;
state->reason = "Invalid major version";
state->error_pos = (const char*) p;
@@ -6319,7 +6319,7 @@ static llparse_state_t llhttp__internal__run(
return s_n_llhttp__internal__n_start_res;
}
case kMatchMismatch: {
- goto s_n_llhttp__internal__n_error_90;
+ goto s_n_llhttp__internal__n_error_91;
}
}
/* UNREACHABLE */;
@@ -6357,7 +6357,7 @@ static llparse_state_t llhttp__internal__run(
return s_n_llhttp__internal__n_req_or_res_method_2;
}
case kMatchMismatch: {
- goto s_n_llhttp__internal__n_error_87;
+ goto s_n_llhttp__internal__n_error_88;
}
}
/* UNREACHABLE */;
@@ -6390,7 +6390,7 @@ static llparse_state_t llhttp__internal__run(
return s_n_llhttp__internal__n_req_or_res_method_3;
}
case kMatchMismatch: {
- goto s_n_llhttp__internal__n_error_87;
+ goto s_n_llhttp__internal__n_error_88;
}
}
/* UNREACHABLE */;
@@ -6411,7 +6411,7 @@ static llparse_state_t llhttp__internal__run(
goto s_n_llhttp__internal__n_req_or_res_method_3;
}
default: {
- goto s_n_llhttp__internal__n_error_87;
+ goto s_n_llhttp__internal__n_error_88;
}
}
/* UNREACHABLE */;
@@ -6428,7 +6428,7 @@ static llparse_state_t llhttp__internal__run(
goto s_n_llhttp__internal__n_req_or_res_method_1;
}
default: {
- goto s_n_llhttp__internal__n_error_87;
+ goto s_n_llhttp__internal__n_error_88;
}
}
/* UNREACHABLE */;
@@ -6517,7 +6517,7 @@ static llparse_state_t llhttp__internal__run(
/* UNREACHABLE */;
abort();
}
- s_n_llhttp__internal__n_error_67: {
+ s_n_llhttp__internal__n_error_68: {
state->error = 0x7;
state->reason = "Invalid characters in url";
state->error_pos = (const char*) p;
@@ -7309,7 +7309,26 @@ static llparse_state_t llhttp__internal__run(
/* UNREACHABLE */;
abort();
}
- s_n_llhttp__internal__n_error_37: {
+ s_n_llhttp__internal__n_error_36: {
+ state->error = 0xa;
+ state->reason = "Invalid header value char";
+ state->error_pos = (const char*) p;
+ state->_current = (void*) (intptr_t) s_error;
+ return s_error;
+ /* UNREACHABLE */;
+ abort();
+ }
+ s_n_llhttp__internal__n_invoke_test_lenient_flags_5: {
+ switch (llhttp__internal__c_test_lenient_flags(state, p, endp)) {
+ case 1:
+ goto s_n_llhttp__internal__n_header_value_discard_ws;
+ default:
+ goto s_n_llhttp__internal__n_error_36;
+ }
+ /* UNREACHABLE */;
+ abort();
+ }
+ s_n_llhttp__internal__n_error_38: {
state->error = 0xb;
state->reason = "Empty Content-Length";
state->error_pos = (const char*) p;
@@ -7327,7 +7346,7 @@ static llparse_state_t llhttp__internal__run(
/* UNREACHABLE */;
abort();
}
- s_n_llhttp__internal__n_error_36: {
+ s_n_llhttp__internal__n_error_37: {
state->error = 0x1d;
state->reason = "`on_header_value_complete` callback error";
state->error_pos = (const char*) p;
@@ -7412,7 +7431,7 @@ static llparse_state_t llhttp__internal__run(
s_n_llhttp__internal__n_invoke_load_header_state: {
switch (llhttp__internal__c_load_header_state(state, p, endp)) {
case 2:
- goto s_n_llhttp__internal__n_error_37;
+ goto s_n_llhttp__internal__n_error_38;
default:
goto s_n_llhttp__internal__n_invoke_load_header_state_1;
}
@@ -7438,7 +7457,7 @@ static llparse_state_t llhttp__internal__run(
/* UNREACHABLE */;
abort();
}
- s_n_llhttp__internal__n_error_38: {
+ s_n_llhttp__internal__n_error_39: {
state->error = 0x2;
state->reason = "Expected LF after CR";
state->error_pos = (const char*) p;
@@ -7447,6 +7466,16 @@ static llparse_state_t llhttp__internal__run(
/* UNREACHABLE */;
abort();
}
+ s_n_llhttp__internal__n_invoke_test_lenient_flags_6: {
+ switch (llhttp__internal__c_test_lenient_flags(state, p, endp)) {
+ case 1:
+ goto s_n_llhttp__internal__n_header_value_discard_lws;
+ default:
+ goto s_n_llhttp__internal__n_error_39;
+ }
+ /* UNREACHABLE */;
+ abort();
+ }
s_n_llhttp__internal__n_invoke_update_header_state_1: {
switch (llhttp__internal__c_update_header_state_1(state, p, endp)) {
default:
@@ -7521,7 +7550,7 @@ static llparse_state_t llhttp__internal__run(
/* UNREACHABLE */;
abort();
}
- s_n_llhttp__internal__n_error_39: {
+ s_n_llhttp__internal__n_error_40: {
state->error = 0x3;
state->reason = "Missing expected LF after header value";
state->error_pos = (const char*) p;
@@ -7593,14 +7622,14 @@ static llparse_state_t llhttp__internal__run(
if (err != 0) {
state->error = err;
state->error_pos = (const char*) p;
- state->_current = (void*) (intptr_t) s_n_llhttp__internal__n_error_40;
+ state->_current = (void*) (intptr_t) s_n_llhttp__internal__n_error_41;
return s_error;
}
- goto s_n_llhttp__internal__n_error_40;
+ goto s_n_llhttp__internal__n_error_41;
/* UNREACHABLE */;
abort();
}
- s_n_llhttp__internal__n_invoke_test_lenient_flags_5: {
+ s_n_llhttp__internal__n_invoke_test_lenient_flags_7: {
switch (llhttp__internal__c_test_lenient_flags(state, p, endp)) {
case 1:
goto s_n_llhttp__internal__n_header_value_lenient;
@@ -7708,10 +7737,10 @@ static llparse_state_t llhttp__internal__run(
if (err != 0) {
state->error = err;
state->error_pos = (const char*) p;
- state->_current = (void*) (intptr_t) s_n_llhttp__internal__n_error_42;
+ state->_current = (void*) (intptr_t) s_n_llhttp__internal__n_error_43;
return s_error;
}
- goto s_n_llhttp__internal__n_error_42;
+ goto s_n_llhttp__internal__n_error_43;
/* UNREACHABLE */;
abort();
}
@@ -7743,14 +7772,14 @@ static llparse_state_t llhttp__internal__run(
if (err != 0) {
state->error = err;
state->error_pos = (const char*) p;
- state->_current = (void*) (intptr_t) s_n_llhttp__internal__n_error_43;
+ state->_current = (void*) (intptr_t) s_n_llhttp__internal__n_error_44;
return s_error;
}
- goto s_n_llhttp__internal__n_error_43;
+ goto s_n_llhttp__internal__n_error_44;
/* UNREACHABLE */;
abort();
}
- s_n_llhttp__internal__n_error_41: {
+ s_n_llhttp__internal__n_error_42: {
state->error = 0x4;
state->reason = "Duplicate Content-Length";
state->error_pos = (const char*) p;
@@ -7764,7 +7793,7 @@ static llparse_state_t llhttp__internal__run(
case 0:
goto s_n_llhttp__internal__n_header_value_content_length;
default:
- goto s_n_llhttp__internal__n_error_41;
+ goto s_n_llhttp__internal__n_error_42;
}
/* UNREACHABLE */;
abort();
@@ -7779,11 +7808,11 @@ static llparse_state_t llhttp__internal__run(
if (err != 0) {
state->error = err;
state->error_pos = (const char*) (p + 1);
- state->_current = (void*) (intptr_t) s_n_llhttp__internal__n_error_45;
+ state->_current = (void*) (intptr_t) s_n_llhttp__internal__n_error_46;
return s_error;
}
p++;
- goto s_n_llhttp__internal__n_error_45;
+ goto s_n_llhttp__internal__n_error_46;
/* UNREACHABLE */;
abort();
}
@@ -7805,16 +7834,16 @@ static llparse_state_t llhttp__internal__run(
if (err != 0) {
state->error = err;
state->error_pos = (const char*) (p + 1);
- state->_current = (void*) (intptr_t) s_n_llhttp__internal__n_error_44;
+ state->_current = (void*) (intptr_t) s_n_llhttp__internal__n_error_45;
return s_error;
}
p++;
- goto s_n_llhttp__internal__n_error_44;
+ goto s_n_llhttp__internal__n_error_45;
/* UNREACHABLE */;
abort();
}
- s_n_llhttp__internal__n_invoke_test_lenient_flags_6: {
- switch (llhttp__internal__c_test_lenient_flags_6(state, p, endp)) {
+ s_n_llhttp__internal__n_invoke_test_lenient_flags_8: {
+ switch (llhttp__internal__c_test_lenient_flags_8(state, p, endp)) {
case 0:
goto s_n_llhttp__internal__n_span_end_llhttp__on_header_value_7;
default:
@@ -7826,7 +7855,7 @@ static llparse_state_t llhttp__internal__run(
s_n_llhttp__internal__n_invoke_load_type_1: {
switch (llhttp__internal__c_load_type(state, p, endp)) {
case 1:
- goto s_n_llhttp__internal__n_invoke_test_lenient_flags_6;
+ goto s_n_llhttp__internal__n_invoke_test_lenient_flags_8;
default:
goto s_n_llhttp__internal__n_header_value_te_chunked;
}
@@ -7857,8 +7886,8 @@ static llparse_state_t llhttp__internal__run(
/* UNREACHABLE */;
abort();
}
- s_n_llhttp__internal__n_invoke_test_lenient_flags_7: {
- switch (llhttp__internal__c_test_lenient_flags_6(state, p, endp)) {
+ s_n_llhttp__internal__n_invoke_test_lenient_flags_9: {
+ switch (llhttp__internal__c_test_lenient_flags_8(state, p, endp)) {
case 0:
goto s_n_llhttp__internal__n_span_end_llhttp__on_header_value_8;
default:
@@ -7870,7 +7899,7 @@ static llparse_state_t llhttp__internal__run(
s_n_llhttp__internal__n_invoke_load_type_2: {
switch (llhttp__internal__c_load_type(state, p, endp)) {
case 1:
- goto s_n_llhttp__internal__n_invoke_test_lenient_flags_7;
+ goto s_n_llhttp__internal__n_invoke_test_lenient_flags_9;
default:
goto s_n_llhttp__internal__n_invoke_or_flags_17;
}
@@ -7973,7 +8002,7 @@ static llparse_state_t llhttp__internal__run(
/* UNREACHABLE */;
abort();
}
- s_n_llhttp__internal__n_error_46: {
+ s_n_llhttp__internal__n_error_47: {
state->error = 0xa;
state->reason = "Invalid header token";
state->error_pos = (const char*) p;
@@ -8088,7 +8117,7 @@ static llparse_state_t llhttp__internal__run(
/* UNREACHABLE */;
abort();
}
- s_n_llhttp__internal__n_error_47: {
+ s_n_llhttp__internal__n_error_48: {
state->error = 0x7;
state->reason = "Expected CRLF";
state->error_pos = (const char*) p;
@@ -8114,7 +8143,7 @@ static llparse_state_t llhttp__internal__run(
/* UNREACHABLE */;
abort();
}
- s_n_llhttp__internal__n_error_53: {
+ s_n_llhttp__internal__n_error_54: {
state->error = 0x17;
state->reason = "Pause on PRI/Upgrade";
state->error_pos = (const char*) p;
@@ -8123,7 +8152,7 @@ static llparse_state_t llhttp__internal__run(
/* UNREACHABLE */;
abort();
}
- s_n_llhttp__internal__n_error_54: {
+ s_n_llhttp__internal__n_error_55: {
state->error = 0x9;
state->reason = "Expected HTTP/2 Connection Preface";
state->error_pos = (const char*) p;
@@ -8132,7 +8161,7 @@ static llparse_state_t llhttp__internal__run(
/* UNREACHABLE */;
abort();
}
- s_n_llhttp__internal__n_error_52: {
+ s_n_llhttp__internal__n_error_53: {
state->error = 0x9;
state->reason = "Expected CRLF after version";
state->error_pos = (const char*) p;
@@ -8150,7 +8179,7 @@ static llparse_state_t llhttp__internal__run(
/* UNREACHABLE */;
abort();
}
- s_n_llhttp__internal__n_error_51: {
+ s_n_llhttp__internal__n_error_52: {
state->error = 0x21;
state->reason = "`on_version_complete` callback error";
state->error_pos = (const char*) p;
@@ -8186,10 +8215,10 @@ static llparse_state_t llhttp__internal__run(
if (err != 0) {
state->error = err;
state->error_pos = (const char*) p;
- state->_current = (void*) (intptr_t) s_n_llhttp__internal__n_error_50;
+ state->_current = (void*) (intptr_t) s_n_llhttp__internal__n_error_51;
return s_error;
}
- goto s_n_llhttp__internal__n_error_50;
+ goto s_n_llhttp__internal__n_error_51;
/* UNREACHABLE */;
abort();
}
@@ -8239,8 +8268,8 @@ static llparse_state_t llhttp__internal__run(
/* UNREACHABLE */;
abort();
}
- s_n_llhttp__internal__n_invoke_test_lenient_flags_8: {
- switch (llhttp__internal__c_test_lenient_flags_8(state, p, endp)) {
+ s_n_llhttp__internal__n_invoke_test_lenient_flags_10: {
+ switch (llhttp__internal__c_test_lenient_flags_10(state, p, endp)) {
case 1:
goto s_n_llhttp__internal__n_span_end_llhttp__on_version_1;
default:
@@ -8252,7 +8281,7 @@ static llparse_state_t llhttp__internal__run(
s_n_llhttp__internal__n_invoke_store_http_minor: {
switch (llhttp__internal__c_store_http_minor(state, p, endp, match)) {
default:
- goto s_n_llhttp__internal__n_invoke_test_lenient_flags_8;
+ goto s_n_llhttp__internal__n_invoke_test_lenient_flags_10;
}
/* UNREACHABLE */;
abort();
@@ -8267,10 +8296,10 @@ static llparse_state_t llhttp__internal__run(
if (err != 0) {
state->error = err;
state->error_pos = (const char*) p;
- state->_current = (void*) (intptr_t) s_n_llhttp__internal__n_error_55;
+ state->_current = (void*) (intptr_t) s_n_llhttp__internal__n_error_56;
return s_error;
}
- goto s_n_llhttp__internal__n_error_55;
+ goto s_n_llhttp__internal__n_error_56;
/* UNREACHABLE */;
abort();
}
@@ -8284,10 +8313,10 @@ static llparse_state_t llhttp__internal__run(
if (err != 0) {
state->error = err;
state->error_pos = (const char*) p;
- state->_current = (void*) (intptr_t) s_n_llhttp__internal__n_error_56;
+ state->_current = (void*) (intptr_t) s_n_llhttp__internal__n_error_57;
return s_error;
}
- goto s_n_llhttp__internal__n_error_56;
+ goto s_n_llhttp__internal__n_error_57;
/* UNREACHABLE */;
abort();
}
@@ -8309,14 +8338,14 @@ static llparse_state_t llhttp__internal__run(
if (err != 0) {
state->error = err;
state->error_pos = (const char*) p;
- state->_current = (void*) (intptr_t) s_n_llhttp__internal__n_error_57;
+ state->_current = (void*) (intptr_t) s_n_llhttp__internal__n_error_58;
return s_error;
}
- goto s_n_llhttp__internal__n_error_57;
+ goto s_n_llhttp__internal__n_error_58;
/* UNREACHABLE */;
abort();
}
- s_n_llhttp__internal__n_error_49: {
+ s_n_llhttp__internal__n_error_50: {
state->error = 0x8;
state->reason = "Invalid method for HTTP/x.x request";
state->error_pos = (const char*) p;
@@ -8398,12 +8427,12 @@ static llparse_state_t llhttp__internal__run(
case 34:
goto s_n_llhttp__internal__n_span_start_llhttp__on_version;
default:
- goto s_n_llhttp__internal__n_error_49;
+ goto s_n_llhttp__internal__n_error_50;
}
/* UNREACHABLE */;
abort();
}
- s_n_llhttp__internal__n_error_60: {
+ s_n_llhttp__internal__n_error_61: {
state->error = 0x8;
state->reason = "Expected HTTP/";
state->error_pos = (const char*) p;
@@ -8412,7 +8441,7 @@ static llparse_state_t llhttp__internal__run(
/* UNREACHABLE */;
abort();
}
- s_n_llhttp__internal__n_error_58: {
+ s_n_llhttp__internal__n_error_59: {
state->error = 0x8;
state->reason = "Expected SOURCE method for ICE/x.x request";
state->error_pos = (const char*) p;
@@ -8426,12 +8455,12 @@ static llparse_state_t llhttp__internal__run(
case 33:
goto s_n_llhttp__internal__n_span_start_llhttp__on_version;
default:
- goto s_n_llhttp__internal__n_error_58;
+ goto s_n_llhttp__internal__n_error_59;
}
/* UNREACHABLE */;
abort();
}
- s_n_llhttp__internal__n_error_59: {
+ s_n_llhttp__internal__n_error_60: {
state->error = 0x8;
state->reason = "Invalid method for RTSP/x.x request";
state->error_pos = (const char*) p;
@@ -8471,7 +8500,7 @@ static llparse_state_t llhttp__internal__run(
case 45:
goto s_n_llhttp__internal__n_span_start_llhttp__on_version;
default:
- goto s_n_llhttp__internal__n_error_59;
+ goto s_n_llhttp__internal__n_error_60;
}
/* UNREACHABLE */;
abort();
@@ -8485,7 +8514,7 @@ static llparse_state_t llhttp__internal__run(
/* UNREACHABLE */;
abort();
}
- s_n_llhttp__internal__n_error_48: {
+ s_n_llhttp__internal__n_error_49: {
state->error = 0x1a;
state->reason = "`on_url_complete` callback error";
state->error_pos = (const char*) p;
@@ -8501,7 +8530,7 @@ static llparse_state_t llhttp__internal__run(
case 21:
goto s_n_llhttp__internal__n_pause_18;
default:
- goto s_n_llhttp__internal__n_error_48;
+ goto s_n_llhttp__internal__n_error_49;
}
/* UNREACHABLE */;
abort();
@@ -8574,7 +8603,7 @@ static llparse_state_t llhttp__internal__run(
/* UNREACHABLE */;
abort();
}
- s_n_llhttp__internal__n_error_61: {
+ s_n_llhttp__internal__n_error_62: {
state->error = 0x7;
state->reason = "Invalid char in url fragment start";
state->error_pos = (const char*) p;
@@ -8634,7 +8663,7 @@ static llparse_state_t llhttp__internal__run(
/* UNREACHABLE */;
abort();
}
- s_n_llhttp__internal__n_error_62: {
+ s_n_llhttp__internal__n_error_63: {
state->error = 0x7;
state->reason = "Invalid char in url query";
state->error_pos = (const char*) p;
@@ -8643,7 +8672,7 @@ static llparse_state_t llhttp__internal__run(
/* UNREACHABLE */;
abort();
}
- s_n_llhttp__internal__n_error_63: {
+ s_n_llhttp__internal__n_error_64: {
state->error = 0x7;
state->reason = "Invalid char in url path";
state->error_pos = (const char*) p;
@@ -8754,7 +8783,7 @@ static llparse_state_t llhttp__internal__run(
/* UNREACHABLE */;
abort();
}
- s_n_llhttp__internal__n_error_64: {
+ s_n_llhttp__internal__n_error_65: {
state->error = 0x7;
state->reason = "Double @ in url";
state->error_pos = (const char*) p;
@@ -8763,7 +8792,7 @@ static llparse_state_t llhttp__internal__run(
/* UNREACHABLE */;
abort();
}
- s_n_llhttp__internal__n_error_65: {
+ s_n_llhttp__internal__n_error_66: {
state->error = 0x7;
state->reason = "Unexpected char in url server";
state->error_pos = (const char*) p;
@@ -8772,7 +8801,7 @@ static llparse_state_t llhttp__internal__run(
/* UNREACHABLE */;
abort();
}
- s_n_llhttp__internal__n_error_66: {
+ s_n_llhttp__internal__n_error_67: {
state->error = 0x7;
state->reason = "Unexpected char in url server";
state->error_pos = (const char*) p;
@@ -8781,7 +8810,7 @@ static llparse_state_t llhttp__internal__run(
/* UNREACHABLE */;
abort();
}
- s_n_llhttp__internal__n_error_68: {
+ s_n_llhttp__internal__n_error_69: {
state->error = 0x7;
state->reason = "Unexpected char in url schema";
state->error_pos = (const char*) p;
@@ -8790,7 +8819,7 @@ static llparse_state_t llhttp__internal__run(
/* UNREACHABLE */;
abort();
}
- s_n_llhttp__internal__n_error_69: {
+ s_n_llhttp__internal__n_error_70: {
state->error = 0x7;
state->reason = "Unexpected char in url schema";
state->error_pos = (const char*) p;
@@ -8799,7 +8828,7 @@ static llparse_state_t llhttp__internal__run(
/* UNREACHABLE */;
abort();
}
- s_n_llhttp__internal__n_error_70: {
+ s_n_llhttp__internal__n_error_71: {
state->error = 0x7;
state->reason = "Unexpected start char in url";
state->error_pos = (const char*) p;
@@ -8818,7 +8847,7 @@ static llparse_state_t llhttp__internal__run(
/* UNREACHABLE */;
abort();
}
- s_n_llhttp__internal__n_error_71: {
+ s_n_llhttp__internal__n_error_72: {
state->error = 0x6;
state->reason = "Expected space after method";
state->error_pos = (const char*) p;
@@ -8836,7 +8865,7 @@ static llparse_state_t llhttp__internal__run(
/* UNREACHABLE */;
abort();
}
- s_n_llhttp__internal__n_error_88: {
+ s_n_llhttp__internal__n_error_89: {
state->error = 0x20;
state->reason = "`on_method_complete` callback error";
state->error_pos = (const char*) p;
@@ -8870,7 +8899,7 @@ static llparse_state_t llhttp__internal__run(
/* UNREACHABLE */;
abort();
}
- s_n_llhttp__internal__n_error_89: {
+ s_n_llhttp__internal__n_error_90: {
state->error = 0x6;
state->reason = "Invalid method encountered";
state->error_pos = (const char*) p;
@@ -8879,7 +8908,7 @@ static llparse_state_t llhttp__internal__run(
/* UNREACHABLE */;
abort();
}
- s_n_llhttp__internal__n_error_81: {
+ s_n_llhttp__internal__n_error_82: {
state->error = 0xd;
state->reason = "Invalid status code";
state->error_pos = (const char*) p;
@@ -8888,7 +8917,7 @@ static llparse_state_t llhttp__internal__run(
/* UNREACHABLE */;
abort();
}
- s_n_llhttp__internal__n_error_79: {
+ s_n_llhttp__internal__n_error_80: {
state->error = 0xd;
state->reason = "Invalid status code";
state->error_pos = (const char*) p;
@@ -8897,7 +8926,7 @@ static llparse_state_t llhttp__internal__run(
/* UNREACHABLE */;
abort();
}
- s_n_llhttp__internal__n_error_77: {
+ s_n_llhttp__internal__n_error_78: {
state->error = 0xd;
state->reason = "Invalid status code";
state->error_pos = (const char*) p;
@@ -8915,7 +8944,7 @@ static llparse_state_t llhttp__internal__run(
/* UNREACHABLE */;
abort();
}
- s_n_llhttp__internal__n_error_74: {
+ s_n_llhttp__internal__n_error_75: {
state->error = 0x1b;
state->reason = "`on_status_complete` callback error";
state->error_pos = (const char*) p;
@@ -8924,7 +8953,7 @@ static llparse_state_t llhttp__internal__run(
/* UNREACHABLE */;
abort();
}
- s_n_llhttp__internal__n_error_75: {
+ s_n_llhttp__internal__n_error_76: {
state->error = 0x2;
state->reason = "Expected LF after CR";
state->error_pos = (const char*) p;
@@ -8969,7 +8998,7 @@ static llparse_state_t llhttp__internal__run(
/* UNREACHABLE */;
abort();
}
- s_n_llhttp__internal__n_error_76: {
+ s_n_llhttp__internal__n_error_77: {
state->error = 0xd;
state->reason = "Invalid response status";
state->error_pos = (const char*) p;
@@ -8981,14 +9010,14 @@ static llparse_state_t llhttp__internal__run(
s_n_llhttp__internal__n_invoke_mul_add_status_code_2: {
switch (llhttp__internal__c_mul_add_status_code(state, p, endp, match)) {
case 1:
- goto s_n_llhttp__internal__n_error_77;
+ goto s_n_llhttp__internal__n_error_78;
default:
goto s_n_llhttp__internal__n_res_status_code_otherwise;
}
/* UNREACHABLE */;
abort();
}
- s_n_llhttp__internal__n_error_78: {
+ s_n_llhttp__internal__n_error_79: {
state->error = 0xd;
state->reason = "Invalid status code";
state->error_pos = (const char*) p;
@@ -9000,14 +9029,14 @@ static llparse_state_t llhttp__internal__run(
s_n_llhttp__internal__n_invoke_mul_add_status_code_1: {
switch (llhttp__internal__c_mul_add_status_code(state, p, endp, match)) {
case 1:
- goto s_n_llhttp__internal__n_error_79;
+ goto s_n_llhttp__internal__n_error_80;
default:
goto s_n_llhttp__internal__n_res_status_code_digit_3;
}
/* UNREACHABLE */;
abort();
}
- s_n_llhttp__internal__n_error_80: {
+ s_n_llhttp__internal__n_error_81: {
state->error = 0xd;
state->reason = "Invalid status code";
state->error_pos = (const char*) p;
@@ -9019,14 +9048,14 @@ static llparse_state_t llhttp__internal__run(
s_n_llhttp__internal__n_invoke_mul_add_status_code: {
switch (llhttp__internal__c_mul_add_status_code(state, p, endp, match)) {
case 1:
- goto s_n_llhttp__internal__n_error_81;
+ goto s_n_llhttp__internal__n_error_82;
default:
goto s_n_llhttp__internal__n_res_status_code_digit_2;
}
/* UNREACHABLE */;
abort();
}
- s_n_llhttp__internal__n_error_82: {
+ s_n_llhttp__internal__n_error_83: {
state->error = 0xd;
state->reason = "Invalid status code";
state->error_pos = (const char*) p;
@@ -9043,7 +9072,7 @@ static llparse_state_t llhttp__internal__run(
/* UNREACHABLE */;
abort();
}
- s_n_llhttp__internal__n_error_83: {
+ s_n_llhttp__internal__n_error_84: {
state->error = 0x9;
state->reason = "Expected space after version";
state->error_pos = (const char*) p;
@@ -9061,7 +9090,7 @@ static llparse_state_t llhttp__internal__run(
/* UNREACHABLE */;
abort();
}
- s_n_llhttp__internal__n_error_73: {
+ s_n_llhttp__internal__n_error_74: {
state->error = 0x21;
state->reason = "`on_version_complete` callback error";
state->error_pos = (const char*) p;
@@ -9097,10 +9126,10 @@ static llparse_state_t llhttp__internal__run(
if (err != 0) {
state->error = err;
state->error_pos = (const char*) p;
- state->_current = (void*) (intptr_t) s_n_llhttp__internal__n_error_72;
+ state->_current = (void*) (intptr_t) s_n_llhttp__internal__n_error_73;
return s_error;
}
- goto s_n_llhttp__internal__n_error_72;
+ goto s_n_llhttp__internal__n_error_73;
/* UNREACHABLE */;
abort();
}
@@ -9150,8 +9179,8 @@ static llparse_state_t llhttp__internal__run(
/* UNREACHABLE */;
abort();
}
- s_n_llhttp__internal__n_invoke_test_lenient_flags_9: {
- switch (llhttp__internal__c_test_lenient_flags_8(state, p, endp)) {
+ s_n_llhttp__internal__n_invoke_test_lenient_flags_11: {
+ switch (llhttp__internal__c_test_lenient_flags_10(state, p, endp)) {
case 1:
goto s_n_llhttp__internal__n_span_end_llhttp__on_version_6;
default:
@@ -9163,7 +9192,7 @@ static llparse_state_t llhttp__internal__run(
s_n_llhttp__internal__n_invoke_store_http_minor_1: {
switch (llhttp__internal__c_store_http_minor(state, p, endp, match)) {
default:
- goto s_n_llhttp__internal__n_invoke_test_lenient_flags_9;
+ goto s_n_llhttp__internal__n_invoke_test_lenient_flags_11;
}
/* UNREACHABLE */;
abort();
@@ -9178,10 +9207,10 @@ static llparse_state_t llhttp__internal__run(
if (err != 0) {
state->error = err;
state->error_pos = (const char*) p;
- state->_current = (void*) (intptr_t) s_n_llhttp__internal__n_error_84;
+ state->_current = (void*) (intptr_t) s_n_llhttp__internal__n_error_85;
return s_error;
}
- goto s_n_llhttp__internal__n_error_84;
+ goto s_n_llhttp__internal__n_error_85;
/* UNREACHABLE */;
abort();
}
@@ -9195,10 +9224,10 @@ static llparse_state_t llhttp__internal__run(
if (err != 0) {
state->error = err;
state->error_pos = (const char*) p;
- state->_current = (void*) (intptr_t) s_n_llhttp__internal__n_error_85;
+ state->_current = (void*) (intptr_t) s_n_llhttp__internal__n_error_86;
return s_error;
}
- goto s_n_llhttp__internal__n_error_85;
+ goto s_n_llhttp__internal__n_error_86;
/* UNREACHABLE */;
abort();
}
@@ -9220,14 +9249,14 @@ static llparse_state_t llhttp__internal__run(
if (err != 0) {
state->error = err;
state->error_pos = (const char*) p;
- state->_current = (void*) (intptr_t) s_n_llhttp__internal__n_error_86;
+ state->_current = (void*) (intptr_t) s_n_llhttp__internal__n_error_87;
return s_error;
}
- goto s_n_llhttp__internal__n_error_86;
+ goto s_n_llhttp__internal__n_error_87;
/* UNREACHABLE */;
abort();
}
- s_n_llhttp__internal__n_error_90: {
+ s_n_llhttp__internal__n_error_91: {
state->error = 0x8;
state->reason = "Expected HTTP/";
state->error_pos = (const char*) p;
@@ -9287,7 +9316,7 @@ static llparse_state_t llhttp__internal__run(
/* UNREACHABLE */;
abort();
}
- s_n_llhttp__internal__n_error_87: {
+ s_n_llhttp__internal__n_error_88: {
state->error = 0x8;
state->reason = "Invalid word encountered";
state->error_pos = (const char*) p;
@@ -9360,7 +9389,7 @@ static llparse_state_t llhttp__internal__run(
/* UNREACHABLE */;
abort();
}
- s_n_llhttp__internal__n_error_91: {
+ s_n_llhttp__internal__n_error_92: {
state->error = 0x1f;
state->reason = "`on_reset` callback error";
state->error_pos = (const char*) p;
@@ -9376,7 +9405,7 @@ static llparse_state_t llhttp__internal__run(
case 21:
goto s_n_llhttp__internal__n_pause_24;
default:
- goto s_n_llhttp__internal__n_error_91;
+ goto s_n_llhttp__internal__n_error_92;
}
/* UNREACHABLE */;
abort();
@@ -9809,7 +9838,7 @@ enum llparse_state_e {
s_n_llhttp__internal__n_header_value_lws,
s_n_llhttp__internal__n_header_value_almost_done,
s_n_llhttp__internal__n_header_value_lenient,
- s_n_llhttp__internal__n_error_34,
+ s_n_llhttp__internal__n_error_36,
s_n_llhttp__internal__n_header_value_otherwise,
s_n_llhttp__internal__n_header_value_connection_token,
s_n_llhttp__internal__n_header_value_connection_ws,
@@ -9817,12 +9846,12 @@ enum llparse_state_e {
s_n_llhttp__internal__n_header_value_connection_2,
s_n_llhttp__internal__n_header_value_connection_3,
s_n_llhttp__internal__n_header_value_connection,
- s_n_llhttp__internal__n_error_36,
- s_n_llhttp__internal__n_error_37,
+ s_n_llhttp__internal__n_error_38,
+ s_n_llhttp__internal__n_error_39,
s_n_llhttp__internal__n_header_value_content_length_ws,
s_n_llhttp__internal__n_header_value_content_length,
- s_n_llhttp__internal__n_error_39,
- s_n_llhttp__internal__n_error_38,
+ s_n_llhttp__internal__n_error_41,
+ s_n_llhttp__internal__n_error_40,
s_n_llhttp__internal__n_header_value_te_token_ows,
s_n_llhttp__internal__n_header_value,
s_n_llhttp__internal__n_header_value_te_token,
@@ -9852,12 +9881,12 @@ enum llparse_state_e {
s_n_llhttp__internal__n_req_http_complete,
s_n_llhttp__internal__n_invoke_load_method_1,
s_n_llhttp__internal__n_invoke_llhttp__on_version_complete,
- s_n_llhttp__internal__n_error_44,
- s_n_llhttp__internal__n_error_49,
+ s_n_llhttp__internal__n_error_46,
+ s_n_llhttp__internal__n_error_51,
s_n_llhttp__internal__n_req_http_minor,
- s_n_llhttp__internal__n_error_50,
+ s_n_llhttp__internal__n_error_52,
s_n_llhttp__internal__n_req_http_dot,
- s_n_llhttp__internal__n_error_51,
+ s_n_llhttp__internal__n_error_53,
s_n_llhttp__internal__n_req_http_major,
s_n_llhttp__internal__n_span_start_llhttp__on_version,
s_n_llhttp__internal__n_req_http_start_1,
@@ -9967,12 +9996,12 @@ enum llparse_state_e {
s_n_llhttp__internal__n_res_status_code_digit_1,
s_n_llhttp__internal__n_res_after_version,
s_n_llhttp__internal__n_invoke_llhttp__on_version_complete_1,
- s_n_llhttp__internal__n_error_66,
- s_n_llhttp__internal__n_error_77,
+ s_n_llhttp__internal__n_error_68,
+ s_n_llhttp__internal__n_error_79,
s_n_llhttp__internal__n_res_http_minor,
- s_n_llhttp__internal__n_error_78,
+ s_n_llhttp__internal__n_error_80,
s_n_llhttp__internal__n_res_http_dot,
- s_n_llhttp__internal__n_error_79,
+ s_n_llhttp__internal__n_error_81,
s_n_llhttp__internal__n_res_http_major,
s_n_llhttp__internal__n_span_start_llhttp__on_version_1,
s_n_llhttp__internal__n_start_res,
@@ -10407,7 +10436,7 @@ int llhttp__internal__c_test_flags_3(
return (state->flags & 8) == 8;
}
-int llhttp__internal__c_test_lenient_flags_6(
+int llhttp__internal__c_test_lenient_flags_8(
llhttp__internal_t* state,
const unsigned char* p,
const unsigned char* endp) {
@@ -10471,7 +10500,7 @@ int llhttp__internal__c_store_http_minor(
return 0;
}
-int llhttp__internal__c_test_lenient_flags_8(
+int llhttp__internal__c_test_lenient_flags_10(
llhttp__internal_t* state,
const unsigned char* p,
const unsigned char* endp) {
@@ -11364,7 +11393,7 @@ static llparse_state_t llhttp__internal__run(
case 21:
goto s_n_llhttp__internal__n_pause_14;
default:
- goto s_n_llhttp__internal__n_error_31;
+ goto s_n_llhttp__internal__n_error_32;
}
/* UNREACHABLE */;
abort();
@@ -11388,11 +11417,11 @@ static llparse_state_t llhttp__internal__run(
switch (*p) {
case 9: {
p++;
- goto s_n_llhttp__internal__n_header_value_discard_ws;
+ goto s_n_llhttp__internal__n_invoke_test_lenient_flags_5;
}
case ' ': {
p++;
- goto s_n_llhttp__internal__n_header_value_discard_ws;
+ goto s_n_llhttp__internal__n_invoke_test_lenient_flags_5;
}
default: {
goto s_n_llhttp__internal__n_invoke_load_header_state;
@@ -11406,8 +11435,15 @@ static llparse_state_t llhttp__internal__run(
if (p == endp) {
return s_n_llhttp__internal__n_header_value_discard_ws_almost_done;
}
- p++;
- goto s_n_llhttp__internal__n_header_value_discard_lws;
+ switch (*p) {
+ case 10: {
+ p++;
+ goto s_n_llhttp__internal__n_header_value_discard_lws;
+ }
+ default: {
+ goto s_n_llhttp__internal__n_invoke_test_lenient_flags_6;
+ }
+ }
/* UNREACHABLE */;
abort();
}
@@ -11441,7 +11477,7 @@ static llparse_state_t llhttp__internal__run(
goto s_n_llhttp__internal__n_header_value_lws;
}
default: {
- goto s_n_llhttp__internal__n_error_33;
+ goto s_n_llhttp__internal__n_error_35;
}
}
/* UNREACHABLE */;
@@ -11467,8 +11503,8 @@ static llparse_state_t llhttp__internal__run(
/* UNREACHABLE */;
abort();
}
- case s_n_llhttp__internal__n_error_34:
- s_n_llhttp__internal__n_error_34: {
+ case s_n_llhttp__internal__n_error_36:
+ s_n_llhttp__internal__n_error_36: {
state->error = 0xa;
state->reason = "Invalid header value char";
state->error_pos = (const char*) p;
@@ -11487,7 +11523,7 @@ static llparse_state_t llhttp__internal__run(
goto s_n_llhttp__internal__n_span_end_llhttp__on_header_value_1;
}
default: {
- goto s_n_llhttp__internal__n_invoke_test_lenient_flags_5;
+ goto s_n_llhttp__internal__n_invoke_test_lenient_flags_7;
}
}
/* UNREACHABLE */;
@@ -11664,8 +11700,8 @@ static llparse_state_t llhttp__internal__run(
/* UNREACHABLE */;
abort();
}
- case s_n_llhttp__internal__n_error_36:
- s_n_llhttp__internal__n_error_36: {
+ case s_n_llhttp__internal__n_error_38:
+ s_n_llhttp__internal__n_error_38: {
state->error = 0xb;
state->reason = "Content-Length overflow";
state->error_pos = (const char*) p;
@@ -11674,8 +11710,8 @@ static llparse_state_t llhttp__internal__run(
/* UNREACHABLE */;
abort();
}
- case s_n_llhttp__internal__n_error_37:
- s_n_llhttp__internal__n_error_37: {
+ case s_n_llhttp__internal__n_error_39:
+ s_n_llhttp__internal__n_error_39: {
state->error = 0xb;
state->reason = "Invalid character in Content-Length";
state->error_pos = (const char*) p;
@@ -11770,8 +11806,8 @@ static llparse_state_t llhttp__internal__run(
/* UNREACHABLE */;
abort();
}
- case s_n_llhttp__internal__n_error_39:
- s_n_llhttp__internal__n_error_39: {
+ case s_n_llhttp__internal__n_error_41:
+ s_n_llhttp__internal__n_error_41: {
state->error = 0xf;
state->reason = "Invalid `Transfer-Encoding` header value";
state->error_pos = (const char*) p;
@@ -11780,8 +11816,8 @@ static llparse_state_t llhttp__internal__run(
/* UNREACHABLE */;
abort();
}
- case s_n_llhttp__internal__n_error_38:
- s_n_llhttp__internal__n_error_38: {
+ case s_n_llhttp__internal__n_error_40:
+ s_n_llhttp__internal__n_error_40: {
state->error = 0xf;
state->reason = "Invalid `Transfer-Encoding` header value";
state->error_pos = (const char*) p;
@@ -12022,7 +12058,7 @@ static llparse_state_t llhttp__internal__run(
goto s_n_llhttp__internal__n_span_end_llhttp__on_header_field_2;
}
default: {
- goto s_n_llhttp__internal__n_error_40;
+ goto s_n_llhttp__internal__n_error_42;
}
}
/* UNREACHABLE */;
@@ -12393,7 +12429,7 @@ static llparse_state_t llhttp__internal__run(
return s_n_llhttp__internal__n_url_skip_lf_to_http09;
}
case kMatchMismatch: {
- goto s_n_llhttp__internal__n_error_41;
+ goto s_n_llhttp__internal__n_error_43;
}
}
/* UNREACHABLE */;
@@ -12411,13 +12447,13 @@ static llparse_state_t llhttp__internal__run(
switch (match_seq.status) {
case kMatchComplete: {
p++;
- goto s_n_llhttp__internal__n_error_47;
+ goto s_n_llhttp__internal__n_error_49;
}
case kMatchPause: {
return s_n_llhttp__internal__n_req_pri_upgrade;
}
case kMatchMismatch: {
- goto s_n_llhttp__internal__n_error_48;
+ goto s_n_llhttp__internal__n_error_50;
}
}
/* UNREACHABLE */;
@@ -12434,7 +12470,7 @@ static llparse_state_t llhttp__internal__run(
goto s_n_llhttp__internal__n_headers_start;
}
default: {
- goto s_n_llhttp__internal__n_error_46;
+ goto s_n_llhttp__internal__n_error_48;
}
}
/* UNREACHABLE */;
@@ -12455,7 +12491,7 @@ static llparse_state_t llhttp__internal__run(
goto s_n_llhttp__internal__n_req_http_complete_1;
}
default: {
- goto s_n_llhttp__internal__n_error_46;
+ goto s_n_llhttp__internal__n_error_48;
}
}
/* UNREACHABLE */;
@@ -12480,13 +12516,13 @@ static llparse_state_t llhttp__internal__run(
case 21:
goto s_n_llhttp__internal__n_pause_17;
default:
- goto s_n_llhttp__internal__n_error_45;
+ goto s_n_llhttp__internal__n_error_47;
}
/* UNREACHABLE */;
abort();
}
- case s_n_llhttp__internal__n_error_44:
- s_n_llhttp__internal__n_error_44: {
+ case s_n_llhttp__internal__n_error_46:
+ s_n_llhttp__internal__n_error_46: {
state->error = 0x9;
state->reason = "Invalid HTTP version";
state->error_pos = (const char*) p;
@@ -12495,8 +12531,8 @@ static llparse_state_t llhttp__internal__run(
/* UNREACHABLE */;
abort();
}
- case s_n_llhttp__internal__n_error_49:
- s_n_llhttp__internal__n_error_49: {
+ case s_n_llhttp__internal__n_error_51:
+ s_n_llhttp__internal__n_error_51: {
state->error = 0x9;
state->reason = "Invalid minor version";
state->error_pos = (const char*) p;
@@ -12568,8 +12604,8 @@ static llparse_state_t llhttp__internal__run(
/* UNREACHABLE */;
abort();
}
- case s_n_llhttp__internal__n_error_50:
- s_n_llhttp__internal__n_error_50: {
+ case s_n_llhttp__internal__n_error_52:
+ s_n_llhttp__internal__n_error_52: {
state->error = 0x9;
state->reason = "Expected dot";
state->error_pos = (const char*) p;
@@ -12595,8 +12631,8 @@ static llparse_state_t llhttp__internal__run(
/* UNREACHABLE */;
abort();
}
- case s_n_llhttp__internal__n_error_51:
- s_n_llhttp__internal__n_error_51: {
+ case s_n_llhttp__internal__n_error_53:
+ s_n_llhttp__internal__n_error_53: {
state->error = 0x9;
state->reason = "Invalid major version";
state->error_pos = (const char*) p;
@@ -12697,7 +12733,7 @@ static llparse_state_t llhttp__internal__run(
return s_n_llhttp__internal__n_req_http_start_1;
}
case kMatchMismatch: {
- goto s_n_llhttp__internal__n_error_54;
+ goto s_n_llhttp__internal__n_error_56;
}
}
/* UNREACHABLE */;
@@ -12721,7 +12757,7 @@ static llparse_state_t llhttp__internal__run(
return s_n_llhttp__internal__n_req_http_start_2;
}
case kMatchMismatch: {
- goto s_n_llhttp__internal__n_error_54;
+ goto s_n_llhttp__internal__n_error_56;
}
}
/* UNREACHABLE */;
@@ -12745,7 +12781,7 @@ static llparse_state_t llhttp__internal__run(
return s_n_llhttp__internal__n_req_http_start_3;
}
case kMatchMismatch: {
- goto s_n_llhttp__internal__n_error_54;
+ goto s_n_llhttp__internal__n_error_56;
}
}
/* UNREACHABLE */;
@@ -12774,7 +12810,7 @@ static llparse_state_t llhttp__internal__run(
goto s_n_llhttp__internal__n_req_http_start_3;
}
default: {
- goto s_n_llhttp__internal__n_error_54;
+ goto s_n_llhttp__internal__n_error_56;
}
}
/* UNREACHABLE */;
@@ -12828,7 +12864,7 @@ static llparse_state_t llhttp__internal__run(
goto s_n_llhttp__internal__n_span_end_llhttp__on_url_8;
}
default: {
- goto s_n_llhttp__internal__n_error_55;
+ goto s_n_llhttp__internal__n_error_57;
}
}
/* UNREACHABLE */;
@@ -12885,7 +12921,7 @@ static llparse_state_t llhttp__internal__run(
goto s_n_llhttp__internal__n_span_end_stub_query_3;
}
default: {
- goto s_n_llhttp__internal__n_error_56;
+ goto s_n_llhttp__internal__n_error_58;
}
}
/* UNREACHABLE */;
@@ -12915,7 +12951,7 @@ static llparse_state_t llhttp__internal__run(
goto s_n_llhttp__internal__n_url_query;
}
default: {
- goto s_n_llhttp__internal__n_error_57;
+ goto s_n_llhttp__internal__n_error_59;
}
}
/* UNREACHABLE */;
@@ -13056,10 +13092,10 @@ static llparse_state_t llhttp__internal__run(
}
case 7: {
p++;
- goto s_n_llhttp__internal__n_error_58;
+ goto s_n_llhttp__internal__n_error_60;
}
default: {
- goto s_n_llhttp__internal__n_error_59;
+ goto s_n_llhttp__internal__n_error_61;
}
}
/* UNREACHABLE */;
@@ -13114,7 +13150,7 @@ static llparse_state_t llhttp__internal__run(
goto s_n_llhttp__internal__n_url_server_with_at;
}
default: {
- goto s_n_llhttp__internal__n_error_60;
+ goto s_n_llhttp__internal__n_error_62;
}
}
/* UNREACHABLE */;
@@ -13131,7 +13167,7 @@ static llparse_state_t llhttp__internal__run(
goto s_n_llhttp__internal__n_url_server;
}
default: {
- goto s_n_llhttp__internal__n_error_62;
+ goto s_n_llhttp__internal__n_error_64;
}
}
/* UNREACHABLE */;
@@ -13145,22 +13181,22 @@ static llparse_state_t llhttp__internal__run(
switch (*p) {
case 10: {
p++;
- goto s_n_llhttp__internal__n_error_61;
+ goto s_n_llhttp__internal__n_error_63;
}
case 13: {
p++;
- goto s_n_llhttp__internal__n_error_61;
+ goto s_n_llhttp__internal__n_error_63;
}
case ' ': {
p++;
- goto s_n_llhttp__internal__n_error_61;
+ goto s_n_llhttp__internal__n_error_63;
}
case '/': {
p++;
goto s_n_llhttp__internal__n_url_schema_delim_1;
}
default: {
- goto s_n_llhttp__internal__n_error_62;
+ goto s_n_llhttp__internal__n_error_64;
}
}
/* UNREACHABLE */;
@@ -13202,7 +13238,7 @@ static llparse_state_t llhttp__internal__run(
switch (lookup_table[(uint8_t) *p]) {
case 1: {
p++;
- goto s_n_llhttp__internal__n_error_61;
+ goto s_n_llhttp__internal__n_error_63;
}
case 2: {
goto s_n_llhttp__internal__n_span_end_stub_schema;
@@ -13212,7 +13248,7 @@ static llparse_state_t llhttp__internal__run(
goto s_n_llhttp__internal__n_url_schema;
}
default: {
- goto s_n_llhttp__internal__n_error_63;
+ goto s_n_llhttp__internal__n_error_65;
}
}
/* UNREACHABLE */;
@@ -13244,7 +13280,7 @@ static llparse_state_t llhttp__internal__run(
switch (lookup_table[(uint8_t) *p]) {
case 1: {
p++;
- goto s_n_llhttp__internal__n_error_61;
+ goto s_n_llhttp__internal__n_error_63;
}
case 2: {
goto s_n_llhttp__internal__n_span_start_stub_path_2;
@@ -13253,7 +13289,7 @@ static llparse_state_t llhttp__internal__run(
goto s_n_llhttp__internal__n_url_schema;
}
default: {
- goto s_n_llhttp__internal__n_error_64;
+ goto s_n_llhttp__internal__n_error_66;
}
}
/* UNREACHABLE */;
@@ -13309,7 +13345,7 @@ static llparse_state_t llhttp__internal__run(
goto s_n_llhttp__internal__n_req_spaces_before_url;
}
default: {
- goto s_n_llhttp__internal__n_error_65;
+ goto s_n_llhttp__internal__n_error_67;
}
}
/* UNREACHABLE */;
@@ -13323,7 +13359,7 @@ static llparse_state_t llhttp__internal__run(
case 21:
goto s_n_llhttp__internal__n_pause_22;
default:
- goto s_n_llhttp__internal__n_error_81;
+ goto s_n_llhttp__internal__n_error_83;
}
/* UNREACHABLE */;
abort();
@@ -13340,7 +13376,7 @@ static llparse_state_t llhttp__internal__run(
goto s_n_llhttp__internal__n_invoke_store_method_1;
}
default: {
- goto s_n_llhttp__internal__n_error_82;
+ goto s_n_llhttp__internal__n_error_84;
}
}
/* UNREACHABLE */;
@@ -13365,7 +13401,7 @@ static llparse_state_t llhttp__internal__run(
return s_n_llhttp__internal__n_after_start_req_3;
}
case kMatchMismatch: {
- goto s_n_llhttp__internal__n_error_82;
+ goto s_n_llhttp__internal__n_error_84;
}
}
/* UNREACHABLE */;
@@ -13386,7 +13422,7 @@ static llparse_state_t llhttp__internal__run(
goto s_n_llhttp__internal__n_after_start_req_3;
}
default: {
- goto s_n_llhttp__internal__n_error_82;
+ goto s_n_llhttp__internal__n_error_84;
}
}
/* UNREACHABLE */;
@@ -13411,7 +13447,7 @@ static llparse_state_t llhttp__internal__run(
return s_n_llhttp__internal__n_after_start_req_4;
}
case kMatchMismatch: {
- goto s_n_llhttp__internal__n_error_82;
+ goto s_n_llhttp__internal__n_error_84;
}
}
/* UNREACHABLE */;
@@ -13436,7 +13472,7 @@ static llparse_state_t llhttp__internal__run(
return s_n_llhttp__internal__n_after_start_req_6;
}
case kMatchMismatch: {
- goto s_n_llhttp__internal__n_error_82;
+ goto s_n_llhttp__internal__n_error_84;
}
}
/* UNREACHABLE */;
@@ -13461,7 +13497,7 @@ static llparse_state_t llhttp__internal__run(
return s_n_llhttp__internal__n_after_start_req_8;
}
case kMatchMismatch: {
- goto s_n_llhttp__internal__n_error_82;
+ goto s_n_llhttp__internal__n_error_84;
}
}
/* UNREACHABLE */;
@@ -13479,7 +13515,7 @@ static llparse_state_t llhttp__internal__run(
goto s_n_llhttp__internal__n_invoke_store_method_1;
}
default: {
- goto s_n_llhttp__internal__n_error_82;
+ goto s_n_llhttp__internal__n_error_84;
}
}
/* UNREACHABLE */;
@@ -13500,7 +13536,7 @@ static llparse_state_t llhttp__internal__run(
goto s_n_llhttp__internal__n_after_start_req_9;
}
default: {
- goto s_n_llhttp__internal__n_error_82;
+ goto s_n_llhttp__internal__n_error_84;
}
}
/* UNREACHABLE */;
@@ -13521,7 +13557,7 @@ static llparse_state_t llhttp__internal__run(
goto s_n_llhttp__internal__n_after_start_req_7;
}
default: {
- goto s_n_llhttp__internal__n_error_82;
+ goto s_n_llhttp__internal__n_error_84;
}
}
/* UNREACHABLE */;
@@ -13546,7 +13582,7 @@ static llparse_state_t llhttp__internal__run(
return s_n_llhttp__internal__n_after_start_req_12;
}
case kMatchMismatch: {
- goto s_n_llhttp__internal__n_error_82;
+ goto s_n_llhttp__internal__n_error_84;
}
}
/* UNREACHABLE */;
@@ -13571,7 +13607,7 @@ static llparse_state_t llhttp__internal__run(
return s_n_llhttp__internal__n_after_start_req_13;
}
case kMatchMismatch: {
- goto s_n_llhttp__internal__n_error_82;
+ goto s_n_llhttp__internal__n_error_84;
}
}
/* UNREACHABLE */;
@@ -13592,7 +13628,7 @@ static llparse_state_t llhttp__internal__run(
goto s_n_llhttp__internal__n_after_start_req_13;
}
default: {
- goto s_n_llhttp__internal__n_error_82;
+ goto s_n_llhttp__internal__n_error_84;
}
}
/* UNREACHABLE */;
@@ -13609,7 +13645,7 @@ static llparse_state_t llhttp__internal__run(
goto s_n_llhttp__internal__n_after_start_req_11;
}
default: {
- goto s_n_llhttp__internal__n_error_82;
+ goto s_n_llhttp__internal__n_error_84;
}
}
/* UNREACHABLE */;
@@ -13634,7 +13670,7 @@ static llparse_state_t llhttp__internal__run(
return s_n_llhttp__internal__n_after_start_req_14;
}
case kMatchMismatch: {
- goto s_n_llhttp__internal__n_error_82;
+ goto s_n_llhttp__internal__n_error_84;
}
}
/* UNREACHABLE */;
@@ -13659,7 +13695,7 @@ static llparse_state_t llhttp__internal__run(
return s_n_llhttp__internal__n_after_start_req_17;
}
case kMatchMismatch: {
- goto s_n_llhttp__internal__n_error_82;
+ goto s_n_llhttp__internal__n_error_84;
}
}
/* UNREACHABLE */;
@@ -13701,7 +13737,7 @@ static llparse_state_t llhttp__internal__run(
return s_n_llhttp__internal__n_after_start_req_15;
}
case kMatchMismatch: {
- goto s_n_llhttp__internal__n_error_82;
+ goto s_n_llhttp__internal__n_error_84;
}
}
/* UNREACHABLE */;
@@ -13726,7 +13762,7 @@ static llparse_state_t llhttp__internal__run(
return s_n_llhttp__internal__n_after_start_req_18;
}
case kMatchMismatch: {
- goto s_n_llhttp__internal__n_error_82;
+ goto s_n_llhttp__internal__n_error_84;
}
}
/* UNREACHABLE */;
@@ -13751,7 +13787,7 @@ static llparse_state_t llhttp__internal__run(
return s_n_llhttp__internal__n_after_start_req_20;
}
case kMatchMismatch: {
- goto s_n_llhttp__internal__n_error_82;
+ goto s_n_llhttp__internal__n_error_84;
}
}
/* UNREACHABLE */;
@@ -13776,7 +13812,7 @@ static llparse_state_t llhttp__internal__run(
return s_n_llhttp__internal__n_after_start_req_21;
}
case kMatchMismatch: {
- goto s_n_llhttp__internal__n_error_82;
+ goto s_n_llhttp__internal__n_error_84;
}
}
/* UNREACHABLE */;
@@ -13797,7 +13833,7 @@ static llparse_state_t llhttp__internal__run(
goto s_n_llhttp__internal__n_after_start_req_21;
}
default: {
- goto s_n_llhttp__internal__n_error_82;
+ goto s_n_llhttp__internal__n_error_84;
}
}
/* UNREACHABLE */;
@@ -13822,7 +13858,7 @@ static llparse_state_t llhttp__internal__run(
return s_n_llhttp__internal__n_after_start_req_23;
}
case kMatchMismatch: {
- goto s_n_llhttp__internal__n_error_82;
+ goto s_n_llhttp__internal__n_error_84;
}
}
/* UNREACHABLE */;
@@ -13847,7 +13883,7 @@ static llparse_state_t llhttp__internal__run(
return s_n_llhttp__internal__n_after_start_req_24;
}
case kMatchMismatch: {
- goto s_n_llhttp__internal__n_error_82;
+ goto s_n_llhttp__internal__n_error_84;
}
}
/* UNREACHABLE */;
@@ -13872,7 +13908,7 @@ static llparse_state_t llhttp__internal__run(
return s_n_llhttp__internal__n_after_start_req_26;
}
case kMatchMismatch: {
- goto s_n_llhttp__internal__n_error_82;
+ goto s_n_llhttp__internal__n_error_84;
}
}
/* UNREACHABLE */;
@@ -13897,7 +13933,7 @@ static llparse_state_t llhttp__internal__run(
return s_n_llhttp__internal__n_after_start_req_28;
}
case kMatchMismatch: {
- goto s_n_llhttp__internal__n_error_82;
+ goto s_n_llhttp__internal__n_error_84;
}
}
/* UNREACHABLE */;
@@ -13915,7 +13951,7 @@ static llparse_state_t llhttp__internal__run(
goto s_n_llhttp__internal__n_invoke_store_method_1;
}
default: {
- goto s_n_llhttp__internal__n_error_82;
+ goto s_n_llhttp__internal__n_error_84;
}
}
/* UNREACHABLE */;
@@ -13936,7 +13972,7 @@ static llparse_state_t llhttp__internal__run(
goto s_n_llhttp__internal__n_after_start_req_29;
}
default: {
- goto s_n_llhttp__internal__n_error_82;
+ goto s_n_llhttp__internal__n_error_84;
}
}
/* UNREACHABLE */;
@@ -13957,7 +13993,7 @@ static llparse_state_t llhttp__internal__run(
goto s_n_llhttp__internal__n_after_start_req_27;
}
default: {
- goto s_n_llhttp__internal__n_error_82;
+ goto s_n_llhttp__internal__n_error_84;
}
}
/* UNREACHABLE */;
@@ -13982,7 +14018,7 @@ static llparse_state_t llhttp__internal__run(
return s_n_llhttp__internal__n_after_start_req_30;
}
case kMatchMismatch: {
- goto s_n_llhttp__internal__n_error_82;
+ goto s_n_llhttp__internal__n_error_84;
}
}
/* UNREACHABLE */;
@@ -14011,7 +14047,7 @@ static llparse_state_t llhttp__internal__run(
goto s_n_llhttp__internal__n_after_start_req_30;
}
default: {
- goto s_n_llhttp__internal__n_error_82;
+ goto s_n_llhttp__internal__n_error_84;
}
}
/* UNREACHABLE */;
@@ -14036,7 +14072,7 @@ static llparse_state_t llhttp__internal__run(
return s_n_llhttp__internal__n_after_start_req_31;
}
case kMatchMismatch: {
- goto s_n_llhttp__internal__n_error_82;
+ goto s_n_llhttp__internal__n_error_84;
}
}
/* UNREACHABLE */;
@@ -14061,7 +14097,7 @@ static llparse_state_t llhttp__internal__run(
return s_n_llhttp__internal__n_after_start_req_32;
}
case kMatchMismatch: {
- goto s_n_llhttp__internal__n_error_82;
+ goto s_n_llhttp__internal__n_error_84;
}
}
/* UNREACHABLE */;
@@ -14086,7 +14122,7 @@ static llparse_state_t llhttp__internal__run(
return s_n_llhttp__internal__n_after_start_req_35;
}
case kMatchMismatch: {
- goto s_n_llhttp__internal__n_error_82;
+ goto s_n_llhttp__internal__n_error_84;
}
}
/* UNREACHABLE */;
@@ -14111,7 +14147,7 @@ static llparse_state_t llhttp__internal__run(
return s_n_llhttp__internal__n_after_start_req_36;
}
case kMatchMismatch: {
- goto s_n_llhttp__internal__n_error_82;
+ goto s_n_llhttp__internal__n_error_84;
}
}
/* UNREACHABLE */;
@@ -14132,7 +14168,7 @@ static llparse_state_t llhttp__internal__run(
goto s_n_llhttp__internal__n_after_start_req_36;
}
default: {
- goto s_n_llhttp__internal__n_error_82;
+ goto s_n_llhttp__internal__n_error_84;
}
}
/* UNREACHABLE */;
@@ -14157,7 +14193,7 @@ static llparse_state_t llhttp__internal__run(
return s_n_llhttp__internal__n_after_start_req_37;
}
case kMatchMismatch: {
- goto s_n_llhttp__internal__n_error_82;
+ goto s_n_llhttp__internal__n_error_84;
}
}
/* UNREACHABLE */;
@@ -14182,7 +14218,7 @@ static llparse_state_t llhttp__internal__run(
return s_n_llhttp__internal__n_after_start_req_38;
}
case kMatchMismatch: {
- goto s_n_llhttp__internal__n_error_82;
+ goto s_n_llhttp__internal__n_error_84;
}
}
/* UNREACHABLE */;
@@ -14207,7 +14243,7 @@ static llparse_state_t llhttp__internal__run(
return s_n_llhttp__internal__n_after_start_req_42;
}
case kMatchMismatch: {
- goto s_n_llhttp__internal__n_error_82;
+ goto s_n_llhttp__internal__n_error_84;
}
}
/* UNREACHABLE */;
@@ -14232,7 +14268,7 @@ static llparse_state_t llhttp__internal__run(
return s_n_llhttp__internal__n_after_start_req_43;
}
case kMatchMismatch: {
- goto s_n_llhttp__internal__n_error_82;
+ goto s_n_llhttp__internal__n_error_84;
}
}
/* UNREACHABLE */;
@@ -14253,7 +14289,7 @@ static llparse_state_t llhttp__internal__run(
goto s_n_llhttp__internal__n_after_start_req_43;
}
default: {
- goto s_n_llhttp__internal__n_error_82;
+ goto s_n_llhttp__internal__n_error_84;
}
}
/* UNREACHABLE */;
@@ -14270,7 +14306,7 @@ static llparse_state_t llhttp__internal__run(
goto s_n_llhttp__internal__n_after_start_req_41;
}
default: {
- goto s_n_llhttp__internal__n_error_82;
+ goto s_n_llhttp__internal__n_error_84;
}
}
/* UNREACHABLE */;
@@ -14292,7 +14328,7 @@ static llparse_state_t llhttp__internal__run(
goto s_n_llhttp__internal__n_after_start_req_40;
}
default: {
- goto s_n_llhttp__internal__n_error_82;
+ goto s_n_llhttp__internal__n_error_84;
}
}
/* UNREACHABLE */;
@@ -14317,7 +14353,7 @@ static llparse_state_t llhttp__internal__run(
return s_n_llhttp__internal__n_after_start_req_45;
}
case kMatchMismatch: {
- goto s_n_llhttp__internal__n_error_82;
+ goto s_n_llhttp__internal__n_error_84;
}
}
/* UNREACHABLE */;
@@ -14339,7 +14375,7 @@ static llparse_state_t llhttp__internal__run(
goto s_n_llhttp__internal__n_invoke_store_method_1;
}
default: {
- goto s_n_llhttp__internal__n_error_82;
+ goto s_n_llhttp__internal__n_error_84;
}
}
/* UNREACHABLE */;
@@ -14372,7 +14408,7 @@ static llparse_state_t llhttp__internal__run(
goto s_n_llhttp__internal__n_after_start_req_44;
}
default: {
- goto s_n_llhttp__internal__n_error_82;
+ goto s_n_llhttp__internal__n_error_84;
}
}
/* UNREACHABLE */;
@@ -14397,7 +14433,7 @@ static llparse_state_t llhttp__internal__run(
return s_n_llhttp__internal__n_after_start_req_48;
}
case kMatchMismatch: {
- goto s_n_llhttp__internal__n_error_82;
+ goto s_n_llhttp__internal__n_error_84;
}
}
/* UNREACHABLE */;
@@ -14422,7 +14458,7 @@ static llparse_state_t llhttp__internal__run(
return s_n_llhttp__internal__n_after_start_req_49;
}
case kMatchMismatch: {
- goto s_n_llhttp__internal__n_error_82;
+ goto s_n_llhttp__internal__n_error_84;
}
}
/* UNREACHABLE */;
@@ -14447,7 +14483,7 @@ static llparse_state_t llhttp__internal__run(
return s_n_llhttp__internal__n_after_start_req_50;
}
case kMatchMismatch: {
- goto s_n_llhttp__internal__n_error_82;
+ goto s_n_llhttp__internal__n_error_84;
}
}
/* UNREACHABLE */;
@@ -14472,7 +14508,7 @@ static llparse_state_t llhttp__internal__run(
return s_n_llhttp__internal__n_after_start_req_51;
}
case kMatchMismatch: {
- goto s_n_llhttp__internal__n_error_82;
+ goto s_n_llhttp__internal__n_error_84;
}
}
/* UNREACHABLE */;
@@ -14501,7 +14537,7 @@ static llparse_state_t llhttp__internal__run(
goto s_n_llhttp__internal__n_after_start_req_51;
}
default: {
- goto s_n_llhttp__internal__n_error_82;
+ goto s_n_llhttp__internal__n_error_84;
}
}
/* UNREACHABLE */;
@@ -14518,7 +14554,7 @@ static llparse_state_t llhttp__internal__run(
goto s_n_llhttp__internal__n_after_start_req_47;
}
default: {
- goto s_n_llhttp__internal__n_error_82;
+ goto s_n_llhttp__internal__n_error_84;
}
}
/* UNREACHABLE */;
@@ -14543,7 +14579,7 @@ static llparse_state_t llhttp__internal__run(
return s_n_llhttp__internal__n_after_start_req_54;
}
case kMatchMismatch: {
- goto s_n_llhttp__internal__n_error_82;
+ goto s_n_llhttp__internal__n_error_84;
}
}
/* UNREACHABLE */;
@@ -14561,7 +14597,7 @@ static llparse_state_t llhttp__internal__run(
goto s_n_llhttp__internal__n_invoke_store_method_1;
}
default: {
- goto s_n_llhttp__internal__n_error_82;
+ goto s_n_llhttp__internal__n_error_84;
}
}
/* UNREACHABLE */;
@@ -14586,7 +14622,7 @@ static llparse_state_t llhttp__internal__run(
return s_n_llhttp__internal__n_after_start_req_57;
}
case kMatchMismatch: {
- goto s_n_llhttp__internal__n_error_82;
+ goto s_n_llhttp__internal__n_error_84;
}
}
/* UNREACHABLE */;
@@ -14607,7 +14643,7 @@ static llparse_state_t llhttp__internal__run(
goto s_n_llhttp__internal__n_after_start_req_57;
}
default: {
- goto s_n_llhttp__internal__n_error_82;
+ goto s_n_llhttp__internal__n_error_84;
}
}
/* UNREACHABLE */;
@@ -14628,7 +14664,7 @@ static llparse_state_t llhttp__internal__run(
goto s_n_llhttp__internal__n_after_start_req_55;
}
default: {
- goto s_n_llhttp__internal__n_error_82;
+ goto s_n_llhttp__internal__n_error_84;
}
}
/* UNREACHABLE */;
@@ -14653,7 +14689,7 @@ static llparse_state_t llhttp__internal__run(
return s_n_llhttp__internal__n_after_start_req_58;
}
case kMatchMismatch: {
- goto s_n_llhttp__internal__n_error_82;
+ goto s_n_llhttp__internal__n_error_84;
}
}
/* UNREACHABLE */;
@@ -14678,7 +14714,7 @@ static llparse_state_t llhttp__internal__run(
return s_n_llhttp__internal__n_after_start_req_59;
}
case kMatchMismatch: {
- goto s_n_llhttp__internal__n_error_82;
+ goto s_n_llhttp__internal__n_error_84;
}
}
/* UNREACHABLE */;
@@ -14703,7 +14739,7 @@ static llparse_state_t llhttp__internal__run(
goto s_n_llhttp__internal__n_after_start_req_59;
}
default: {
- goto s_n_llhttp__internal__n_error_82;
+ goto s_n_llhttp__internal__n_error_84;
}
}
/* UNREACHABLE */;
@@ -14728,7 +14764,7 @@ static llparse_state_t llhttp__internal__run(
return s_n_llhttp__internal__n_after_start_req_61;
}
case kMatchMismatch: {
- goto s_n_llhttp__internal__n_error_82;
+ goto s_n_llhttp__internal__n_error_84;
}
}
/* UNREACHABLE */;
@@ -14753,7 +14789,7 @@ static llparse_state_t llhttp__internal__run(
return s_n_llhttp__internal__n_after_start_req_62;
}
case kMatchMismatch: {
- goto s_n_llhttp__internal__n_error_82;
+ goto s_n_llhttp__internal__n_error_84;
}
}
/* UNREACHABLE */;
@@ -14774,7 +14810,7 @@ static llparse_state_t llhttp__internal__run(
goto s_n_llhttp__internal__n_after_start_req_62;
}
default: {
- goto s_n_llhttp__internal__n_error_82;
+ goto s_n_llhttp__internal__n_error_84;
}
}
/* UNREACHABLE */;
@@ -14799,7 +14835,7 @@ static llparse_state_t llhttp__internal__run(
return s_n_llhttp__internal__n_after_start_req_65;
}
case kMatchMismatch: {
- goto s_n_llhttp__internal__n_error_82;
+ goto s_n_llhttp__internal__n_error_84;
}
}
/* UNREACHABLE */;
@@ -14824,7 +14860,7 @@ static llparse_state_t llhttp__internal__run(
return s_n_llhttp__internal__n_after_start_req_67;
}
case kMatchMismatch: {
- goto s_n_llhttp__internal__n_error_82;
+ goto s_n_llhttp__internal__n_error_84;
}
}
/* UNREACHABLE */;
@@ -14849,7 +14885,7 @@ static llparse_state_t llhttp__internal__run(
return s_n_llhttp__internal__n_after_start_req_68;
}
case kMatchMismatch: {
- goto s_n_llhttp__internal__n_error_82;
+ goto s_n_llhttp__internal__n_error_84;
}
}
/* UNREACHABLE */;
@@ -14870,7 +14906,7 @@ static llparse_state_t llhttp__internal__run(
goto s_n_llhttp__internal__n_after_start_req_68;
}
default: {
- goto s_n_llhttp__internal__n_error_82;
+ goto s_n_llhttp__internal__n_error_84;
}
}
/* UNREACHABLE */;
@@ -14895,7 +14931,7 @@ static llparse_state_t llhttp__internal__run(
return s_n_llhttp__internal__n_after_start_req_69;
}
case kMatchMismatch: {
- goto s_n_llhttp__internal__n_error_82;
+ goto s_n_llhttp__internal__n_error_84;
}
}
/* UNREACHABLE */;
@@ -14920,7 +14956,7 @@ static llparse_state_t llhttp__internal__run(
goto s_n_llhttp__internal__n_after_start_req_69;
}
default: {
- goto s_n_llhttp__internal__n_error_82;
+ goto s_n_llhttp__internal__n_error_84;
}
}
/* UNREACHABLE */;
@@ -14937,7 +14973,7 @@ static llparse_state_t llhttp__internal__run(
goto s_n_llhttp__internal__n_after_start_req_64;
}
default: {
- goto s_n_llhttp__internal__n_error_82;
+ goto s_n_llhttp__internal__n_error_84;
}
}
/* UNREACHABLE */;
@@ -15014,7 +15050,7 @@ static llparse_state_t llhttp__internal__run(
goto s_n_llhttp__internal__n_after_start_req_63;
}
default: {
- goto s_n_llhttp__internal__n_error_82;
+ goto s_n_llhttp__internal__n_error_84;
}
}
/* UNREACHABLE */;
@@ -15039,7 +15075,7 @@ static llparse_state_t llhttp__internal__run(
case 21:
goto s_n_llhttp__internal__n_pause_20;
default:
- goto s_n_llhttp__internal__n_error_68;
+ goto s_n_llhttp__internal__n_error_70;
}
/* UNREACHABLE */;
abort();
@@ -15123,7 +15159,7 @@ static llparse_state_t llhttp__internal__run(
goto s_n_llhttp__internal__n_res_status_start;
}
default: {
- goto s_n_llhttp__internal__n_error_69;
+ goto s_n_llhttp__internal__n_error_71;
}
}
/* UNREACHABLE */;
@@ -15186,7 +15222,7 @@ static llparse_state_t llhttp__internal__run(
goto s_n_llhttp__internal__n_invoke_mul_add_status_code_2;
}
default: {
- goto s_n_llhttp__internal__n_error_71;
+ goto s_n_llhttp__internal__n_error_73;
}
}
/* UNREACHABLE */;
@@ -15249,7 +15285,7 @@ static llparse_state_t llhttp__internal__run(
goto s_n_llhttp__internal__n_invoke_mul_add_status_code_1;
}
default: {
- goto s_n_llhttp__internal__n_error_73;
+ goto s_n_llhttp__internal__n_error_75;
}
}
/* UNREACHABLE */;
@@ -15312,7 +15348,7 @@ static llparse_state_t llhttp__internal__run(
goto s_n_llhttp__internal__n_invoke_mul_add_status_code;
}
default: {
- goto s_n_llhttp__internal__n_error_75;
+ goto s_n_llhttp__internal__n_error_77;
}
}
/* UNREACHABLE */;
@@ -15329,7 +15365,7 @@ static llparse_state_t llhttp__internal__run(
goto s_n_llhttp__internal__n_invoke_update_status_code;
}
default: {
- goto s_n_llhttp__internal__n_error_76;
+ goto s_n_llhttp__internal__n_error_78;
}
}
/* UNREACHABLE */;
@@ -15343,13 +15379,13 @@ static llparse_state_t llhttp__internal__run(
case 21:
goto s_n_llhttp__internal__n_pause_21;
default:
- goto s_n_llhttp__internal__n_error_67;
+ goto s_n_llhttp__internal__n_error_69;
}
/* UNREACHABLE */;
abort();
}
- case s_n_llhttp__internal__n_error_66:
- s_n_llhttp__internal__n_error_66: {
+ case s_n_llhttp__internal__n_error_68:
+ s_n_llhttp__internal__n_error_68: {
state->error = 0x9;
state->reason = "Invalid HTTP version";
state->error_pos = (const char*) p;
@@ -15358,8 +15394,8 @@ static llparse_state_t llhttp__internal__run(
/* UNREACHABLE */;
abort();
}
- case s_n_llhttp__internal__n_error_77:
- s_n_llhttp__internal__n_error_77: {
+ case s_n_llhttp__internal__n_error_79:
+ s_n_llhttp__internal__n_error_79: {
state->error = 0x9;
state->reason = "Invalid minor version";
state->error_pos = (const char*) p;
@@ -15431,8 +15467,8 @@ static llparse_state_t llhttp__internal__run(
/* UNREACHABLE */;
abort();
}
- case s_n_llhttp__internal__n_error_78:
- s_n_llhttp__internal__n_error_78: {
+ case s_n_llhttp__internal__n_error_80:
+ s_n_llhttp__internal__n_error_80: {
state->error = 0x9;
state->reason = "Expected dot";
state->error_pos = (const char*) p;
@@ -15458,8 +15494,8 @@ static llparse_state_t llhttp__internal__run(
/* UNREACHABLE */;
abort();
}
- case s_n_llhttp__internal__n_error_79:
- s_n_llhttp__internal__n_error_79: {
+ case s_n_llhttp__internal__n_error_81:
+ s_n_llhttp__internal__n_error_81: {
state->error = 0x9;
state->reason = "Invalid major version";
state->error_pos = (const char*) p;
@@ -15560,7 +15596,7 @@ static llparse_state_t llhttp__internal__run(
return s_n_llhttp__internal__n_start_res;
}
case kMatchMismatch: {
- goto s_n_llhttp__internal__n_error_83;
+ goto s_n_llhttp__internal__n_error_85;
}
}
/* UNREACHABLE */;
@@ -15598,7 +15634,7 @@ static llparse_state_t llhttp__internal__run(
return s_n_llhttp__internal__n_req_or_res_method_2;
}
case kMatchMismatch: {
- goto s_n_llhttp__internal__n_error_80;
+ goto s_n_llhttp__internal__n_error_82;
}
}
/* UNREACHABLE */;
@@ -15631,7 +15667,7 @@ static llparse_state_t llhttp__internal__run(
return s_n_llhttp__internal__n_req_or_res_method_3;
}
case kMatchMismatch: {
- goto s_n_llhttp__internal__n_error_80;
+ goto s_n_llhttp__internal__n_error_82;
}
}
/* UNREACHABLE */;
@@ -15652,7 +15688,7 @@ static llparse_state_t llhttp__internal__run(
goto s_n_llhttp__internal__n_req_or_res_method_3;
}
default: {
- goto s_n_llhttp__internal__n_error_80;
+ goto s_n_llhttp__internal__n_error_82;
}
}
/* UNREACHABLE */;
@@ -15669,7 +15705,7 @@ static llparse_state_t llhttp__internal__run(
goto s_n_llhttp__internal__n_req_or_res_method_1;
}
default: {
- goto s_n_llhttp__internal__n_error_80;
+ goto s_n_llhttp__internal__n_error_82;
}
}
/* UNREACHABLE */;
@@ -15749,7 +15785,7 @@ static llparse_state_t llhttp__internal__run(
/* UNREACHABLE */
abort();
}
- s_n_llhttp__internal__n_error_61: {
+ s_n_llhttp__internal__n_error_63: {
state->error = 0x7;
state->reason = "Invalid characters in url";
state->error_pos = (const char*) p;
@@ -16505,7 +16541,26 @@ static llparse_state_t llhttp__internal__run(
/* UNREACHABLE */;
abort();
}
- s_n_llhttp__internal__n_error_32: {
+ s_n_llhttp__internal__n_error_31: {
+ state->error = 0xa;
+ state->reason = "Invalid header value char";
+ state->error_pos = (const char*) p;
+ state->_current = (void*) (intptr_t) s_error;
+ return s_error;
+ /* UNREACHABLE */;
+ abort();
+ }
+ s_n_llhttp__internal__n_invoke_test_lenient_flags_5: {
+ switch (llhttp__internal__c_test_lenient_flags(state, p, endp)) {
+ case 1:
+ goto s_n_llhttp__internal__n_header_value_discard_ws;
+ default:
+ goto s_n_llhttp__internal__n_error_31;
+ }
+ /* UNREACHABLE */;
+ abort();
+ }
+ s_n_llhttp__internal__n_error_33: {
state->error = 0xb;
state->reason = "Empty Content-Length";
state->error_pos = (const char*) p;
@@ -16523,7 +16578,7 @@ static llparse_state_t llhttp__internal__run(
/* UNREACHABLE */;
abort();
}
- s_n_llhttp__internal__n_error_31: {
+ s_n_llhttp__internal__n_error_32: {
state->error = 0x1d;
state->reason = "`on_header_value_complete` callback error";
state->error_pos = (const char*) p;
@@ -16608,7 +16663,7 @@ static llparse_state_t llhttp__internal__run(
s_n_llhttp__internal__n_invoke_load_header_state: {
switch (llhttp__internal__c_load_header_state(state, p, endp)) {
case 2:
- goto s_n_llhttp__internal__n_error_32;
+ goto s_n_llhttp__internal__n_error_33;
default:
goto s_n_llhttp__internal__n_invoke_load_header_state_1;
}
@@ -16634,6 +16689,25 @@ static llparse_state_t llhttp__internal__run(
/* UNREACHABLE */;
abort();
}
+ s_n_llhttp__internal__n_error_34: {
+ state->error = 0x2;
+ state->reason = "Expected LF after CR";
+ state->error_pos = (const char*) p;
+ state->_current = (void*) (intptr_t) s_error;
+ return s_error;
+ /* UNREACHABLE */;
+ abort();
+ }
+ s_n_llhttp__internal__n_invoke_test_lenient_flags_6: {
+ switch (llhttp__internal__c_test_lenient_flags(state, p, endp)) {
+ case 1:
+ goto s_n_llhttp__internal__n_header_value_discard_lws;
+ default:
+ goto s_n_llhttp__internal__n_error_34;
+ }
+ /* UNREACHABLE */;
+ abort();
+ }
s_n_llhttp__internal__n_invoke_update_header_state_1: {
switch (llhttp__internal__c_update_header_state_1(state, p, endp)) {
default:
@@ -16708,7 +16782,7 @@ static llparse_state_t llhttp__internal__run(
/* UNREACHABLE */;
abort();
}
- s_n_llhttp__internal__n_error_33: {
+ s_n_llhttp__internal__n_error_35: {
state->error = 0x3;
state->reason = "Missing expected LF after header value";
state->error_pos = (const char*) p;
@@ -16780,14 +16854,14 @@ static llparse_state_t llhttp__internal__run(
if (err != 0) {
state->error = err;
state->error_pos = (const char*) p;
- state->_current = (void*) (intptr_t) s_n_llhttp__internal__n_error_34;
+ state->_current = (void*) (intptr_t) s_n_llhttp__internal__n_error_36;
return s_error;
}
- goto s_n_llhttp__internal__n_error_34;
+ goto s_n_llhttp__internal__n_error_36;
/* UNREACHABLE */;
abort();
}
- s_n_llhttp__internal__n_invoke_test_lenient_flags_5: {
+ s_n_llhttp__internal__n_invoke_test_lenient_flags_7: {
switch (llhttp__internal__c_test_lenient_flags(state, p, endp)) {
case 1:
goto s_n_llhttp__internal__n_header_value_lenient;
@@ -16895,10 +16969,10 @@ static llparse_state_t llhttp__internal__run(
if (err != 0) {
state->error = err;
state->error_pos = (const char*) p;
- state->_current = (void*) (intptr_t) s_n_llhttp__internal__n_error_36;
+ state->_current = (void*) (intptr_t) s_n_llhttp__internal__n_error_38;
return s_error;
}
- goto s_n_llhttp__internal__n_error_36;
+ goto s_n_llhttp__internal__n_error_38;
/* UNREACHABLE */;
abort();
}
@@ -16930,14 +17004,14 @@ static llparse_state_t llhttp__internal__run(
if (err != 0) {
state->error = err;
state->error_pos = (const char*) p;
- state->_current = (void*) (intptr_t) s_n_llhttp__internal__n_error_37;
+ state->_current = (void*) (intptr_t) s_n_llhttp__internal__n_error_39;
return s_error;
}
- goto s_n_llhttp__internal__n_error_37;
+ goto s_n_llhttp__internal__n_error_39;
/* UNREACHABLE */;
abort();
}
- s_n_llhttp__internal__n_error_35: {
+ s_n_llhttp__internal__n_error_37: {
state->error = 0x4;
state->reason = "Duplicate Content-Length";
state->error_pos = (const char*) p;
@@ -16951,7 +17025,7 @@ static llparse_state_t llhttp__internal__run(
case 0:
goto s_n_llhttp__internal__n_header_value_content_length;
default:
- goto s_n_llhttp__internal__n_error_35;
+ goto s_n_llhttp__internal__n_error_37;
}
/* UNREACHABLE */;
abort();
@@ -16966,11 +17040,11 @@ static llparse_state_t llhttp__internal__run(
if (err != 0) {
state->error = err;
state->error_pos = (const char*) (p + 1);
- state->_current = (void*) (intptr_t) s_n_llhttp__internal__n_error_39;
+ state->_current = (void*) (intptr_t) s_n_llhttp__internal__n_error_41;
return s_error;
}
p++;
- goto s_n_llhttp__internal__n_error_39;
+ goto s_n_llhttp__internal__n_error_41;
/* UNREACHABLE */;
abort();
}
@@ -16992,16 +17066,16 @@ static llparse_state_t llhttp__internal__run(
if (err != 0) {
state->error = err;
state->error_pos = (const char*) (p + 1);
- state->_current = (void*) (intptr_t) s_n_llhttp__internal__n_error_38;
+ state->_current = (void*) (intptr_t) s_n_llhttp__internal__n_error_40;
return s_error;
}
p++;
- goto s_n_llhttp__internal__n_error_38;
+ goto s_n_llhttp__internal__n_error_40;
/* UNREACHABLE */;
abort();
}
- s_n_llhttp__internal__n_invoke_test_lenient_flags_6: {
- switch (llhttp__internal__c_test_lenient_flags_6(state, p, endp)) {
+ s_n_llhttp__internal__n_invoke_test_lenient_flags_8: {
+ switch (llhttp__internal__c_test_lenient_flags_8(state, p, endp)) {
case 0:
goto s_n_llhttp__internal__n_span_end_llhttp__on_header_value_7;
default:
@@ -17013,7 +17087,7 @@ static llparse_state_t llhttp__internal__run(
s_n_llhttp__internal__n_invoke_load_type_1: {
switch (llhttp__internal__c_load_type(state, p, endp)) {
case 1:
- goto s_n_llhttp__internal__n_invoke_test_lenient_flags_6;
+ goto s_n_llhttp__internal__n_invoke_test_lenient_flags_8;
default:
goto s_n_llhttp__internal__n_header_value_te_chunked;
}
@@ -17044,8 +17118,8 @@ static llparse_state_t llhttp__internal__run(
/* UNREACHABLE */;
abort();
}
- s_n_llhttp__internal__n_invoke_test_lenient_flags_7: {
- switch (llhttp__internal__c_test_lenient_flags_6(state, p, endp)) {
+ s_n_llhttp__internal__n_invoke_test_lenient_flags_9: {
+ switch (llhttp__internal__c_test_lenient_flags_8(state, p, endp)) {
case 0:
goto s_n_llhttp__internal__n_span_end_llhttp__on_header_value_8;
default:
@@ -17057,7 +17131,7 @@ static llparse_state_t llhttp__internal__run(
s_n_llhttp__internal__n_invoke_load_type_2: {
switch (llhttp__internal__c_load_type(state, p, endp)) {
case 1:
- goto s_n_llhttp__internal__n_invoke_test_lenient_flags_7;
+ goto s_n_llhttp__internal__n_invoke_test_lenient_flags_9;
default:
goto s_n_llhttp__internal__n_invoke_or_flags_17;
}
@@ -17160,7 +17234,7 @@ static llparse_state_t llhttp__internal__run(
/* UNREACHABLE */;
abort();
}
- s_n_llhttp__internal__n_error_40: {
+ s_n_llhttp__internal__n_error_42: {
state->error = 0xa;
state->reason = "Invalid header token";
state->error_pos = (const char*) p;
@@ -17275,7 +17349,7 @@ static llparse_state_t llhttp__internal__run(
/* UNREACHABLE */;
abort();
}
- s_n_llhttp__internal__n_error_41: {
+ s_n_llhttp__internal__n_error_43: {
state->error = 0x7;
state->reason = "Expected CRLF";
state->error_pos = (const char*) p;
@@ -17301,7 +17375,7 @@ static llparse_state_t llhttp__internal__run(
/* UNREACHABLE */;
abort();
}
- s_n_llhttp__internal__n_error_47: {
+ s_n_llhttp__internal__n_error_49: {
state->error = 0x17;
state->reason = "Pause on PRI/Upgrade";
state->error_pos = (const char*) p;
@@ -17310,7 +17384,7 @@ static llparse_state_t llhttp__internal__run(
/* UNREACHABLE */;
abort();
}
- s_n_llhttp__internal__n_error_48: {
+ s_n_llhttp__internal__n_error_50: {
state->error = 0x9;
state->reason = "Expected HTTP/2 Connection Preface";
state->error_pos = (const char*) p;
@@ -17319,7 +17393,7 @@ static llparse_state_t llhttp__internal__run(
/* UNREACHABLE */;
abort();
}
- s_n_llhttp__internal__n_error_46: {
+ s_n_llhttp__internal__n_error_48: {
state->error = 0x9;
state->reason = "Expected CRLF after version";
state->error_pos = (const char*) p;
@@ -17337,7 +17411,7 @@ static llparse_state_t llhttp__internal__run(
/* UNREACHABLE */;
abort();
}
- s_n_llhttp__internal__n_error_45: {
+ s_n_llhttp__internal__n_error_47: {
state->error = 0x21;
state->reason = "`on_version_complete` callback error";
state->error_pos = (const char*) p;
@@ -17373,10 +17447,10 @@ static llparse_state_t llhttp__internal__run(
if (err != 0) {
state->error = err;
state->error_pos = (const char*) p;
- state->_current = (void*) (intptr_t) s_n_llhttp__internal__n_error_44;
+ state->_current = (void*) (intptr_t) s_n_llhttp__internal__n_error_46;
return s_error;
}
- goto s_n_llhttp__internal__n_error_44;
+ goto s_n_llhttp__internal__n_error_46;
/* UNREACHABLE */;
abort();
}
@@ -17426,8 +17500,8 @@ static llparse_state_t llhttp__internal__run(
/* UNREACHABLE */;
abort();
}
- s_n_llhttp__internal__n_invoke_test_lenient_flags_8: {
- switch (llhttp__internal__c_test_lenient_flags_8(state, p, endp)) {
+ s_n_llhttp__internal__n_invoke_test_lenient_flags_10: {
+ switch (llhttp__internal__c_test_lenient_flags_10(state, p, endp)) {
case 1:
goto s_n_llhttp__internal__n_span_end_llhttp__on_version_1;
default:
@@ -17439,7 +17513,7 @@ static llparse_state_t llhttp__internal__run(
s_n_llhttp__internal__n_invoke_store_http_minor: {
switch (llhttp__internal__c_store_http_minor(state, p, endp, match)) {
default:
- goto s_n_llhttp__internal__n_invoke_test_lenient_flags_8;
+ goto s_n_llhttp__internal__n_invoke_test_lenient_flags_10;
}
/* UNREACHABLE */;
abort();
@@ -17454,10 +17528,10 @@ static llparse_state_t llhttp__internal__run(
if (err != 0) {
state->error = err;
state->error_pos = (const char*) p;
- state->_current = (void*) (intptr_t) s_n_llhttp__internal__n_error_49;
+ state->_current = (void*) (intptr_t) s_n_llhttp__internal__n_error_51;
return s_error;
}
- goto s_n_llhttp__internal__n_error_49;
+ goto s_n_llhttp__internal__n_error_51;
/* UNREACHABLE */;
abort();
}
@@ -17471,10 +17545,10 @@ static llparse_state_t llhttp__internal__run(
if (err != 0) {
state->error = err;
state->error_pos = (const char*) p;
- state->_current = (void*) (intptr_t) s_n_llhttp__internal__n_error_50;
+ state->_current = (void*) (intptr_t) s_n_llhttp__internal__n_error_52;
return s_error;
}
- goto s_n_llhttp__internal__n_error_50;
+ goto s_n_llhttp__internal__n_error_52;
/* UNREACHABLE */;
abort();
}
@@ -17496,14 +17570,14 @@ static llparse_state_t llhttp__internal__run(
if (err != 0) {
state->error = err;
state->error_pos = (const char*) p;
- state->_current = (void*) (intptr_t) s_n_llhttp__internal__n_error_51;
+ state->_current = (void*) (intptr_t) s_n_llhttp__internal__n_error_53;
return s_error;
}
- goto s_n_llhttp__internal__n_error_51;
+ goto s_n_llhttp__internal__n_error_53;
/* UNREACHABLE */;
abort();
}
- s_n_llhttp__internal__n_error_43: {
+ s_n_llhttp__internal__n_error_45: {
state->error = 0x8;
state->reason = "Invalid method for HTTP/x.x request";
state->error_pos = (const char*) p;
@@ -17585,12 +17659,12 @@ static llparse_state_t llhttp__internal__run(
case 34:
goto s_n_llhttp__internal__n_span_start_llhttp__on_version;
default:
- goto s_n_llhttp__internal__n_error_43;
+ goto s_n_llhttp__internal__n_error_45;
}
/* UNREACHABLE */;
abort();
}
- s_n_llhttp__internal__n_error_54: {
+ s_n_llhttp__internal__n_error_56: {
state->error = 0x8;
state->reason = "Expected HTTP/";
state->error_pos = (const char*) p;
@@ -17599,7 +17673,7 @@ static llparse_state_t llhttp__internal__run(
/* UNREACHABLE */;
abort();
}
- s_n_llhttp__internal__n_error_52: {
+ s_n_llhttp__internal__n_error_54: {
state->error = 0x8;
state->reason = "Expected SOURCE method for ICE/x.x request";
state->error_pos = (const char*) p;
@@ -17613,12 +17687,12 @@ static llparse_state_t llhttp__internal__run(
case 33:
goto s_n_llhttp__internal__n_span_start_llhttp__on_version;
default:
- goto s_n_llhttp__internal__n_error_52;
+ goto s_n_llhttp__internal__n_error_54;
}
/* UNREACHABLE */;
abort();
}
- s_n_llhttp__internal__n_error_53: {
+ s_n_llhttp__internal__n_error_55: {
state->error = 0x8;
state->reason = "Invalid method for RTSP/x.x request";
state->error_pos = (const char*) p;
@@ -17658,7 +17732,7 @@ static llparse_state_t llhttp__internal__run(
case 45:
goto s_n_llhttp__internal__n_span_start_llhttp__on_version;
default:
- goto s_n_llhttp__internal__n_error_53;
+ goto s_n_llhttp__internal__n_error_55;
}
/* UNREACHABLE */;
abort();
@@ -17672,7 +17746,7 @@ static llparse_state_t llhttp__internal__run(
/* UNREACHABLE */;
abort();
}
- s_n_llhttp__internal__n_error_42: {
+ s_n_llhttp__internal__n_error_44: {
state->error = 0x1a;
state->reason = "`on_url_complete` callback error";
state->error_pos = (const char*) p;
@@ -17688,7 +17762,7 @@ static llparse_state_t llhttp__internal__run(
case 21:
goto s_n_llhttp__internal__n_pause_18;
default:
- goto s_n_llhttp__internal__n_error_42;
+ goto s_n_llhttp__internal__n_error_44;
}
/* UNREACHABLE */;
abort();
@@ -17761,7 +17835,7 @@ static llparse_state_t llhttp__internal__run(
/* UNREACHABLE */;
abort();
}
- s_n_llhttp__internal__n_error_55: {
+ s_n_llhttp__internal__n_error_57: {
state->error = 0x7;
state->reason = "Invalid char in url fragment start";
state->error_pos = (const char*) p;
@@ -17821,7 +17895,7 @@ static llparse_state_t llhttp__internal__run(
/* UNREACHABLE */;
abort();
}
- s_n_llhttp__internal__n_error_56: {
+ s_n_llhttp__internal__n_error_58: {
state->error = 0x7;
state->reason = "Invalid char in url query";
state->error_pos = (const char*) p;
@@ -17830,7 +17904,7 @@ static llparse_state_t llhttp__internal__run(
/* UNREACHABLE */;
abort();
}
- s_n_llhttp__internal__n_error_57: {
+ s_n_llhttp__internal__n_error_59: {
state->error = 0x7;
state->reason = "Invalid char in url path";
state->error_pos = (const char*) p;
@@ -17941,7 +18015,7 @@ static llparse_state_t llhttp__internal__run(
/* UNREACHABLE */;
abort();
}
- s_n_llhttp__internal__n_error_58: {
+ s_n_llhttp__internal__n_error_60: {
state->error = 0x7;
state->reason = "Double @ in url";
state->error_pos = (const char*) p;
@@ -17950,7 +18024,7 @@ static llparse_state_t llhttp__internal__run(
/* UNREACHABLE */;
abort();
}
- s_n_llhttp__internal__n_error_59: {
+ s_n_llhttp__internal__n_error_61: {
state->error = 0x7;
state->reason = "Unexpected char in url server";
state->error_pos = (const char*) p;
@@ -17959,7 +18033,7 @@ static llparse_state_t llhttp__internal__run(
/* UNREACHABLE */;
abort();
}
- s_n_llhttp__internal__n_error_60: {
+ s_n_llhttp__internal__n_error_62: {
state->error = 0x7;
state->reason = "Unexpected char in url server";
state->error_pos = (const char*) p;
@@ -17968,7 +18042,7 @@ static llparse_state_t llhttp__internal__run(
/* UNREACHABLE */;
abort();
}
- s_n_llhttp__internal__n_error_62: {
+ s_n_llhttp__internal__n_error_64: {
state->error = 0x7;
state->reason = "Unexpected char in url schema";
state->error_pos = (const char*) p;
@@ -17977,7 +18051,7 @@ static llparse_state_t llhttp__internal__run(
/* UNREACHABLE */;
abort();
}
- s_n_llhttp__internal__n_error_63: {
+ s_n_llhttp__internal__n_error_65: {
state->error = 0x7;
state->reason = "Unexpected char in url schema";
state->error_pos = (const char*) p;
@@ -17986,7 +18060,7 @@ static llparse_state_t llhttp__internal__run(
/* UNREACHABLE */;
abort();
}
- s_n_llhttp__internal__n_error_64: {
+ s_n_llhttp__internal__n_error_66: {
state->error = 0x7;
state->reason = "Unexpected start char in url";
state->error_pos = (const char*) p;
@@ -18005,7 +18079,7 @@ static llparse_state_t llhttp__internal__run(
/* UNREACHABLE */;
abort();
}
- s_n_llhttp__internal__n_error_65: {
+ s_n_llhttp__internal__n_error_67: {
state->error = 0x6;
state->reason = "Expected space after method";
state->error_pos = (const char*) p;
@@ -18023,7 +18097,7 @@ static llparse_state_t llhttp__internal__run(
/* UNREACHABLE */;
abort();
}
- s_n_llhttp__internal__n_error_81: {
+ s_n_llhttp__internal__n_error_83: {
state->error = 0x20;
state->reason = "`on_method_complete` callback error";
state->error_pos = (const char*) p;
@@ -18057,7 +18131,7 @@ static llparse_state_t llhttp__internal__run(
/* UNREACHABLE */;
abort();
}
- s_n_llhttp__internal__n_error_82: {
+ s_n_llhttp__internal__n_error_84: {
state->error = 0x6;
state->reason = "Invalid method encountered";
state->error_pos = (const char*) p;
@@ -18066,7 +18140,7 @@ static llparse_state_t llhttp__internal__run(
/* UNREACHABLE */;
abort();
}
- s_n_llhttp__internal__n_error_74: {
+ s_n_llhttp__internal__n_error_76: {
state->error = 0xd;
state->reason = "Invalid status code";
state->error_pos = (const char*) p;
@@ -18075,7 +18149,7 @@ static llparse_state_t llhttp__internal__run(
/* UNREACHABLE */;
abort();
}
- s_n_llhttp__internal__n_error_72: {
+ s_n_llhttp__internal__n_error_74: {
state->error = 0xd;
state->reason = "Invalid status code";
state->error_pos = (const char*) p;
@@ -18084,7 +18158,7 @@ static llparse_state_t llhttp__internal__run(
/* UNREACHABLE */;
abort();
}
- s_n_llhttp__internal__n_error_70: {
+ s_n_llhttp__internal__n_error_72: {
state->error = 0xd;
state->reason = "Invalid status code";
state->error_pos = (const char*) p;
@@ -18102,7 +18176,7 @@ static llparse_state_t llhttp__internal__run(
/* UNREACHABLE */;
abort();
}
- s_n_llhttp__internal__n_error_68: {
+ s_n_llhttp__internal__n_error_70: {
state->error = 0x1b;
state->reason = "`on_status_complete` callback error";
state->error_pos = (const char*) p;
@@ -18147,7 +18221,7 @@ static llparse_state_t llhttp__internal__run(
/* UNREACHABLE */;
abort();
}
- s_n_llhttp__internal__n_error_69: {
+ s_n_llhttp__internal__n_error_71: {
state->error = 0xd;
state->reason = "Invalid response status";
state->error_pos = (const char*) p;
@@ -18159,14 +18233,14 @@ static llparse_state_t llhttp__internal__run(
s_n_llhttp__internal__n_invoke_mul_add_status_code_2: {
switch (llhttp__internal__c_mul_add_status_code(state, p, endp, match)) {
case 1:
- goto s_n_llhttp__internal__n_error_70;
+ goto s_n_llhttp__internal__n_error_72;
default:
goto s_n_llhttp__internal__n_res_status_code_otherwise;
}
/* UNREACHABLE */;
abort();
}
- s_n_llhttp__internal__n_error_71: {
+ s_n_llhttp__internal__n_error_73: {
state->error = 0xd;
state->reason = "Invalid status code";
state->error_pos = (const char*) p;
@@ -18178,14 +18252,14 @@ static llparse_state_t llhttp__internal__run(
s_n_llhttp__internal__n_invoke_mul_add_status_code_1: {
switch (llhttp__internal__c_mul_add_status_code(state, p, endp, match)) {
case 1:
- goto s_n_llhttp__internal__n_error_72;
+ goto s_n_llhttp__internal__n_error_74;
default:
goto s_n_llhttp__internal__n_res_status_code_digit_3;
}
/* UNREACHABLE */;
abort();
}
- s_n_llhttp__internal__n_error_73: {
+ s_n_llhttp__internal__n_error_75: {
state->error = 0xd;
state->reason = "Invalid status code";
state->error_pos = (const char*) p;
@@ -18197,14 +18271,14 @@ static llparse_state_t llhttp__internal__run(
s_n_llhttp__internal__n_invoke_mul_add_status_code: {
switch (llhttp__internal__c_mul_add_status_code(state, p, endp, match)) {
case 1:
- goto s_n_llhttp__internal__n_error_74;
+ goto s_n_llhttp__internal__n_error_76;
default:
goto s_n_llhttp__internal__n_res_status_code_digit_2;
}
/* UNREACHABLE */;
abort();
}
- s_n_llhttp__internal__n_error_75: {
+ s_n_llhttp__internal__n_error_77: {
state->error = 0xd;
state->reason = "Invalid status code";
state->error_pos = (const char*) p;
@@ -18221,7 +18295,7 @@ static llparse_state_t llhttp__internal__run(
/* UNREACHABLE */;
abort();
}
- s_n_llhttp__internal__n_error_76: {
+ s_n_llhttp__internal__n_error_78: {
state->error = 0x9;
state->reason = "Expected space after version";
state->error_pos = (const char*) p;
@@ -18239,7 +18313,7 @@ static llparse_state_t llhttp__internal__run(
/* UNREACHABLE */;
abort();
}
- s_n_llhttp__internal__n_error_67: {
+ s_n_llhttp__internal__n_error_69: {
state->error = 0x21;
state->reason = "`on_version_complete` callback error";
state->error_pos = (const char*) p;
@@ -18275,10 +18349,10 @@ static llparse_state_t llhttp__internal__run(
if (err != 0) {
state->error = err;
state->error_pos = (const char*) p;
- state->_current = (void*) (intptr_t) s_n_llhttp__internal__n_error_66;
+ state->_current = (void*) (intptr_t) s_n_llhttp__internal__n_error_68;
return s_error;
}
- goto s_n_llhttp__internal__n_error_66;
+ goto s_n_llhttp__internal__n_error_68;
/* UNREACHABLE */;
abort();
}
@@ -18328,8 +18402,8 @@ static llparse_state_t llhttp__internal__run(
/* UNREACHABLE */;
abort();
}
- s_n_llhttp__internal__n_invoke_test_lenient_flags_9: {
- switch (llhttp__internal__c_test_lenient_flags_8(state, p, endp)) {
+ s_n_llhttp__internal__n_invoke_test_lenient_flags_11: {
+ switch (llhttp__internal__c_test_lenient_flags_10(state, p, endp)) {
case 1:
goto s_n_llhttp__internal__n_span_end_llhttp__on_version_6;
default:
@@ -18341,7 +18415,7 @@ static llparse_state_t llhttp__internal__run(
s_n_llhttp__internal__n_invoke_store_http_minor_1: {
switch (llhttp__internal__c_store_http_minor(state, p, endp, match)) {
default:
- goto s_n_llhttp__internal__n_invoke_test_lenient_flags_9;
+ goto s_n_llhttp__internal__n_invoke_test_lenient_flags_11;
}
/* UNREACHABLE */;
abort();
@@ -18356,10 +18430,10 @@ static llparse_state_t llhttp__internal__run(
if (err != 0) {
state->error = err;
state->error_pos = (const char*) p;
- state->_current = (void*) (intptr_t) s_n_llhttp__internal__n_error_77;
+ state->_current = (void*) (intptr_t) s_n_llhttp__internal__n_error_79;
return s_error;
}
- goto s_n_llhttp__internal__n_error_77;
+ goto s_n_llhttp__internal__n_error_79;
/* UNREACHABLE */;
abort();
}
@@ -18373,10 +18447,10 @@ static llparse_state_t llhttp__internal__run(
if (err != 0) {
state->error = err;
state->error_pos = (const char*) p;
- state->_current = (void*) (intptr_t) s_n_llhttp__internal__n_error_78;
+ state->_current = (void*) (intptr_t) s_n_llhttp__internal__n_error_80;
return s_error;
}
- goto s_n_llhttp__internal__n_error_78;
+ goto s_n_llhttp__internal__n_error_80;
/* UNREACHABLE */;
abort();
}
@@ -18398,14 +18472,14 @@ static llparse_state_t llhttp__internal__run(
if (err != 0) {
state->error = err;
state->error_pos = (const char*) p;
- state->_current = (void*) (intptr_t) s_n_llhttp__internal__n_error_79;
+ state->_current = (void*) (intptr_t) s_n_llhttp__internal__n_error_81;
return s_error;
}
- goto s_n_llhttp__internal__n_error_79;
+ goto s_n_llhttp__internal__n_error_81;
/* UNREACHABLE */;
abort();
}
- s_n_llhttp__internal__n_error_83: {
+ s_n_llhttp__internal__n_error_85: {
state->error = 0x8;
state->reason = "Expected HTTP/";
state->error_pos = (const char*) p;
@@ -18465,7 +18539,7 @@ static llparse_state_t llhttp__internal__run(
/* UNREACHABLE */;
abort();
}
- s_n_llhttp__internal__n_error_80: {
+ s_n_llhttp__internal__n_error_82: {
state->error = 0x8;
state->reason = "Invalid word encountered";
state->error_pos = (const char*) p;
@@ -18538,7 +18612,7 @@ static llparse_state_t llhttp__internal__run(
/* UNREACHABLE */;
abort();
}
- s_n_llhttp__internal__n_error_84: {
+ s_n_llhttp__internal__n_error_86: {
state->error = 0x1f;
state->reason = "`on_reset` callback error";
state->error_pos = (const char*) p;
@@ -18554,7 +18628,7 @@ static llparse_state_t llhttp__internal__run(
case 21:
goto s_n_llhttp__internal__n_pause_24;
default:
- goto s_n_llhttp__internal__n_error_84;
+ goto s_n_llhttp__internal__n_error_86;
}
/* UNREACHABLE */;
abort();