-commit 8f7b008b158e12de0e58247afd170f127dbb6456 (HEAD, tag: v1.41.0, origin/master, origin/HEAD, master)
+commit cc05c5fe8cfc8287ddc4930fa9684af878d9e631 (HEAD, tag: v1.40.0, origin/master, origin/HEAD, master)
Author: Tatsuhiro Tsujikawa <tatsuhiro.t@gmail.com>
-AuthorDate: 2020-06-02
-Commit: Tatsuhiro Tsujikawa <tatsuhiro.t@gmail.com>
-CommitDate: 2020-06-02
-
- Update bash_completion
-
-commit 83086ba91a20a444a3b151bd5e0f55037795a31a
-Author: Tatsuhiro Tsujikawa <tatsuhiro.t@gmail.com>
-AuthorDate: 2020-06-02
+AuthorDate: 2019-11-15
Commit: Tatsuhiro Tsujikawa <tatsuhiro.t@gmail.com>
-CommitDate: 2020-06-02
+CommitDate: 2019-11-15
Update manual pages
-commit c3b46625633cd9a4519f6fbcd9048127b84a5514
-Merge: 3eecc2ca f8da73bd
-Author: Tatsuhiro Tsujikawa <404610+tatsuhiro-t@users.noreply.github.com>
-AuthorDate: 2020-06-02
-Commit: GitHub <noreply@github.com>
-CommitDate: 2020-06-02
-
- Merge pull request from GHSA-q5wr-xfw9-q7xr
-
- Implement max settings option
-
-commit 3eecc2ca45530024abb687bf808ec768eaa5e98a
+commit 66d7b194d4e27c8a316cbc5e8dca1722394401a9
Author: Tatsuhiro Tsujikawa <tatsuhiro.t@gmail.com>
-AuthorDate: 2020-06-02
+AuthorDate: 2019-11-15
Commit: Tatsuhiro Tsujikawa <tatsuhiro.t@gmail.com>
-CommitDate: 2020-06-02
+CommitDate: 2019-11-15
- Bump version number to v1.41.0, LT revision to 34:0:20
+ Update AUTHORS
-commit 881c060d8c92c5246d9a6b5829e63838869bbaa9
+commit 41060943bdeff0ed575e3f0c011a0df17b9d8027
Author: Tatsuhiro Tsujikawa <tatsuhiro.t@gmail.com>
-AuthorDate: 2020-06-02
+AuthorDate: 2019-11-15
Commit: Tatsuhiro Tsujikawa <tatsuhiro.t@gmail.com>
-CommitDate: 2020-06-02
-
- Update AUTHORS
-
-commit f8da73bd042f810f34d19f9eae02b46d870af394
-Author: James M Snell <jasnell@gmail.com>
-AuthorDate: 2020-04-19
-Commit: James M Snell <jasnell@gmail.com>
-CommitDate: 2020-05-05
-
- Earlier check for settings flood
-
-commit 336a98feb0d56b9ac54e12736b18785c27f75090
-Author: James M Snell <jasnell@gmail.com>
-AuthorDate: 2020-04-17
-Commit: James M Snell <jasnell@gmail.com>
-CommitDate: 2020-05-05
+CommitDate: 2019-11-15
- Implement max settings option
+ Bump up version number to 1.40.0, LT revision to 33:0:19
-commit ef41583614e95efd12b6cce821e34837c1b28ed0
+commit 5ae9bb8925c1cb1e945b41d140367f27b3dd5c98
Author: Tatsuhiro Tsujikawa <tatsuhiro.t@gmail.com>
-AuthorDate: 2020-04-22
+AuthorDate: 2019-11-09
Commit: Tatsuhiro Tsujikawa <tatsuhiro.t@gmail.com>
-CommitDate: 2020-04-22
+CommitDate: 2019-11-09
- Revert "Add missing connection error handling"
-
- This reverts commit b7d16101413276884d7f51c64f989f5f61abecb8.
+ Fail fast if huffman decoding context is in failure state
-commit 979e6c5325826d06922f25047ffafb7ed92fa749
-Merge: b7d16101 c663349f
+commit bb519154fe62f7ff7e5eb7269e05043dec6d3682
+Merge: db9a8f6e 77f5487a
Author: Tatsuhiro Tsujikawa <404610+tatsuhiro-t@users.noreply.github.com>
-AuthorDate: 2020-04-21
+AuthorDate: 2019-11-02
Commit: GitHub <noreply@github.com>
-CommitDate: 2020-04-21
+CommitDate: 2019-11-02
- Merge pull request #1459 from nghttp2/proxyprotov2
+ Merge pull request #1413 from nghttp2/check-authority
- nghttpx: Add PROXY protocol version 2
+ Add nghttp2_check_authority as public API
-commit b7d16101413276884d7f51c64f989f5f61abecb8
+commit 77f5487a588f3c02a9671b7dd684186a5c34c1ea
Author: Tatsuhiro Tsujikawa <tatsuhiro.t@gmail.com>
-AuthorDate: 2020-04-21
+AuthorDate: 2019-11-02
Commit: Tatsuhiro Tsujikawa <tatsuhiro.t@gmail.com>
-CommitDate: 2020-04-21
+CommitDate: 2019-11-02
- Add missing connection error handling
+ Add nghttp2_check_authority as public API
-commit cd53bd81bfbf571a0f7836b5979e19702a76890f
-Merge: 3b17a659 e5625b8c
+commit db9a8f6efe6cc692e09c81fed200d159071566d1
+Merge: 6f28a69b 6ce4835e
Author: Tatsuhiro Tsujikawa <404610+tatsuhiro-t@users.noreply.github.com>
-AuthorDate: 2020-04-18
+AuthorDate: 2019-10-29
Commit: GitHub <noreply@github.com>
-CommitDate: 2020-04-18
+CommitDate: 2019-10-29
- Merge pull request #1460 from gportay/patch-1
+ Merge pull request #1409 from nghttp2/fix-wrong-stream-close-error-code
- Fix doc
+ Fix the bug that stream is closed with wrong error code
-commit e5625b8cf083b076c0fcb9d4b80749f30c75b4f7
-Author: Gaël PORTAY <gael.portay@gmail.com>
-AuthorDate: 2020-04-18
+commit 6f28a69b7d5bd93b67e2ca7af04bf9fa0b3c5c89
+Merge: d08c4395 29042f1c
+Author: Tatsuhiro Tsujikawa <404610+tatsuhiro-t@users.noreply.github.com>
+AuthorDate: 2019-10-29
Commit: GitHub <noreply@github.com>
-CommitDate: 2020-04-18
+CommitDate: 2019-10-29
- Fix doc
+ Merge pull request #1411 from richard78917/fix_warning
+
+ priority_spec::valid(): remove const qualifier from return value
-commit c663349f24b851865f4f1f5ca21de542a2e5c07f
+commit 6ce4835eeafe5bcea91c9672fcd3f9ef68ebd472
Author: Tatsuhiro Tsujikawa <tatsuhiro.t@gmail.com>
-AuthorDate: 2020-04-18
+AuthorDate: 2019-10-29
Commit: Tatsuhiro Tsujikawa <tatsuhiro.t@gmail.com>
-CommitDate: 2020-04-18
+CommitDate: 2019-10-29
- integration: Add PROXY protocol v2 tests
+ Fix the bug that stream is closed with wrong error code
+
+ This commit fixes the bug that stream is closed with wrong error code
+ (0). This happens when STREAM or DATA frame with END_STREAM flag set
+ is received and it violates HTTP messaging rule (i.e., content-length
+ does not match) and the other side of stream has been closed. In this
+ case, nghttp2_on_stream_close_callback should be called with nonzero
+ error code, but previously it is called with 0 (NO_ERROR).
+
+commit 29042f1c95ef5d17fde7e8d972d2af24e47adf1b
+Author: Richard Wolfert <richard.wolfert@mavenir.com>
+AuthorDate: 2019-10-29
+Commit: Richard Wolfert <richard.wolfert@mavenir.com>
+CommitDate: 2019-10-29
+
+ priority_spec::valid(): remove const qualifier from return value
+
+ gcc generates warning:
+ * type qualifiers ignored on function return type [-Wignored-qualifiers]
+
+commit d08c43951f5bf599dace882ed0e67ded2ff8519e
+Merge: 6f967c6e 5d6964cf
+Author: Tatsuhiro Tsujikawa <404610+tatsuhiro-t@users.noreply.github.com>
+AuthorDate: 2019-10-12
+Commit: GitHub <noreply@github.com>
+CommitDate: 2019-10-12
+
+ Merge pull request #1405 from nghttp2/huffman
+
+ Faster Huffman encoding/decoding
-commit 854e9fe395e928d31650a0f398897cc209064c90
+commit 5d6964cf81aaf41b4af5fdfbf4b06737bcb8f9a0
Author: Tatsuhiro Tsujikawa <tatsuhiro.t@gmail.com>
-AuthorDate: 2020-04-18
+AuthorDate: 2019-10-08
Commit: Tatsuhiro Tsujikawa <tatsuhiro.t@gmail.com>
-CommitDate: 2020-04-18
+CommitDate: 2019-10-12
- nghttpx: Always call init_forwarded_for
-
- Always call init_forwarded_for to get the default when source address
- in PROXY protocol is ignored. This ensures that forwarded header
- field has the same value as x-forwarded-for.
+ Faster huffman decoding
-commit c60ea227cc61294da0ea0355108c2f90d77f974a
+commit 0d855bfc1ba6e4201e21d7d130dbaad0907c8a3e
Author: Tatsuhiro Tsujikawa <tatsuhiro.t@gmail.com>
-AuthorDate: 2020-04-18
+AuthorDate: 2019-10-08
Commit: Tatsuhiro Tsujikawa <tatsuhiro.t@gmail.com>
-CommitDate: 2020-04-18
+CommitDate: 2019-10-12
- Update doc
+ Faster huffman encoding
-commit 49cd8e6e733a74d52d442a3d2667fd130d6437c8
+commit 6f967c6ef3ea5799b59a5cea6b6f4bec10d25b04
Author: Tatsuhiro Tsujikawa <tatsuhiro.t@gmail.com>
-AuthorDate: 2020-04-17
+AuthorDate: 2019-09-21
Commit: Tatsuhiro Tsujikawa <tatsuhiro.t@gmail.com>
-CommitDate: 2020-04-18
+CommitDate: 2019-09-21
- nghttpx: Add PROXY-protocol v2 support
+ Fix errors reported by coverity scan
-commit 3b17a659f69fb2ef5d2239142437da2902e61911
-Merge: 600fcdf5 dc7a7df6
+commit b8a43db84c5ce9a91cede2f4faf4706c1b3f4010
+Merge: 70b62c1a 28b1f0b9
Author: Tatsuhiro Tsujikawa <404610+tatsuhiro-t@users.noreply.github.com>
-AuthorDate: 2020-03-31
+AuthorDate: 2019-09-21
Commit: GitHub <noreply@github.com>
-CommitDate: 2020-03-31
+CommitDate: 2019-09-21
- Merge pull request #1453 from Leo-Neat/master
+ Merge pull request #1394 from wrowe/fix-static-libname
- Add CIFuzz
+ Avoid filename collision of static and dynamic lib
-commit 600fcdf52d60f67ecd936d61eaf0c7ecb8624075
-Merge: b3f85e2d 4922bb41
+commit 70b62c1a32eb56edc67eae0609949e0830ec14ad
+Merge: 1dd966f1 72b71a6b
Author: Tatsuhiro Tsujikawa <404610+tatsuhiro-t@users.noreply.github.com>
-AuthorDate: 2020-03-31
+AuthorDate: 2019-09-21
Commit: GitHub <noreply@github.com>
-CommitDate: 2020-03-31
+CommitDate: 2019-09-21
- Merge pull request #1455 from xjtian/long_serials
+ Merge pull request #1393 from wrowe/fix-static-msvcrt
- Fix get_x509_serial for long serial numbers
+ Add new flag ENABLE_STATIC_CRT for Windows
-commit 4922bb41d604a15483e12f1b33bac2bf6628d866
-Author: Jacky Tian <xjtian@fb.com>
-AuthorDate: 2020-03-31
-Commit: Jacky Tian <xjtian@fb.com>
-CommitDate: 2020-03-31
+commit 28b1f0b90f82cccb3f1977ed3b580d2c98421f94
+Author: William A Rowe Jr <wrowe@pivotal.io>
+AuthorDate: 2019-09-16
+Commit: William A Rowe Jr <wrowe@pivotal.io>
+CommitDate: 2019-09-16
- static_cast size parameter in StringRef constructor to size_t
+ Avoid filename collision of static and dynamic lib
+
+ Renames the output of the ENABLE_STATIC_LIB library/archive output
+ to nghttp2_static.lib/.a to avoid filenames colliding with the output
+ name for ENABLE_SHARED_LIB library/archive, when both are enabled.
+
+ Signed-off-by: William A Rowe Jr <wrowe@pivotal.io>
+ Signed-off-by: Yechiel Kalmenson <ykalmenson@pivotal.io>
-commit aad8697575d90b1763c31ad06986be0550917aac
-Author: Jacky Tian <xjtian@fb.com>
-AuthorDate: 2020-03-30
-Commit: Jacky Tian <xjtian@fb.com>
-CommitDate: 2020-03-31
+commit 1dd966f1897421fe10d1ad91cfe466526636fcad
+Merge: f8933fe5 fe8946dd
+Author: Tatsuhiro Tsujikawa <tatsuhiro.t@gmail.com>
+AuthorDate: 2019-09-17
+Commit: Tatsuhiro Tsujikawa <tatsuhiro.t@gmail.com>
+CommitDate: 2019-09-17
- Fix get_x509_serial for long serial numbers
+ Merge branch 'fix-nghttpx-mruby'
-commit dc7a7df61c7cd1cc05c9c09f827e564495c2bebe
-Author: Leo Neat <lneat@google.com>
-AuthorDate: 2020-03-18
-Commit: Leo Neat <lneat@google.com>
-CommitDate: 2020-03-18
+commit fe8946ddc7c081eb0b2f376fc99279121a3f2a8b
+Author: Tatsuhiro Tsujikawa <tatsuhiro.t@gmail.com>
+AuthorDate: 2019-09-16
+Commit: Tatsuhiro Tsujikawa <tatsuhiro.t@gmail.com>
+CommitDate: 2019-09-16
- Adding CIFuzz
+ nghttpx: Fix bug that mruby is incorrectly shared between backends
+
+ Previously, mruby context is wrongly shared by multiple patterns if
+ the underlying SharedDownstreamAddr is shared by multiple
+ DownstreamAddrGroups. This commit fixes it.
-commit b3f85e2daa629732ac3ebb092cd5543c26045e03
-Merge: ffb49c6c 2ec58551
-Author: Tatsuhiro Tsujikawa <404610+tatsuhiro-t@users.noreply.github.com>
-AuthorDate: 2020-02-20
-Commit: GitHub <noreply@github.com>
-CommitDate: 2020-02-20
+commit 72b71a6ba3f843bdea27f5c1cf926a5e1b152e48
+Author: William A Rowe Jr <wrowe@pivotal.io>
+AuthorDate: 2019-09-14
+Commit: William A Rowe Jr <wrowe@pivotal.io>
+CommitDate: 2019-09-14
- Merge pull request #1444 from nghttp2/fix-recv-window-flow-control-issue
+ Add new flag ENABLE_STATIC_CRT for Windows
+
+ This change adds the CMake option;
+
+ ENABLE_STATIC_CRT Build libnghttp2 against the MS LIBCMT[d]
- Fix receiving stream data stall
+ This avoids linking to msvcrt.lib for binaries to compile (/MT[d])
+ and link against the static C Runtime libcrt.lib, and
+ avoiding the msvcrt[d].dll dependency.
+
+ Signed-off-by: William A Rowe Jr <wrowe@pivotal.io>
+ Signed-off-by: Yechiel Kalmenson <ykalmenson@pivotal.io>
-commit ffb49c6c589617d6c9a4172464b9100b377e56f9
-Merge: 459df42b 866eadb5
-Author: Tatsuhiro Tsujikawa <404610+tatsuhiro-t@users.noreply.github.com>
-AuthorDate: 2020-02-20
-Commit: GitHub <noreply@github.com>
-CommitDate: 2020-02-20
+commit f8933fe50468413eb149df7e331e7335400f1649
+Author: Tatsuhiro Tsujikawa <tatsuhiro.t@gmail.com>
+AuthorDate: 2019-09-07
+Commit: Tatsuhiro Tsujikawa <tatsuhiro.t@gmail.com>
+CommitDate: 2019-09-07
- Merge pull request #1435 from geoffhill/master
+ nghttpx: Reconnect h1 backend if it lost connection before sending headers
- Enable session_create_idle_stream test, fix errors
+ This is the second attempt. The first attempt was
+ 8a59ce6d37471ec7a437d4700cabd98c55115b1e and it failed.
-commit 2ec585518e83bec7de8deb0d429cd744d99fc72b
+commit 89c33d690fd4667dd07c5791638eb6a4653a7f73
Author: Tatsuhiro Tsujikawa <tatsuhiro.t@gmail.com>
-AuthorDate: 2020-02-19
+AuthorDate: 2019-09-07
Commit: Tatsuhiro Tsujikawa <tatsuhiro.t@gmail.com>
-CommitDate: 2020-02-20
+CommitDate: 2019-09-07
- Fix receiving stream data stall
-
- Previously, if automatic window update is enabled (which is default),
- after window size is set to 0 by
- nghttp2_session_set_local_window_size, once the receiving window is
- exhausted, even after window size is increased by
- nghttp2_session_set_local_window_size, no more data cannot be
- received. This is because nghttp2_session_set_local_window_size does
- not submit WINDOW_UPDATE. It is only triggered when new data arrives
- but since window is filled up, no more data cannot be received, thus
- dead lock happens.
-
- This commit fixes this issue. nghttp2_session_set_local_window_size
- submits WINDOW_UPDATE if necessary.
-
- https://github.com/curl/curl/issues/4939
+ Update neverbleed
-commit 459df42b8b074dffd40ac1f95fc65ad099050a7a
-Merge: 5e13274b a4c1fed5
-Author: Tatsuhiro Tsujikawa <404610+tatsuhiro-t@users.noreply.github.com>
-AuthorDate: 2020-02-11
-Commit: GitHub <noreply@github.com>
-CommitDate: 2020-02-11
+commit 7079dc5e753c1881aa6f162bbb4a9bb6d44e79ed
+Author: Tatsuhiro Tsujikawa <tatsuhiro.t@gmail.com>
+AuthorDate: 2019-09-06
+Commit: Tatsuhiro Tsujikawa <tatsuhiro.t@gmail.com>
+CommitDate: 2019-09-06
- Merge pull request #1442 from nghttp2/upgrade-llhttp
+ Update neverbleed to fix memory leak
+
+commit 5080db84e267d9b036c08ac7b2de8b7696c4d6b2
+Author: Tatsuhiro Tsujikawa <tatsuhiro.t@gmail.com>
+AuthorDate: 2019-09-06
+Commit: Tatsuhiro Tsujikawa <tatsuhiro.t@gmail.com>
+CommitDate: 2019-09-06
+
+ Revert "nghttpx: Reconnect h1 backend if it lost connection before sending headers"
- Bump llhttp to 2.0.4
+ This reverts commit 8a59ce6d37471ec7a437d4700cabd98c55115b1e.
+
+commit 053c7ac5889c280e1108b2bdd40c48d40920172a
+Author: Tatsuhiro Tsujikawa <tatsuhiro.t@gmail.com>
+AuthorDate: 2019-09-03
+Commit: Tatsuhiro Tsujikawa <tatsuhiro.t@gmail.com>
+CommitDate: 2019-09-03
+
+ nghttpx: Returns 408 if backend timed out before sending headers
-commit a4c1fed5139b2df7ce611a519a7b1d69aee3bae0
+commit 8a59ce6d37471ec7a437d4700cabd98c55115b1e
Author: Tatsuhiro Tsujikawa <tatsuhiro.t@gmail.com>
-AuthorDate: 2020-02-11
+AuthorDate: 2019-09-03
Commit: Tatsuhiro Tsujikawa <tatsuhiro.t@gmail.com>
-CommitDate: 2020-02-11
+CommitDate: 2019-09-03
- Bump llhttp to 2.0.4
+ nghttpx: Reconnect h1 backend if it lost connection before sending headers
-commit 866eadb5de0f859d30272f5359a79c195271cd6c
-Author: Geoff Hill <geoffhill@fb.com>
-AuthorDate: 2020-01-23
-Commit: Geoff Hill <geoffhill@fb.com>
-CommitDate: 2020-01-23
+commit f2fde180cdcca1f0a1c12d097c92510a887f6500
+Author: Tatsuhiro Tsujikawa <tatsuhiro.t@gmail.com>
+AuthorDate: 2019-08-19
+Commit: Tatsuhiro Tsujikawa <tatsuhiro.t@gmail.com>
+CommitDate: 2019-08-19
- Enable session_create_idle_stream test, fix errors
-
- Add the currently-unused `test_nghttp2_session_create_idle_stream()`
- function to the test suite definition.
-
- Modify the test in two places to make it pass:
+ Remove redundant null check before delete
- * Use stream ID=10 as the priority stream ID to test automatic creation
- of streams for priority specs. The code below checks against stream
- ID=10 so I assume this was a typo in the test.
-
- * Set the `last_sent_stream_id` instead of the `next_stream_id` to test
- that idle streams cannot be created with smaller numbers than the
- most-recently-seen stream ID. Looking at the validation path in
- `session_detect_idle_stream()`, I think this was another test typo.
+ Reported in https://github.com/nghttp2/nghttp2/issues/1384
+
+commit 95efb3e19d174354ca50c65d5d7227d92bcd60e1
+Author: Tatsuhiro Tsujikawa <tatsuhiro.t@gmail.com>
+AuthorDate: 2019-06-25
+Commit: Tatsuhiro Tsujikawa <tatsuhiro.t@gmail.com>
+CommitDate: 2019-08-14
+
+ Don't read too greedily
+
+commit 0a6ce87c22c69438ecbffe52a2859c3a32f1620f
+Author: Tatsuhiro Tsujikawa <tatsuhiro.t@gmail.com>
+AuthorDate: 2019-06-25
+Commit: Tatsuhiro Tsujikawa <tatsuhiro.t@gmail.com>
+CommitDate: 2019-08-14
+
+ Add nghttp2_option_set_max_outbound_ack
-commit 5e13274b7c533b00f2a14582de5f6b34c08b0018
+commit 2aa79fa91d2714ad704277c1c027c7f18cdd94f0
Author: Tatsuhiro Tsujikawa <tatsuhiro.t@gmail.com>
-AuthorDate: 2019-12-21
+AuthorDate: 2019-08-14
Commit: Tatsuhiro Tsujikawa <tatsuhiro.t@gmail.com>
-CommitDate: 2019-12-21
+CommitDate: 2019-08-14
- Fix typo
+ Bump up LT revision to 32:0:18
-commit e0d7f7de5e58b2e9abd92ee3384f78e91d018503
+commit 3980678d24ff1bd84b95ec88d1acc07326af3e62
+Merge: 448bbbc3 319d5ab1
Author: Tatsuhiro Tsujikawa <tatsuhiro.t@gmail.com>
-AuthorDate: 2019-12-21
+AuthorDate: 2019-08-06
Commit: Tatsuhiro Tsujikawa <tatsuhiro.t@gmail.com>
-CommitDate: 2019-12-21
+CommitDate: 2019-08-06
- h2load: Allow port in --connect-to
+ Merge branch 'nghttpx-fix-request-stall'
-commit df575f968fa3d82fb40c2637e7d3e245def43766
-Author: lucas <lucas@cloudflare.com>
-AuthorDate: 2019-12-12
+commit 319d5ab1c6d916b6b8a0d85b2ae3f01b3ad04f2c
+Author: Tatsuhiro Tsujikawa <tatsuhiro.t@gmail.com>
+AuthorDate: 2019-08-06
Commit: Tatsuhiro Tsujikawa <tatsuhiro.t@gmail.com>
-CommitDate: 2019-12-21
+CommitDate: 2019-08-06
- h2load: add --connect-to option
+ nghttpx: Fix request stall
+
+ Fix request stall if backend connection is reused and buffer is full.
-commit 1fff737955d3e080d4e4be9ecb615c83fd3fd767
+commit 448bbbc38c0f260447d0aae579d678885aa0f16c
Author: Tatsuhiro Tsujikawa <tatsuhiro.t@gmail.com>
-AuthorDate: 2019-12-18
+AuthorDate: 2019-08-06
Commit: Tatsuhiro Tsujikawa <tatsuhiro.t@gmail.com>
-CommitDate: 2019-12-18
+CommitDate: 2019-08-06
- clang-format-9
+ integration-tests: gofmt
-commit b40c6c862fafe87fa32b28bf040456b064482893
-Merge: 2d5f7659 9bc2c75e
+commit e575a2aad99fe57126ad817c57356ea0ce51d213
+Merge: 7a590893 4f7aedc9
Author: Tatsuhiro Tsujikawa <404610+tatsuhiro-t@users.noreply.github.com>
-AuthorDate: 2019-12-08
+AuthorDate: 2019-08-01
Commit: GitHub <noreply@github.com>
-CommitDate: 2019-12-08
+CommitDate: 2019-08-01
- Merge pull request #1418 from vszakats/patch-1
+ Merge pull request #1377 from Aldrog/cmake_systemd
- lib/CMakeLists.txt: Make hard-coded static lib suffix optional
+ Support building nghttpx with systemd using cmake
-commit 9bc2c75e388fbb5e6e694ef4471bd63521c966ae
-Author: Viktor Szakats <vszakats@users.noreply.github.com>
-AuthorDate: 2019-11-15
-Commit: Viktor Szakats <commit@vsz.me>
-CommitDate: 2019-11-15
+commit 4f7aedc9d274183f4db17634d320a6d60ef2edb5
+Author: Andrew Penkrat <Andrey.Penkrat@lanit-tercom.com>
+AuthorDate: 2019-07-29
+Commit: Andrew Penkrat <Andrey.Penkrat@lanit-tercom.com>
+CommitDate: 2019-07-29
- lib/CMakeLists.txt: Make hard-coded static lib suffix optional
-
- It can be set via the `STATIC_LIB_SUFFIX` variable.
-
- This fixes every existing dependent project that relied on the name
- having no suffix and thus capable of using either a static or shared
- flavour depending on which one is present on this or how the linker
- is configured.
-
- Ref: https://github.com/nghttp2/nghttp2/pull/1394
+ cmake: Support building nghttpx with systemd
-commit 2d5f76594a8c4e11d6e2a70588c01433f214150b
+commit 7a5908933e55297ce2d8a0217391663ddf0c3f31
Author: Tatsuhiro Tsujikawa <tatsuhiro.t@gmail.com>
-AuthorDate: 2019-11-15
+AuthorDate: 2019-06-22
Commit: Tatsuhiro Tsujikawa <tatsuhiro.t@gmail.com>
-CommitDate: 2019-11-15
+CommitDate: 2019-06-22
+
+ Fix clang-8 warning
+
+commit ee4431344511886efc66395a38b9bf5dddd7151b
+Author: Tatsuhiro Tsujikawa <tatsuhiro.t@gmail.com>
+AuthorDate: 2019-06-11
+Commit: Tatsuhiro Tsujikawa <tatsuhiro.t@gmail.com>
+CommitDate: 2019-06-11
+
+ Fix FPE with default backend
+
+commit abef9b90ef2ba35ec25adbca7cb8d0b9a6c2d044
+Author: Tatsuhiro Tsujikawa <tatsuhiro.t@gmail.com>
+AuthorDate: 2019-06-11
+Commit: Tatsuhiro Tsujikawa <tatsuhiro.t@gmail.com>
+CommitDate: 2019-06-11
+
+ Fix log-level is not set with cmd-line or configuration file
+
+commit 12a999f0b8bc67706fdd5ff9b134ab67d495c76a
+Author: Tatsuhiro Tsujikawa <tatsuhiro.t@gmail.com>
+AuthorDate: 2019-06-11
+Commit: Tatsuhiro Tsujikawa <tatsuhiro.t@gmail.com>
+CommitDate: 2019-06-11
- Bump up version number to 1.41.0-DEV
+ Bump up version number to 1.40.0-DEV
#include <stdint.h>
#include <string.h>
-#ifdef __SSE4_2__
- #ifdef _MSC_VER
- #include <nmmintrin.h>
- #else /* !_MSC_VER */
- #include <x86intrin.h>
- #endif /* _MSC_VER */
-#endif /* __SSE4_2__ */
-
-#ifdef _MSC_VER
- #define ALIGN(n) _declspec(align(n))
-#else /* !_MSC_VER */
- #define ALIGN(n) __attribute__((aligned(n)))
-#endif /* _MSC_VER */
-
#include "llhttp.h"
typedef int (*llhttp__internal__span_cb)(
static const unsigned char llparse_blob0[] = {
'C', 'L'
};
-#ifdef __SSE4_2__
-static const unsigned char ALIGN(16) llparse_blob1[] = {
- 0x9, 0x9, 0xc, 0xc, '!', '"', '$', '>', '@', '~', 0x80,
- 0xff, 0x0, 0x0, 0x0, 0x0
-};
-#endif /* __SSE4_2__ */
-static const unsigned char llparse_blob2[] = {
+static const unsigned char llparse_blob1[] = {
'o', 'n'
};
-static const unsigned char llparse_blob3[] = {
+static const unsigned char llparse_blob2[] = {
'e', 'c', 't', 'i', 'o', 'n'
};
-static const unsigned char llparse_blob4[] = {
+static const unsigned char llparse_blob3[] = {
'l', 'o', 's', 'e'
};
-static const unsigned char llparse_blob5[] = {
+static const unsigned char llparse_blob4[] = {
'e', 'e', 'p', '-', 'a', 'l', 'i', 'v', 'e'
};
-static const unsigned char llparse_blob6[] = {
+static const unsigned char llparse_blob5[] = {
'p', 'g', 'r', 'a', 'd', 'e'
};
-#ifdef __SSE4_2__
-static const unsigned char ALIGN(16) llparse_blob7[] = {
- 0x9, 0x9, ' ', '~', 0x80, 0xfe, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0x0, 0x0
-};
-#endif /* __SSE4_2__ */
-static const unsigned char llparse_blob8[] = {
- 'c', 'h', 'u', 'n', 'k', 'e', 'd'
-};
-#ifdef __SSE4_2__
-static const unsigned char ALIGN(16) llparse_blob9[] = {
- ' ', '!', '#', '\'', '*', '+', '-', '.', '0', '9', 'A',
- 'Z', '^', 'z', '|', '|'
-};
-#endif /* __SSE4_2__ */
-#ifdef __SSE4_2__
-static const unsigned char ALIGN(16) llparse_blob10[] = {
- '~', '~', 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0x0, 0x0
+static const unsigned char llparse_blob6[] = {
+ 'h', 'u', 'n', 'k', 'e', 'd'
};
-#endif /* __SSE4_2__ */
-static const unsigned char llparse_blob11[] = {
+static const unsigned char llparse_blob7[] = {
'e', 'n', 't', '-', 'l', 'e', 'n', 'g', 't', 'h'
};
-static const unsigned char llparse_blob12[] = {
+static const unsigned char llparse_blob8[] = {
'r', 'o', 'x', 'y', '-', 'c', 'o', 'n', 'n', 'e', 'c',
't', 'i', 'o', 'n'
};
-static const unsigned char llparse_blob13[] = {
+static const unsigned char llparse_blob9[] = {
'r', 'a', 'n', 's', 'f', 'e', 'r', '-', 'e', 'n', 'c',
'o', 'd', 'i', 'n', 'g'
};
-static const unsigned char llparse_blob14[] = {
+static const unsigned char llparse_blob10[] = {
'p', 'g', 'r', 'a', 'd', 'e'
};
-static const unsigned char llparse_blob15[] = {
+static const unsigned char llparse_blob11[] = {
0xd, 0xa
};
-static const unsigned char llparse_blob16[] = {
+static const unsigned char llparse_blob12[] = {
'T', 'T', 'P', '/'
};
-static const unsigned char llparse_blob17[] = {
+static const unsigned char llparse_blob13[] = {
'C', 'E', '/'
};
-static const unsigned char llparse_blob18[] = {
+static const unsigned char llparse_blob14[] = {
'I', 'N', 'D'
};
-static const unsigned char llparse_blob19[] = {
+static const unsigned char llparse_blob15[] = {
'E', 'C', 'K', 'O', 'U', 'T'
};
-static const unsigned char llparse_blob20[] = {
+static const unsigned char llparse_blob16[] = {
'N', 'E', 'C', 'T'
};
-static const unsigned char llparse_blob21[] = {
+static const unsigned char llparse_blob17[] = {
'E', 'L', 'E', 'T', 'E'
};
-static const unsigned char llparse_blob22[] = {
+static const unsigned char llparse_blob18[] = {
'E', 'T'
};
-static const unsigned char llparse_blob23[] = {
+static const unsigned char llparse_blob19[] = {
'E', 'A', 'D'
};
-static const unsigned char llparse_blob24[] = {
+static const unsigned char llparse_blob20[] = {
'N', 'K'
};
-static const unsigned char llparse_blob25[] = {
+static const unsigned char llparse_blob21[] = {
'C', 'K'
};
-static const unsigned char llparse_blob26[] = {
+static const unsigned char llparse_blob22[] = {
'S', 'E', 'A', 'R', 'C', 'H'
};
-static const unsigned char llparse_blob27[] = {
+static const unsigned char llparse_blob23[] = {
'R', 'G', 'E'
};
-static const unsigned char llparse_blob28[] = {
+static const unsigned char llparse_blob24[] = {
'C', 'T', 'I', 'V', 'I', 'T', 'Y'
};
-static const unsigned char llparse_blob29[] = {
+static const unsigned char llparse_blob25[] = {
'L', 'E', 'N', 'D', 'A', 'R'
};
-static const unsigned char llparse_blob30[] = {
+static const unsigned char llparse_blob26[] = {
'V', 'E'
};
-static const unsigned char llparse_blob31[] = {
+static const unsigned char llparse_blob27[] = {
'O', 'T', 'I', 'F', 'Y'
};
-static const unsigned char llparse_blob32[] = {
+static const unsigned char llparse_blob28[] = {
'P', 'T', 'I', 'O', 'N', 'S'
};
-static const unsigned char llparse_blob33[] = {
+static const unsigned char llparse_blob29[] = {
'T', 'C', 'H'
};
-static const unsigned char llparse_blob34[] = {
+static const unsigned char llparse_blob30[] = {
'S', 'T'
};
-static const unsigned char llparse_blob35[] = {
+static const unsigned char llparse_blob31[] = {
'O', 'P'
};
-static const unsigned char llparse_blob36[] = {
+static const unsigned char llparse_blob32[] = {
'I', 'N', 'D'
};
-static const unsigned char llparse_blob37[] = {
+static const unsigned char llparse_blob33[] = {
'A', 'T', 'C', 'H'
};
-static const unsigned char llparse_blob38[] = {
+static const unsigned char llparse_blob34[] = {
'G', 'E'
};
-static const unsigned char llparse_blob39[] = {
+static const unsigned char llparse_blob35[] = {
'I', 'N', 'D'
};
-static const unsigned char llparse_blob40[] = {
+static const unsigned char llparse_blob36[] = {
'O', 'R', 'T'
};
-static const unsigned char llparse_blob41[] = {
+static const unsigned char llparse_blob37[] = {
'A', 'R', 'C', 'H'
};
-static const unsigned char llparse_blob42[] = {
+static const unsigned char llparse_blob38[] = {
'U', 'R', 'C', 'E'
};
-static const unsigned char llparse_blob43[] = {
+static const unsigned char llparse_blob39[] = {
'B', 'S', 'C', 'R', 'I', 'B', 'E'
};
-static const unsigned char llparse_blob44[] = {
+static const unsigned char llparse_blob40[] = {
'R', 'A', 'C', 'E'
};
-static const unsigned char llparse_blob45[] = {
+static const unsigned char llparse_blob41[] = {
'I', 'N', 'D'
};
-static const unsigned char llparse_blob46[] = {
+static const unsigned char llparse_blob42[] = {
'N', 'K'
};
-static const unsigned char llparse_blob47[] = {
+static const unsigned char llparse_blob43[] = {
'C', 'K'
};
-static const unsigned char llparse_blob48[] = {
+static const unsigned char llparse_blob44[] = {
'U', 'B', 'S', 'C', 'R', 'I', 'B', 'E'
};
-static const unsigned char llparse_blob49[] = {
+static const unsigned char llparse_blob45[] = {
'H', 'T', 'T', 'P', '/'
};
-static const unsigned char llparse_blob50[] = {
+static const unsigned char llparse_blob46[] = {
'A', 'D'
};
-static const unsigned char llparse_blob51[] = {
+static const unsigned char llparse_blob47[] = {
'T', 'P', '/'
};
s_n_llhttp__internal__n_header_value_discard_ws_almost_done,
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_header_value_otherwise,
s_n_llhttp__internal__n_header_value_connection_token,
s_n_llhttp__internal__n_header_value_connection_ws,
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_18,
+ s_n_llhttp__internal__n_error_15,
s_n_llhttp__internal__n_header_value,
s_n_llhttp__internal__n_header_value_discard_rws,
- s_n_llhttp__internal__n_error_19,
+ s_n_llhttp__internal__n_error_16,
s_n_llhttp__internal__n_header_value_content_length_ws,
s_n_llhttp__internal__n_header_value_content_length,
- s_n_llhttp__internal__n_header_value_te_chunked_last,
- s_n_llhttp__internal__n_header_value_te_token_ows,
- s_n_llhttp__internal__n_header_value_te_token,
+ s_n_llhttp__internal__n_header_value_te_chunked_1,
s_n_llhttp__internal__n_header_value_te_chunked,
s_n_llhttp__internal__n_span_start_llhttp__on_header_value_1,
s_n_llhttp__internal__n_header_value_discard_ws,
llhttp__internal_t* s, const unsigned char* p,
const unsigned char* endp);
-int llhttp__internal__c_update_finish_1(
- llhttp__internal_t* state,
- const unsigned char* p,
- const unsigned char* endp) {
- state->finish = 0;
- return 0;
-}
-
int llhttp__internal__c_test_flags_1(
llhttp__internal_t* state,
const unsigned char* p,
const unsigned char* endp) {
- return (state->flags & 544) == 544;
-}
-
-int llhttp__internal__c_test_flags_2(
- llhttp__internal_t* state,
- const unsigned char* p,
- const unsigned char* endp) {
- return (state->flags & 256) == 256;
-}
-
-int llhttp__internal__c_test_flags_3(
- llhttp__internal_t* state,
- const unsigned char* p,
- const unsigned char* endp) {
return (state->flags & 40) == 40;
}
return 0;
}
-int llhttp__internal__c_update_finish_2(
+int llhttp__internal__c_update_finish_1(
llhttp__internal_t* state,
const unsigned char* p,
const unsigned char* endp) {
return 0;
}
-int llhttp__internal__c_test_flags_5(
+int llhttp__internal__c_test_flags_2(
llhttp__internal_t* state,
const unsigned char* p,
const unsigned char* endp) {
return 0;
}
-int llhttp__internal__c_or_flags_16(
- llhttp__internal_t* state,
- const unsigned char* p,
- const unsigned char* endp) {
- state->flags |= 512;
- return 0;
-}
-
int llhttp__internal__c_update_header_state_8(
llhttp__internal_t* state,
const unsigned char* p,
return 0;
}
-int llhttp__internal__c_or_flags_17(
+int llhttp__internal__c_or_flags_16(
llhttp__internal_t* state,
const unsigned char* p,
const unsigned char* endp) {
s_n_llhttp__internal__n_invoke_llhttp__after_message_complete: {
switch (llhttp__after_message_complete(state, p, endp)) {
default:
- goto s_n_llhttp__internal__n_invoke_update_finish_1;
+ goto s_n_llhttp__internal__n_start;
}
/* UNREACHABLE */;
abort();
}
case s_n_llhttp__internal__n_pause_1:
s_n_llhttp__internal__n_pause_1: {
- state->error = 0x16;
+ state->error = 0x15;
state->reason = "Pause on CONNECT/Upgrade";
state->error_pos = (const char*) p;
state->_current = (void*) (intptr_t) s_n_llhttp__internal__n_invoke_llhttp__after_message_complete;
switch (llhttp__on_message_complete(state, p, endp)) {
case 0:
goto s_n_llhttp__internal__n_invoke_is_equal_upgrade;
- case 21:
+ case 20:
goto s_n_llhttp__internal__n_pause_5;
default:
goto s_n_llhttp__internal__n_error_9;
}
state->_span_pos0 = (void*) p;
state->_span_cb0 = llhttp__on_body;
- goto s_n_llhttp__internal__n_eof;
+ goto s_n_llhttp__internal__n_invoke_update_finish_1;
/* UNREACHABLE */;
abort();
}
case 3:
goto s_n_llhttp__internal__n_span_start_llhttp__on_body_1;
case 4:
- goto s_n_llhttp__internal__n_invoke_update_finish_2;
- case 5:
- goto s_n_llhttp__internal__n_error_10;
+ goto s_n_llhttp__internal__n_span_start_llhttp__on_body_2;
default:
goto s_n_llhttp__internal__n_invoke_llhttp__on_message_complete;
}
goto s_n_llhttp__internal__n_span_start_llhttp__on_header_value_1;
}
default: {
- goto s_n_llhttp__internal__n_invoke_load_header_state_3;
+ goto s_n_llhttp__internal__n_invoke_load_header_state_2;
}
}
/* UNREACHABLE */;
goto s_n_llhttp__internal__n_header_value_lws;
}
default: {
- goto s_n_llhttp__internal__n_error_15;
- }
- }
- /* UNREACHABLE */;
- abort();
- }
- case s_n_llhttp__internal__n_header_value_lenient:
- s_n_llhttp__internal__n_header_value_lenient: {
- if (p == endp) {
- return s_n_llhttp__internal__n_header_value_lenient;
- }
- switch (*p) {
- case 10: {
- goto s_n_llhttp__internal__n_span_end_llhttp__on_header_value_1;
- }
- case 13: {
- goto s_n_llhttp__internal__n_span_end_llhttp__on_header_value_3;
- }
- default: {
- p++;
- goto s_n_llhttp__internal__n_header_value_lenient;
+ goto s_n_llhttp__internal__n_error_12;
}
}
/* UNREACHABLE */;
goto s_n_llhttp__internal__n_span_end_llhttp__on_header_value_2;
}
default: {
- goto s_n_llhttp__internal__n_invoke_test_flags_4;
+ goto s_n_llhttp__internal__n_error_13;
}
}
/* UNREACHABLE */;
}
case ',': {
p++;
- goto s_n_llhttp__internal__n_invoke_load_header_state_4;
+ goto s_n_llhttp__internal__n_invoke_load_header_state_3;
}
default: {
goto s_n_llhttp__internal__n_invoke_update_header_state_4;
if (p == endp) {
return s_n_llhttp__internal__n_header_value_connection_1;
}
- match_seq = llparse__match_sequence_to_lower_unsafe(state, p, endp, llparse_blob4, 4);
+ match_seq = llparse__match_sequence_to_lower_unsafe(state, p, endp, llparse_blob3, 4);
p = match_seq.current;
switch (match_seq.status) {
case kMatchComplete: {
if (p == endp) {
return s_n_llhttp__internal__n_header_value_connection_2;
}
- match_seq = llparse__match_sequence_to_lower_unsafe(state, p, endp, llparse_blob5, 9);
+ match_seq = llparse__match_sequence_to_lower_unsafe(state, p, endp, llparse_blob4, 9);
p = match_seq.current;
switch (match_seq.status) {
case kMatchComplete: {
if (p == endp) {
return s_n_llhttp__internal__n_header_value_connection_3;
}
- match_seq = llparse__match_sequence_to_lower_unsafe(state, p, endp, llparse_blob6, 6);
+ match_seq = llparse__match_sequence_to_lower_unsafe(state, p, endp, llparse_blob5, 6);
p = match_seq.current;
switch (match_seq.status) {
case kMatchComplete: {
/* UNREACHABLE */;
abort();
}
- case s_n_llhttp__internal__n_error_18:
- s_n_llhttp__internal__n_error_18: {
+ case s_n_llhttp__internal__n_error_15:
+ s_n_llhttp__internal__n_error_15: {
state->error = 0xb;
state->reason = "Content-Length overflow";
state->error_pos = (const char*) p;
if (p == endp) {
return s_n_llhttp__internal__n_header_value;
}
- #ifdef __SSE4_2__
- if (endp - p >= 16) {
- __m128i ranges;
- __m128i input;
- int avail;
- int match_len;
-
- /* Load input */
- input = _mm_loadu_si128((__m128i const*) p);
- ranges = _mm_loadu_si128((__m128i const*) llparse_blob7);
-
- /* Find first character that does not match `ranges` */
- match_len = _mm_cmpestri(ranges, 6,
- input, 16,
- _SIDD_UBYTE_OPS | _SIDD_CMP_RANGES |
- _SIDD_NEGATIVE_POLARITY);
-
- if (match_len != 0) {
- p += match_len;
- goto s_n_llhttp__internal__n_header_value;
- }
- goto s_n_llhttp__internal__n_header_value_otherwise;
- }
- #endif /* __SSE4_2__ */
switch (lookup_table[(uint8_t) *p]) {
case 1: {
p++;
/* UNREACHABLE */;
abort();
}
- case s_n_llhttp__internal__n_error_19:
- s_n_llhttp__internal__n_error_19: {
+ case s_n_llhttp__internal__n_error_16:
+ s_n_llhttp__internal__n_error_16: {
state->error = 0xb;
state->reason = "Invalid character in Content-Length";
state->error_pos = (const char*) p;
goto s_n_llhttp__internal__n_header_value_content_length_ws;
}
default: {
- goto s_n_llhttp__internal__n_span_end_llhttp__on_header_value_5;
+ goto s_n_llhttp__internal__n_span_end_llhttp__on_header_value_4;
}
}
/* UNREACHABLE */;
/* UNREACHABLE */;
abort();
}
- case s_n_llhttp__internal__n_header_value_te_chunked_last:
- s_n_llhttp__internal__n_header_value_te_chunked_last: {
+ case s_n_llhttp__internal__n_header_value_te_chunked_1:
+ s_n_llhttp__internal__n_header_value_te_chunked_1: {
+ llparse_match_t match_seq;
+
if (p == endp) {
- return s_n_llhttp__internal__n_header_value_te_chunked_last;
+ return s_n_llhttp__internal__n_header_value_te_chunked_1;
}
- switch (*p) {
- case 10: {
- goto s_n_llhttp__internal__n_invoke_update_header_state_8;
- }
- case 13: {
+ match_seq = llparse__match_sequence_to_lower_unsafe(state, p, endp, llparse_blob6, 6);
+ p = match_seq.current;
+ switch (match_seq.status) {
+ case kMatchComplete: {
+ p++;
goto s_n_llhttp__internal__n_invoke_update_header_state_8;
}
- case ' ': {
- p++;
- goto s_n_llhttp__internal__n_header_value_te_chunked_last;
+ case kMatchPause: {
+ return s_n_llhttp__internal__n_header_value_te_chunked_1;
}
- default: {
- goto s_n_llhttp__internal__n_header_value_te_chunked;
+ case kMatchMismatch: {
+ goto s_n_llhttp__internal__n_invoke_update_header_state_7;
}
}
/* UNREACHABLE */;
abort();
}
- case s_n_llhttp__internal__n_header_value_te_token_ows:
- s_n_llhttp__internal__n_header_value_te_token_ows: {
+ case s_n_llhttp__internal__n_header_value_te_chunked:
+ s_n_llhttp__internal__n_header_value_te_chunked: {
if (p == endp) {
- return s_n_llhttp__internal__n_header_value_te_token_ows;
+ return s_n_llhttp__internal__n_header_value_te_chunked;
}
- switch (*p) {
- case 9: {
- p++;
- goto s_n_llhttp__internal__n_header_value_te_token_ows;
- }
- case ' ': {
- p++;
- goto s_n_llhttp__internal__n_header_value_te_token_ows;
+ switch (((*p) | 0x20)) {
+ case 10: {
+ goto s_n_llhttp__internal__n_header_value_discard_rws;
}
- default: {
- goto s_n_llhttp__internal__n_header_value_te_chunked;
+ case 13: {
+ goto s_n_llhttp__internal__n_header_value_discard_rws;
}
- }
- /* UNREACHABLE */;
- abort();
- }
- case s_n_llhttp__internal__n_header_value_te_token:
- s_n_llhttp__internal__n_header_value_te_token: {
- static uint8_t lookup_table[] = {
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1,
- 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
- 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
- 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
- 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
- 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0,
- 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
- 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
- 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
- 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
- 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
- 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
- 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
- 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0
- };
- if (p == endp) {
- return s_n_llhttp__internal__n_header_value_te_token;
- }
- switch (lookup_table[(uint8_t) *p]) {
- case 1: {
- p++;
- goto s_n_llhttp__internal__n_header_value_te_token;
+ case ' ': {
+ goto s_n_llhttp__internal__n_header_value_discard_rws;
}
- case 2: {
+ case 'c': {
p++;
- goto s_n_llhttp__internal__n_header_value_te_token_ows;
+ goto s_n_llhttp__internal__n_header_value_te_chunked_1;
}
default: {
goto s_n_llhttp__internal__n_invoke_update_header_state_7;
/* UNREACHABLE */;
abort();
}
- case s_n_llhttp__internal__n_header_value_te_chunked:
- s_n_llhttp__internal__n_header_value_te_chunked: {
- llparse_match_t match_seq;
-
- if (p == endp) {
- return s_n_llhttp__internal__n_header_value_te_chunked;
- }
- match_seq = llparse__match_sequence_to_lower_unsafe(state, p, endp, llparse_blob8, 7);
- p = match_seq.current;
- switch (match_seq.status) {
- case kMatchComplete: {
- p++;
- goto s_n_llhttp__internal__n_header_value_te_chunked_last;
- }
- case kMatchPause: {
- return s_n_llhttp__internal__n_header_value_te_chunked;
- }
- case kMatchMismatch: {
- goto s_n_llhttp__internal__n_header_value_te_token;
- }
- }
- /* UNREACHABLE */;
- abort();
- }
case s_n_llhttp__internal__n_span_start_llhttp__on_header_value_1:
s_n_llhttp__internal__n_span_start_llhttp__on_header_value_1: {
if (p == endp) {
}
state->_span_pos0 = (void*) p;
state->_span_cb0 = llhttp__on_header_value;
- goto s_n_llhttp__internal__n_invoke_load_header_state_2;
+ goto s_n_llhttp__internal__n_invoke_load_header_state_1;
/* UNREACHABLE */;
abort();
}
goto s_n_llhttp__internal__n_span_end_llhttp__on_header_field_1;
}
default: {
- goto s_n_llhttp__internal__n_error_20;
+ goto s_n_llhttp__internal__n_error_17;
}
}
/* UNREACHABLE */;
if (p == endp) {
return s_n_llhttp__internal__n_header_field_general;
}
- #ifdef __SSE4_2__
- if (endp - p >= 16) {
- __m128i ranges;
- __m128i input;
- int avail;
- int match_len;
-
- /* Load input */
- input = _mm_loadu_si128((__m128i const*) p);
- ranges = _mm_loadu_si128((__m128i const*) llparse_blob9);
-
- /* Find first character that does not match `ranges` */
- match_len = _mm_cmpestri(ranges, 16,
- input, 16,
- _SIDD_UBYTE_OPS | _SIDD_CMP_RANGES |
- _SIDD_NEGATIVE_POLARITY);
-
- if (match_len != 0) {
- p += match_len;
- goto s_n_llhttp__internal__n_header_field_general;
- }
- ranges = _mm_loadu_si128((__m128i const*) llparse_blob10);
-
- /* Find first character that does not match `ranges` */
- match_len = _mm_cmpestri(ranges, 2,
- input, 16,
- _SIDD_UBYTE_OPS | _SIDD_CMP_RANGES |
- _SIDD_NEGATIVE_POLARITY);
-
- if (match_len != 0) {
- p += match_len;
- goto s_n_llhttp__internal__n_header_field_general;
- }
- goto s_n_llhttp__internal__n_header_field_general_otherwise;
- }
- #endif /* __SSE4_2__ */
switch (lookup_table[(uint8_t) *p]) {
case 1: {
p++;
if (p == endp) {
return s_n_llhttp__internal__n_header_field_3;
}
- match_seq = llparse__match_sequence_to_lower_unsafe(state, p, endp, llparse_blob3, 6);
+ match_seq = llparse__match_sequence_to_lower_unsafe(state, p, endp, llparse_blob2, 6);
p = match_seq.current;
switch (match_seq.status) {
case kMatchComplete: {
if (p == endp) {
return s_n_llhttp__internal__n_header_field_4;
}
- match_seq = llparse__match_sequence_to_lower_unsafe(state, p, endp, llparse_blob11, 10);
+ match_seq = llparse__match_sequence_to_lower_unsafe(state, p, endp, llparse_blob7, 10);
p = match_seq.current;
switch (match_seq.status) {
case kMatchComplete: {
if (p == endp) {
return s_n_llhttp__internal__n_header_field_1;
}
- match_seq = llparse__match_sequence_to_lower_unsafe(state, p, endp, llparse_blob2, 2);
+ match_seq = llparse__match_sequence_to_lower_unsafe(state, p, endp, llparse_blob1, 2);
p = match_seq.current;
switch (match_seq.status) {
case kMatchComplete: {
if (p == endp) {
return s_n_llhttp__internal__n_header_field_5;
}
- match_seq = llparse__match_sequence_to_lower_unsafe(state, p, endp, llparse_blob12, 15);
+ match_seq = llparse__match_sequence_to_lower_unsafe(state, p, endp, llparse_blob8, 15);
p = match_seq.current;
switch (match_seq.status) {
case kMatchComplete: {
if (p == endp) {
return s_n_llhttp__internal__n_header_field_6;
}
- match_seq = llparse__match_sequence_to_lower_unsafe(state, p, endp, llparse_blob13, 16);
+ match_seq = llparse__match_sequence_to_lower_unsafe(state, p, endp, llparse_blob9, 16);
p = match_seq.current;
switch (match_seq.status) {
case kMatchComplete: {
if (p == endp) {
return s_n_llhttp__internal__n_header_field_7;
}
- match_seq = llparse__match_sequence_to_lower_unsafe(state, p, endp, llparse_blob14, 6);
+ match_seq = llparse__match_sequence_to_lower_unsafe(state, p, endp, llparse_blob10, 6);
p = match_seq.current;
switch (match_seq.status) {
case kMatchComplete: {
if (p == endp) {
return s_n_llhttp__internal__n_url_skip_lf_to_http09;
}
- match_seq = llparse__match_sequence_id(state, p, endp, llparse_blob15, 2);
+ match_seq = llparse__match_sequence_id(state, p, endp, llparse_blob11, 2);
p = match_seq.current;
switch (match_seq.status) {
case kMatchComplete: {
return s_n_llhttp__internal__n_url_skip_lf_to_http09;
}
case kMatchMismatch: {
- goto s_n_llhttp__internal__n_error_21;
+ goto s_n_llhttp__internal__n_error_18;
}
}
/* UNREACHABLE */;
goto s_n_llhttp__internal__n_header_field_start;
}
default: {
- goto s_n_llhttp__internal__n_error_22;
+ goto s_n_llhttp__internal__n_error_19;
}
}
/* UNREACHABLE */;
goto s_n_llhttp__internal__n_req_http_end_1;
}
default: {
- goto s_n_llhttp__internal__n_error_22;
+ goto s_n_llhttp__internal__n_error_19;
}
}
/* UNREACHABLE */;
goto s_n_llhttp__internal__n_invoke_store_http_minor;
}
default: {
- goto s_n_llhttp__internal__n_error_23;
+ goto s_n_llhttp__internal__n_error_20;
}
}
/* UNREACHABLE */;
goto s_n_llhttp__internal__n_req_http_minor;
}
default: {
- goto s_n_llhttp__internal__n_error_24;
+ goto s_n_llhttp__internal__n_error_21;
}
}
/* UNREACHABLE */;
goto s_n_llhttp__internal__n_invoke_store_http_major;
}
default: {
- goto s_n_llhttp__internal__n_error_25;
+ goto s_n_llhttp__internal__n_error_22;
}
}
/* UNREACHABLE */;
if (p == endp) {
return s_n_llhttp__internal__n_req_http_start_1;
}
- match_seq = llparse__match_sequence_id(state, p, endp, llparse_blob16, 4);
+ match_seq = llparse__match_sequence_id(state, p, endp, llparse_blob12, 4);
p = match_seq.current;
switch (match_seq.status) {
case kMatchComplete: {
return s_n_llhttp__internal__n_req_http_start_1;
}
case kMatchMismatch: {
- goto s_n_llhttp__internal__n_error_27;
+ goto s_n_llhttp__internal__n_error_24;
}
}
/* UNREACHABLE */;
if (p == endp) {
return s_n_llhttp__internal__n_req_http_start_2;
}
- match_seq = llparse__match_sequence_id(state, p, endp, llparse_blob17, 3);
+ match_seq = llparse__match_sequence_id(state, p, endp, llparse_blob13, 3);
p = match_seq.current;
switch (match_seq.status) {
case kMatchComplete: {
return s_n_llhttp__internal__n_req_http_start_2;
}
case kMatchMismatch: {
- goto s_n_llhttp__internal__n_error_27;
+ goto s_n_llhttp__internal__n_error_24;
}
}
/* UNREACHABLE */;
goto s_n_llhttp__internal__n_req_http_start_2;
}
default: {
- goto s_n_llhttp__internal__n_error_27;
+ goto s_n_llhttp__internal__n_error_24;
}
}
/* UNREACHABLE */;
goto s_n_llhttp__internal__n_span_end_llhttp__on_url_8;
}
default: {
- goto s_n_llhttp__internal__n_error_28;
+ goto s_n_llhttp__internal__n_error_25;
}
}
/* UNREACHABLE */;
goto s_n_llhttp__internal__n_span_end_stub_query_3;
}
default: {
- goto s_n_llhttp__internal__n_error_29;
+ goto s_n_llhttp__internal__n_error_26;
}
}
/* UNREACHABLE */;
goto s_n_llhttp__internal__n_url_query;
}
default: {
- goto s_n_llhttp__internal__n_error_30;
+ goto s_n_llhttp__internal__n_error_27;
}
}
/* UNREACHABLE */;
if (p == endp) {
return s_n_llhttp__internal__n_url_path;
}
- #ifdef __SSE4_2__
- if (endp - p >= 16) {
- __m128i ranges;
- __m128i input;
- int avail;
- int match_len;
-
- /* Load input */
- input = _mm_loadu_si128((__m128i const*) p);
- ranges = _mm_loadu_si128((__m128i const*) llparse_blob1);
-
- /* Find first character that does not match `ranges` */
- match_len = _mm_cmpestri(ranges, 12,
- input, 16,
- _SIDD_UBYTE_OPS | _SIDD_CMP_RANGES |
- _SIDD_NEGATIVE_POLARITY);
-
- if (match_len != 0) {
- p += match_len;
- goto s_n_llhttp__internal__n_url_path;
- }
- goto s_n_llhttp__internal__n_url_query_or_fragment;
- }
- #endif /* __SSE4_2__ */
switch (lookup_table[(uint8_t) *p]) {
case 1: {
p++;
}
case 7: {
p++;
- goto s_n_llhttp__internal__n_error_31;
+ goto s_n_llhttp__internal__n_error_28;
}
default: {
- goto s_n_llhttp__internal__n_error_32;
+ goto s_n_llhttp__internal__n_error_29;
}
}
/* UNREACHABLE */;
goto s_n_llhttp__internal__n_url_server_with_at;
}
default: {
- goto s_n_llhttp__internal__n_error_33;
+ goto s_n_llhttp__internal__n_error_30;
}
}
/* UNREACHABLE */;
goto s_n_llhttp__internal__n_url_server;
}
default: {
- goto s_n_llhttp__internal__n_error_35;
+ goto s_n_llhttp__internal__n_error_32;
}
}
/* UNREACHABLE */;
switch (*p) {
case 10: {
p++;
- goto s_n_llhttp__internal__n_error_34;
+ goto s_n_llhttp__internal__n_error_31;
}
case 13: {
p++;
- goto s_n_llhttp__internal__n_error_34;
+ goto s_n_llhttp__internal__n_error_31;
}
case ' ': {
p++;
- goto s_n_llhttp__internal__n_error_34;
+ goto s_n_llhttp__internal__n_error_31;
}
case '/': {
p++;
goto s_n_llhttp__internal__n_url_schema_delim_1;
}
default: {
- goto s_n_llhttp__internal__n_error_35;
+ goto s_n_llhttp__internal__n_error_32;
}
}
/* UNREACHABLE */;
switch (lookup_table[(uint8_t) *p]) {
case 1: {
p++;
- goto s_n_llhttp__internal__n_error_34;
+ goto s_n_llhttp__internal__n_error_31;
}
case 2: {
goto s_n_llhttp__internal__n_span_end_stub_schema;
goto s_n_llhttp__internal__n_url_schema;
}
default: {
- goto s_n_llhttp__internal__n_error_36;
+ goto s_n_llhttp__internal__n_error_33;
}
}
/* UNREACHABLE */;
switch (lookup_table[(uint8_t) *p]) {
case 1: {
p++;
- goto s_n_llhttp__internal__n_error_34;
+ goto s_n_llhttp__internal__n_error_31;
}
case 2: {
goto s_n_llhttp__internal__n_span_start_stub_path_2;
goto s_n_llhttp__internal__n_url_schema;
}
default: {
- goto s_n_llhttp__internal__n_error_37;
+ goto s_n_llhttp__internal__n_error_34;
}
}
/* UNREACHABLE */;
goto s_n_llhttp__internal__n_req_spaces_before_url;
}
default: {
- goto s_n_llhttp__internal__n_error_38;
+ goto s_n_llhttp__internal__n_error_35;
}
}
/* UNREACHABLE */;
return s_n_llhttp__internal__n_start_req_1;
}
case kMatchMismatch: {
- goto s_n_llhttp__internal__n_error_46;
+ goto s_n_llhttp__internal__n_error_43;
}
}
/* UNREACHABLE */;
if (p == endp) {
return s_n_llhttp__internal__n_start_req_2;
}
- match_seq = llparse__match_sequence_id(state, p, endp, llparse_blob18, 3);
+ match_seq = llparse__match_sequence_id(state, p, endp, llparse_blob14, 3);
p = match_seq.current;
switch (match_seq.status) {
case kMatchComplete: {
return s_n_llhttp__internal__n_start_req_2;
}
case kMatchMismatch: {
- goto s_n_llhttp__internal__n_error_46;
+ goto s_n_llhttp__internal__n_error_43;
}
}
/* UNREACHABLE */;
if (p == endp) {
return s_n_llhttp__internal__n_start_req_4;
}
- match_seq = llparse__match_sequence_id(state, p, endp, llparse_blob19, 6);
+ match_seq = llparse__match_sequence_id(state, p, endp, llparse_blob15, 6);
p = match_seq.current;
switch (match_seq.status) {
case kMatchComplete: {
return s_n_llhttp__internal__n_start_req_4;
}
case kMatchMismatch: {
- goto s_n_llhttp__internal__n_error_46;
+ goto s_n_llhttp__internal__n_error_43;
}
}
/* UNREACHABLE */;
if (p == endp) {
return s_n_llhttp__internal__n_start_req_6;
}
- match_seq = llparse__match_sequence_id(state, p, endp, llparse_blob20, 4);
+ match_seq = llparse__match_sequence_id(state, p, endp, llparse_blob16, 4);
p = match_seq.current;
switch (match_seq.status) {
case kMatchComplete: {
return s_n_llhttp__internal__n_start_req_6;
}
case kMatchMismatch: {
- goto s_n_llhttp__internal__n_error_46;
+ goto s_n_llhttp__internal__n_error_43;
}
}
/* UNREACHABLE */;
goto s_n_llhttp__internal__n_invoke_store_method_1;
}
default: {
- goto s_n_llhttp__internal__n_error_46;
+ goto s_n_llhttp__internal__n_error_43;
}
}
/* UNREACHABLE */;
goto s_n_llhttp__internal__n_start_req_7;
}
default: {
- goto s_n_llhttp__internal__n_error_46;
+ goto s_n_llhttp__internal__n_error_43;
}
}
/* UNREACHABLE */;
goto s_n_llhttp__internal__n_start_req_5;
}
default: {
- goto s_n_llhttp__internal__n_error_46;
+ goto s_n_llhttp__internal__n_error_43;
}
}
/* UNREACHABLE */;
if (p == endp) {
return s_n_llhttp__internal__n_start_req_8;
}
- match_seq = llparse__match_sequence_id(state, p, endp, llparse_blob21, 5);
+ match_seq = llparse__match_sequence_id(state, p, endp, llparse_blob17, 5);
p = match_seq.current;
switch (match_seq.status) {
case kMatchComplete: {
return s_n_llhttp__internal__n_start_req_8;
}
case kMatchMismatch: {
- goto s_n_llhttp__internal__n_error_46;
+ goto s_n_llhttp__internal__n_error_43;
}
}
/* UNREACHABLE */;
if (p == endp) {
return s_n_llhttp__internal__n_start_req_9;
}
- match_seq = llparse__match_sequence_id(state, p, endp, llparse_blob22, 2);
+ match_seq = llparse__match_sequence_id(state, p, endp, llparse_blob18, 2);
p = match_seq.current;
switch (match_seq.status) {
case kMatchComplete: {
return s_n_llhttp__internal__n_start_req_9;
}
case kMatchMismatch: {
- goto s_n_llhttp__internal__n_error_46;
+ goto s_n_llhttp__internal__n_error_43;
}
}
/* UNREACHABLE */;
if (p == endp) {
return s_n_llhttp__internal__n_start_req_10;
}
- match_seq = llparse__match_sequence_id(state, p, endp, llparse_blob23, 3);
+ match_seq = llparse__match_sequence_id(state, p, endp, llparse_blob19, 3);
p = match_seq.current;
switch (match_seq.status) {
case kMatchComplete: {
return s_n_llhttp__internal__n_start_req_10;
}
case kMatchMismatch: {
- goto s_n_llhttp__internal__n_error_46;
+ goto s_n_llhttp__internal__n_error_43;
}
}
/* UNREACHABLE */;
if (p == endp) {
return s_n_llhttp__internal__n_start_req_12;
}
- match_seq = llparse__match_sequence_id(state, p, endp, llparse_blob24, 2);
+ match_seq = llparse__match_sequence_id(state, p, endp, llparse_blob20, 2);
p = match_seq.current;
switch (match_seq.status) {
case kMatchComplete: {
return s_n_llhttp__internal__n_start_req_12;
}
case kMatchMismatch: {
- goto s_n_llhttp__internal__n_error_46;
+ goto s_n_llhttp__internal__n_error_43;
}
}
/* UNREACHABLE */;
if (p == endp) {
return s_n_llhttp__internal__n_start_req_13;
}
- match_seq = llparse__match_sequence_id(state, p, endp, llparse_blob25, 2);
+ match_seq = llparse__match_sequence_id(state, p, endp, llparse_blob21, 2);
p = match_seq.current;
switch (match_seq.status) {
case kMatchComplete: {
return s_n_llhttp__internal__n_start_req_13;
}
case kMatchMismatch: {
- goto s_n_llhttp__internal__n_error_46;
+ goto s_n_llhttp__internal__n_error_43;
}
}
/* UNREACHABLE */;
goto s_n_llhttp__internal__n_start_req_13;
}
default: {
- goto s_n_llhttp__internal__n_error_46;
+ goto s_n_llhttp__internal__n_error_43;
}
}
/* UNREACHABLE */;
if (p == endp) {
return s_n_llhttp__internal__n_start_req_15;
}
- match_seq = llparse__match_sequence_id(state, p, endp, llparse_blob26, 6);
+ match_seq = llparse__match_sequence_id(state, p, endp, llparse_blob22, 6);
p = match_seq.current;
switch (match_seq.status) {
case kMatchComplete: {
return s_n_llhttp__internal__n_start_req_15;
}
case kMatchMismatch: {
- goto s_n_llhttp__internal__n_error_46;
+ goto s_n_llhttp__internal__n_error_43;
}
}
/* UNREACHABLE */;
if (p == endp) {
return s_n_llhttp__internal__n_start_req_16;
}
- match_seq = llparse__match_sequence_id(state, p, endp, llparse_blob27, 3);
+ match_seq = llparse__match_sequence_id(state, p, endp, llparse_blob23, 3);
p = match_seq.current;
switch (match_seq.status) {
case kMatchComplete: {
return s_n_llhttp__internal__n_start_req_16;
}
case kMatchMismatch: {
- goto s_n_llhttp__internal__n_error_46;
+ goto s_n_llhttp__internal__n_error_43;
}
}
/* UNREACHABLE */;
if (p == endp) {
return s_n_llhttp__internal__n_start_req_18;
}
- match_seq = llparse__match_sequence_id(state, p, endp, llparse_blob28, 7);
+ match_seq = llparse__match_sequence_id(state, p, endp, llparse_blob24, 7);
p = match_seq.current;
switch (match_seq.status) {
case kMatchComplete: {
return s_n_llhttp__internal__n_start_req_18;
}
case kMatchMismatch: {
- goto s_n_llhttp__internal__n_error_46;
+ goto s_n_llhttp__internal__n_error_43;
}
}
/* UNREACHABLE */;
if (p == endp) {
return s_n_llhttp__internal__n_start_req_20;
}
- match_seq = llparse__match_sequence_id(state, p, endp, llparse_blob29, 6);
+ match_seq = llparse__match_sequence_id(state, p, endp, llparse_blob25, 6);
p = match_seq.current;
switch (match_seq.status) {
case kMatchComplete: {
return s_n_llhttp__internal__n_start_req_20;
}
case kMatchMismatch: {
- goto s_n_llhttp__internal__n_error_46;
+ goto s_n_llhttp__internal__n_error_43;
}
}
/* UNREACHABLE */;
goto s_n_llhttp__internal__n_invoke_store_method_1;
}
default: {
- goto s_n_llhttp__internal__n_error_46;
+ goto s_n_llhttp__internal__n_error_43;
}
}
/* UNREACHABLE */;
goto s_n_llhttp__internal__n_start_req_21;
}
default: {
- goto s_n_llhttp__internal__n_error_46;
+ goto s_n_llhttp__internal__n_error_43;
}
}
/* UNREACHABLE */;
goto s_n_llhttp__internal__n_start_req_19;
}
default: {
- goto s_n_llhttp__internal__n_error_46;
+ goto s_n_llhttp__internal__n_error_43;
}
}
/* UNREACHABLE */;
if (p == endp) {
return s_n_llhttp__internal__n_start_req_22;
}
- match_seq = llparse__match_sequence_id(state, p, endp, llparse_blob30, 2);
+ match_seq = llparse__match_sequence_id(state, p, endp, llparse_blob26, 2);
p = match_seq.current;
switch (match_seq.status) {
case kMatchComplete: {
return s_n_llhttp__internal__n_start_req_22;
}
case kMatchMismatch: {
- goto s_n_llhttp__internal__n_error_46;
+ goto s_n_llhttp__internal__n_error_43;
}
}
/* UNREACHABLE */;
goto s_n_llhttp__internal__n_start_req_22;
}
default: {
- goto s_n_llhttp__internal__n_error_46;
+ goto s_n_llhttp__internal__n_error_43;
}
}
/* UNREACHABLE */;
if (p == endp) {
return s_n_llhttp__internal__n_start_req_23;
}
- match_seq = llparse__match_sequence_id(state, p, endp, llparse_blob31, 5);
+ match_seq = llparse__match_sequence_id(state, p, endp, llparse_blob27, 5);
p = match_seq.current;
switch (match_seq.status) {
case kMatchComplete: {
return s_n_llhttp__internal__n_start_req_23;
}
case kMatchMismatch: {
- goto s_n_llhttp__internal__n_error_46;
+ goto s_n_llhttp__internal__n_error_43;
}
}
/* UNREACHABLE */;
if (p == endp) {
return s_n_llhttp__internal__n_start_req_24;
}
- match_seq = llparse__match_sequence_id(state, p, endp, llparse_blob32, 6);
+ match_seq = llparse__match_sequence_id(state, p, endp, llparse_blob28, 6);
p = match_seq.current;
switch (match_seq.status) {
case kMatchComplete: {
return s_n_llhttp__internal__n_start_req_24;
}
case kMatchMismatch: {
- goto s_n_llhttp__internal__n_error_46;
+ goto s_n_llhttp__internal__n_error_43;
}
}
/* UNREACHABLE */;
if (p == endp) {
return s_n_llhttp__internal__n_start_req_26;
}
- match_seq = llparse__match_sequence_id(state, p, endp, llparse_blob33, 3);
+ match_seq = llparse__match_sequence_id(state, p, endp, llparse_blob29, 3);
p = match_seq.current;
switch (match_seq.status) {
case kMatchComplete: {
return s_n_llhttp__internal__n_start_req_26;
}
case kMatchMismatch: {
- goto s_n_llhttp__internal__n_error_46;
+ goto s_n_llhttp__internal__n_error_43;
}
}
/* UNREACHABLE */;
if (p == endp) {
return s_n_llhttp__internal__n_start_req_27;
}
- match_seq = llparse__match_sequence_id(state, p, endp, llparse_blob34, 2);
+ match_seq = llparse__match_sequence_id(state, p, endp, llparse_blob30, 2);
p = match_seq.current;
switch (match_seq.status) {
case kMatchComplete: {
return s_n_llhttp__internal__n_start_req_27;
}
case kMatchMismatch: {
- goto s_n_llhttp__internal__n_error_46;
+ goto s_n_llhttp__internal__n_error_43;
}
}
/* UNREACHABLE */;
if (p == endp) {
return s_n_llhttp__internal__n_start_req_30;
}
- match_seq = llparse__match_sequence_id(state, p, endp, llparse_blob36, 3);
+ match_seq = llparse__match_sequence_id(state, p, endp, llparse_blob32, 3);
p = match_seq.current;
switch (match_seq.status) {
case kMatchComplete: {
return s_n_llhttp__internal__n_start_req_30;
}
case kMatchMismatch: {
- goto s_n_llhttp__internal__n_error_46;
+ goto s_n_llhttp__internal__n_error_43;
}
}
/* UNREACHABLE */;
if (p == endp) {
return s_n_llhttp__internal__n_start_req_31;
}
- match_seq = llparse__match_sequence_id(state, p, endp, llparse_blob37, 4);
+ match_seq = llparse__match_sequence_id(state, p, endp, llparse_blob33, 4);
p = match_seq.current;
switch (match_seq.status) {
case kMatchComplete: {
return s_n_llhttp__internal__n_start_req_31;
}
case kMatchMismatch: {
- goto s_n_llhttp__internal__n_error_46;
+ goto s_n_llhttp__internal__n_error_43;
}
}
/* UNREACHABLE */;
goto s_n_llhttp__internal__n_start_req_31;
}
default: {
- goto s_n_llhttp__internal__n_error_46;
+ goto s_n_llhttp__internal__n_error_43;
}
}
/* UNREACHABLE */;
if (p == endp) {
return s_n_llhttp__internal__n_start_req_28;
}
- match_seq = llparse__match_sequence_id(state, p, endp, llparse_blob35, 2);
+ match_seq = llparse__match_sequence_id(state, p, endp, llparse_blob31, 2);
p = match_seq.current;
switch (match_seq.status) {
case kMatchComplete: {
return s_n_llhttp__internal__n_start_req_28;
}
case kMatchMismatch: {
- goto s_n_llhttp__internal__n_error_46;
+ goto s_n_llhttp__internal__n_error_43;
}
}
/* UNREACHABLE */;
if (p == endp) {
return s_n_llhttp__internal__n_start_req_33;
}
- match_seq = llparse__match_sequence_id(state, p, endp, llparse_blob38, 2);
+ match_seq = llparse__match_sequence_id(state, p, endp, llparse_blob34, 2);
p = match_seq.current;
switch (match_seq.status) {
case kMatchComplete: {
return s_n_llhttp__internal__n_start_req_33;
}
case kMatchMismatch: {
- goto s_n_llhttp__internal__n_error_46;
+ goto s_n_llhttp__internal__n_error_43;
}
}
/* UNREACHABLE */;
goto s_n_llhttp__internal__n_invoke_store_method_1;
}
default: {
- goto s_n_llhttp__internal__n_error_46;
+ goto s_n_llhttp__internal__n_error_43;
}
}
/* UNREACHABLE */;
goto s_n_llhttp__internal__n_start_req_32;
}
default: {
- goto s_n_llhttp__internal__n_error_46;
+ goto s_n_llhttp__internal__n_error_43;
}
}
/* UNREACHABLE */;
if (p == endp) {
return s_n_llhttp__internal__n_start_req_36;
}
- match_seq = llparse__match_sequence_id(state, p, endp, llparse_blob39, 3);
+ match_seq = llparse__match_sequence_id(state, p, endp, llparse_blob35, 3);
p = match_seq.current;
switch (match_seq.status) {
case kMatchComplete: {
return s_n_llhttp__internal__n_start_req_36;
}
case kMatchMismatch: {
- goto s_n_llhttp__internal__n_error_46;
+ goto s_n_llhttp__internal__n_error_43;
}
}
/* UNREACHABLE */;
if (p == endp) {
return s_n_llhttp__internal__n_start_req_37;
}
- match_seq = llparse__match_sequence_id(state, p, endp, llparse_blob40, 3);
+ match_seq = llparse__match_sequence_id(state, p, endp, llparse_blob36, 3);
p = match_seq.current;
switch (match_seq.status) {
case kMatchComplete: {
return s_n_llhttp__internal__n_start_req_37;
}
case kMatchMismatch: {
- goto s_n_llhttp__internal__n_error_46;
+ goto s_n_llhttp__internal__n_error_43;
}
}
/* UNREACHABLE */;
goto s_n_llhttp__internal__n_start_req_37;
}
default: {
- goto s_n_llhttp__internal__n_error_46;
+ goto s_n_llhttp__internal__n_error_43;
}
}
/* UNREACHABLE */;
goto s_n_llhttp__internal__n_start_req_35;
}
default: {
- goto s_n_llhttp__internal__n_error_46;
+ goto s_n_llhttp__internal__n_error_43;
}
}
/* UNREACHABLE */;
if (p == endp) {
return s_n_llhttp__internal__n_start_req_39;
}
- match_seq = llparse__match_sequence_id(state, p, endp, llparse_blob41, 4);
+ match_seq = llparse__match_sequence_id(state, p, endp, llparse_blob37, 4);
p = match_seq.current;
switch (match_seq.status) {
case kMatchComplete: {
return s_n_llhttp__internal__n_start_req_39;
}
case kMatchMismatch: {
- goto s_n_llhttp__internal__n_error_46;
+ goto s_n_llhttp__internal__n_error_43;
}
}
/* UNREACHABLE */;
if (p == endp) {
return s_n_llhttp__internal__n_start_req_40;
}
- match_seq = llparse__match_sequence_id(state, p, endp, llparse_blob42, 4);
+ match_seq = llparse__match_sequence_id(state, p, endp, llparse_blob38, 4);
p = match_seq.current;
switch (match_seq.status) {
case kMatchComplete: {
return s_n_llhttp__internal__n_start_req_40;
}
case kMatchMismatch: {
- goto s_n_llhttp__internal__n_error_46;
+ goto s_n_llhttp__internal__n_error_43;
}
}
/* UNREACHABLE */;
if (p == endp) {
return s_n_llhttp__internal__n_start_req_41;
}
- match_seq = llparse__match_sequence_id(state, p, endp, llparse_blob43, 7);
+ match_seq = llparse__match_sequence_id(state, p, endp, llparse_blob39, 7);
p = match_seq.current;
switch (match_seq.status) {
case kMatchComplete: {
return s_n_llhttp__internal__n_start_req_41;
}
case kMatchMismatch: {
- goto s_n_llhttp__internal__n_error_46;
+ goto s_n_llhttp__internal__n_error_43;
}
}
/* UNREACHABLE */;
goto s_n_llhttp__internal__n_start_req_41;
}
default: {
- goto s_n_llhttp__internal__n_error_46;
+ goto s_n_llhttp__internal__n_error_43;
}
}
/* UNREACHABLE */;
if (p == endp) {
return s_n_llhttp__internal__n_start_req_42;
}
- match_seq = llparse__match_sequence_id(state, p, endp, llparse_blob44, 4);
+ match_seq = llparse__match_sequence_id(state, p, endp, llparse_blob40, 4);
p = match_seq.current;
switch (match_seq.status) {
case kMatchComplete: {
return s_n_llhttp__internal__n_start_req_42;
}
case kMatchMismatch: {
- goto s_n_llhttp__internal__n_error_46;
+ goto s_n_llhttp__internal__n_error_43;
}
}
/* UNREACHABLE */;
if (p == endp) {
return s_n_llhttp__internal__n_start_req_45;
}
- match_seq = llparse__match_sequence_id(state, p, endp, llparse_blob45, 3);
+ match_seq = llparse__match_sequence_id(state, p, endp, llparse_blob41, 3);
p = match_seq.current;
switch (match_seq.status) {
case kMatchComplete: {
return s_n_llhttp__internal__n_start_req_45;
}
case kMatchMismatch: {
- goto s_n_llhttp__internal__n_error_46;
+ goto s_n_llhttp__internal__n_error_43;
}
}
/* UNREACHABLE */;
if (p == endp) {
return s_n_llhttp__internal__n_start_req_47;
}
- match_seq = llparse__match_sequence_id(state, p, endp, llparse_blob46, 2);
+ match_seq = llparse__match_sequence_id(state, p, endp, llparse_blob42, 2);
p = match_seq.current;
switch (match_seq.status) {
case kMatchComplete: {
return s_n_llhttp__internal__n_start_req_47;
}
case kMatchMismatch: {
- goto s_n_llhttp__internal__n_error_46;
+ goto s_n_llhttp__internal__n_error_43;
}
}
/* UNREACHABLE */;
if (p == endp) {
return s_n_llhttp__internal__n_start_req_48;
}
- match_seq = llparse__match_sequence_id(state, p, endp, llparse_blob47, 2);
+ match_seq = llparse__match_sequence_id(state, p, endp, llparse_blob43, 2);
p = match_seq.current;
switch (match_seq.status) {
case kMatchComplete: {
return s_n_llhttp__internal__n_start_req_48;
}
case kMatchMismatch: {
- goto s_n_llhttp__internal__n_error_46;
+ goto s_n_llhttp__internal__n_error_43;
}
}
/* UNREACHABLE */;
goto s_n_llhttp__internal__n_start_req_48;
}
default: {
- goto s_n_llhttp__internal__n_error_46;
+ goto s_n_llhttp__internal__n_error_43;
}
}
/* UNREACHABLE */;
if (p == endp) {
return s_n_llhttp__internal__n_start_req_49;
}
- match_seq = llparse__match_sequence_id(state, p, endp, llparse_blob48, 8);
+ match_seq = llparse__match_sequence_id(state, p, endp, llparse_blob44, 8);
p = match_seq.current;
switch (match_seq.status) {
case kMatchComplete: {
return s_n_llhttp__internal__n_start_req_49;
}
case kMatchMismatch: {
- goto s_n_llhttp__internal__n_error_46;
+ goto s_n_llhttp__internal__n_error_43;
}
}
/* UNREACHABLE */;
goto s_n_llhttp__internal__n_start_req_49;
}
default: {
- goto s_n_llhttp__internal__n_error_46;
+ goto s_n_llhttp__internal__n_error_43;
}
}
/* UNREACHABLE */;
goto s_n_llhttp__internal__n_start_req_44;
}
default: {
- goto s_n_llhttp__internal__n_error_46;
+ goto s_n_llhttp__internal__n_error_43;
}
}
/* UNREACHABLE */;
goto s_n_llhttp__internal__n_start_req_43;
}
default: {
- goto s_n_llhttp__internal__n_error_46;
+ goto s_n_llhttp__internal__n_error_43;
}
}
/* UNREACHABLE */;
goto s_n_llhttp__internal__n_res_status_start;
}
default: {
- goto s_n_llhttp__internal__n_error_40;
+ goto s_n_llhttp__internal__n_error_37;
}
}
/* UNREACHABLE */;
goto s_n_llhttp__internal__n_invoke_update_status_code;
}
default: {
- goto s_n_llhttp__internal__n_error_41;
+ goto s_n_llhttp__internal__n_error_38;
}
}
/* UNREACHABLE */;
goto s_n_llhttp__internal__n_invoke_store_http_minor_1;
}
default: {
- goto s_n_llhttp__internal__n_error_42;
+ goto s_n_llhttp__internal__n_error_39;
}
}
/* UNREACHABLE */;
goto s_n_llhttp__internal__n_res_http_minor;
}
default: {
- goto s_n_llhttp__internal__n_error_43;
+ goto s_n_llhttp__internal__n_error_40;
}
}
/* UNREACHABLE */;
goto s_n_llhttp__internal__n_invoke_store_http_major_1;
}
default: {
- goto s_n_llhttp__internal__n_error_44;
+ goto s_n_llhttp__internal__n_error_41;
}
}
/* UNREACHABLE */;
if (p == endp) {
return s_n_llhttp__internal__n_start_res;
}
- match_seq = llparse__match_sequence_id(state, p, endp, llparse_blob49, 5);
+ match_seq = llparse__match_sequence_id(state, p, endp, llparse_blob45, 5);
p = match_seq.current;
switch (match_seq.status) {
case kMatchComplete: {
return s_n_llhttp__internal__n_start_res;
}
case kMatchMismatch: {
- goto s_n_llhttp__internal__n_error_47;
+ goto s_n_llhttp__internal__n_error_44;
}
}
/* UNREACHABLE */;
if (p == endp) {
return s_n_llhttp__internal__n_req_or_res_method_2;
}
- match_seq = llparse__match_sequence_id(state, p, endp, llparse_blob50, 2);
+ match_seq = llparse__match_sequence_id(state, p, endp, llparse_blob46, 2);
p = match_seq.current;
switch (match_seq.status) {
case kMatchComplete: {
return s_n_llhttp__internal__n_req_or_res_method_2;
}
case kMatchMismatch: {
- goto s_n_llhttp__internal__n_error_45;
+ goto s_n_llhttp__internal__n_error_42;
}
}
/* UNREACHABLE */;
if (p == endp) {
return s_n_llhttp__internal__n_req_or_res_method_3;
}
- match_seq = llparse__match_sequence_id(state, p, endp, llparse_blob51, 3);
+ match_seq = llparse__match_sequence_id(state, p, endp, llparse_blob47, 3);
p = match_seq.current;
switch (match_seq.status) {
case kMatchComplete: {
return s_n_llhttp__internal__n_req_or_res_method_3;
}
case kMatchMismatch: {
- goto s_n_llhttp__internal__n_error_45;
+ goto s_n_llhttp__internal__n_error_42;
}
}
/* UNREACHABLE */;
goto s_n_llhttp__internal__n_req_or_res_method_3;
}
default: {
- goto s_n_llhttp__internal__n_error_45;
+ goto s_n_llhttp__internal__n_error_42;
}
}
/* UNREACHABLE */;
goto s_n_llhttp__internal__n_req_or_res_method_1;
}
default: {
- goto s_n_llhttp__internal__n_error_45;
+ goto s_n_llhttp__internal__n_error_42;
}
}
/* UNREACHABLE */;
/* UNREACHABLE */
abort();
}
- s_n_llhttp__internal__n_error_34: {
+ s_n_llhttp__internal__n_error_31: {
state->error = 0x7;
state->reason = "Invalid characters in url";
state->error_pos = (const char*) p;
/* UNREACHABLE */;
abort();
}
- s_n_llhttp__internal__n_invoke_update_finish_1: {
- switch (llhttp__internal__c_update_finish_1(state, p, endp)) {
- default:
- goto s_n_llhttp__internal__n_start;
- }
- /* UNREACHABLE */;
- abort();
- }
s_n_llhttp__internal__n_pause_5: {
- state->error = 0x15;
+ state->error = 0x14;
state->reason = "on_message_complete pause";
state->error_pos = (const char*) p;
state->_current = (void*) (intptr_t) s_n_llhttp__internal__n_invoke_is_equal_upgrade;
abort();
}
s_n_llhttp__internal__n_error_9: {
- state->error = 0x12;
+ state->error = 0x11;
state->reason = "`on_message_complete` callback error";
state->error_pos = (const char*) p;
state->_current = (void*) (intptr_t) s_error;
abort();
}
s_n_llhttp__internal__n_pause_7: {
- state->error = 0x15;
+ state->error = 0x14;
state->reason = "on_chunk_complete pause";
state->error_pos = (const char*) p;
state->_current = (void*) (intptr_t) s_n_llhttp__internal__n_invoke_llhttp__on_message_complete_2;
/* UNREACHABLE */;
abort();
}
- s_n_llhttp__internal__n_error_13: {
- state->error = 0x14;
+ s_n_llhttp__internal__n_error_11: {
+ state->error = 0x13;
state->reason = "`on_chunk_complete` callback error";
state->error_pos = (const char*) p;
state->_current = (void*) (intptr_t) s_error;
switch (llhttp__on_chunk_complete(state, p, endp)) {
case 0:
goto s_n_llhttp__internal__n_invoke_llhttp__on_message_complete_2;
- case 21:
+ case 20:
goto s_n_llhttp__internal__n_pause_7;
default:
- goto s_n_llhttp__internal__n_error_13;
+ goto s_n_llhttp__internal__n_error_11;
}
/* UNREACHABLE */;
abort();
}
- s_n_llhttp__internal__n_error_11: {
- state->error = 0x4;
- state->reason = "Content-Length can't be present with Transfer-Encoding";
- state->error_pos = (const char*) p;
- state->_current = (void*) (intptr_t) s_error;
- return s_error;
- /* UNREACHABLE */;
- abort();
- }
- s_n_llhttp__internal__n_error_12: {
+ s_n_llhttp__internal__n_error_10: {
state->error = 0x4;
state->reason = "Content-Length can't be present with chunked encoding";
state->error_pos = (const char*) p;
abort();
}
s_n_llhttp__internal__n_pause_2: {
- state->error = 0x15;
+ state->error = 0x14;
state->reason = "on_message_complete pause";
state->error_pos = (const char*) p;
state->_current = (void*) (intptr_t) s_n_llhttp__internal__n_pause_1;
abort();
}
s_n_llhttp__internal__n_error_3: {
- state->error = 0x12;
+ state->error = 0x11;
state->reason = "`on_message_complete` callback error";
state->error_pos = (const char*) p;
state->_current = (void*) (intptr_t) s_error;
switch (llhttp__on_message_complete(state, p, endp)) {
case 0:
goto s_n_llhttp__internal__n_pause_1;
- case 21:
+ case 20:
goto s_n_llhttp__internal__n_pause_2;
default:
goto s_n_llhttp__internal__n_error_3;
abort();
}
s_n_llhttp__internal__n_pause_3: {
- state->error = 0x15;
+ state->error = 0x14;
state->reason = "on_chunk_complete pause";
state->error_pos = (const char*) p;
state->_current = (void*) (intptr_t) s_n_llhttp__internal__n_invoke_update_content_length;
abort();
}
s_n_llhttp__internal__n_error_5: {
- state->error = 0x14;
+ state->error = 0x13;
state->reason = "`on_chunk_complete` callback error";
state->error_pos = (const char*) p;
state->_current = (void*) (intptr_t) s_error;
switch (llhttp__on_chunk_complete(state, p, endp)) {
case 0:
goto s_n_llhttp__internal__n_invoke_update_content_length;
- case 21:
+ case 20:
goto s_n_llhttp__internal__n_pause_3;
default:
goto s_n_llhttp__internal__n_error_5;
abort();
}
s_n_llhttp__internal__n_pause_4: {
- state->error = 0x15;
+ state->error = 0x14;
state->reason = "on_chunk_header pause";
state->error_pos = (const char*) p;
state->_current = (void*) (intptr_t) s_n_llhttp__internal__n_invoke_is_equal_content_length;
abort();
}
s_n_llhttp__internal__n_error_4: {
- state->error = 0x13;
+ state->error = 0x12;
state->reason = "`on_chunk_header` callback error";
state->error_pos = (const char*) p;
state->_current = (void*) (intptr_t) s_error;
switch (llhttp__on_chunk_header(state, p, endp)) {
case 0:
goto s_n_llhttp__internal__n_invoke_is_equal_content_length;
- case 21:
+ case 20:
goto s_n_llhttp__internal__n_pause_4;
default:
goto s_n_llhttp__internal__n_error_4;
/* UNREACHABLE */;
abort();
}
- s_n_llhttp__internal__n_invoke_update_finish_2: {
- switch (llhttp__internal__c_update_finish_2(state, p, endp)) {
+ s_n_llhttp__internal__n_invoke_update_finish_1: {
+ switch (llhttp__internal__c_update_finish_1(state, p, endp)) {
default:
- goto s_n_llhttp__internal__n_span_start_llhttp__on_body_2;
+ goto s_n_llhttp__internal__n_eof;
}
/* UNREACHABLE */;
abort();
}
- s_n_llhttp__internal__n_error_10: {
- state->error = 0xf;
- state->reason = "Request has invalid `Transfer-Encoding`";
- state->error_pos = (const char*) p;
- state->_current = (void*) (intptr_t) s_error;
- return s_error;
- /* UNREACHABLE */;
- abort();
- }
s_n_llhttp__internal__n_pause: {
- state->error = 0x15;
+ state->error = 0x14;
state->reason = "on_message_complete pause";
state->error_pos = (const char*) p;
state->_current = (void*) (intptr_t) s_n_llhttp__internal__n_invoke_llhttp__after_message_complete;
abort();
}
s_n_llhttp__internal__n_error_2: {
- state->error = 0x12;
+ state->error = 0x11;
state->reason = "`on_message_complete` callback error";
state->error_pos = (const char*) p;
state->_current = (void*) (intptr_t) s_error;
switch (llhttp__on_message_complete(state, p, endp)) {
case 0:
goto s_n_llhttp__internal__n_invoke_llhttp__after_message_complete;
- case 21:
+ case 20:
goto s_n_llhttp__internal__n_pause;
default:
goto s_n_llhttp__internal__n_error_2;
abort();
}
s_n_llhttp__internal__n_pause_6: {
- state->error = 0x15;
+ state->error = 0x14;
state->reason = "Paused by on_headers_complete";
state->error_pos = (const char*) p;
state->_current = (void*) (intptr_t) s_n_llhttp__internal__n_invoke_llhttp__after_headers_complete;
abort();
}
s_n_llhttp__internal__n_error_1: {
- state->error = 0x11;
+ state->error = 0x10;
state->reason = "User callback error";
state->error_pos = (const char*) p;
state->_current = (void*) (intptr_t) s_error;
goto s_n_llhttp__internal__n_invoke_or_flags_1;
case 2:
goto s_n_llhttp__internal__n_invoke_update_upgrade;
- case 21:
+ case 20:
goto s_n_llhttp__internal__n_pause_6;
default:
goto s_n_llhttp__internal__n_error_1;
/* UNREACHABLE */;
abort();
}
- s_n_llhttp__internal__n_invoke_test_flags_3: {
- switch (llhttp__internal__c_test_flags_3(state, p, endp)) {
- case 1:
- goto s_n_llhttp__internal__n_error_12;
- default:
- goto s_n_llhttp__internal__n_invoke_llhttp__before_headers_complete;
- }
- /* UNREACHABLE */;
- abort();
- }
- s_n_llhttp__internal__n_invoke_test_flags_2: {
- switch (llhttp__internal__c_test_flags_2(state, p, endp)) {
- case 0:
- goto s_n_llhttp__internal__n_error_11;
- case 1:
- goto s_n_llhttp__internal__n_invoke_test_flags_3;
- default:
- goto s_n_llhttp__internal__n_invoke_llhttp__before_headers_complete;
- }
- /* UNREACHABLE */;
- abort();
- }
s_n_llhttp__internal__n_invoke_test_flags_1: {
switch (llhttp__internal__c_test_flags_1(state, p, endp)) {
case 1:
- goto s_n_llhttp__internal__n_invoke_test_flags_2;
+ goto s_n_llhttp__internal__n_error_10;
default:
goto s_n_llhttp__internal__n_invoke_llhttp__before_headers_complete;
}
/* UNREACHABLE */;
abort();
}
- s_n_llhttp__internal__n_error_14: {
- state->error = 0xb;
- state->reason = "Empty Content-Length";
- state->error_pos = (const char*) p;
- state->_current = (void*) (intptr_t) s_error;
- return s_error;
- /* UNREACHABLE */;
- abort();
- }
s_n_llhttp__internal__n_span_end_llhttp__on_header_value: {
const unsigned char* start;
int err;
/* UNREACHABLE */;
abort();
}
- s_n_llhttp__internal__n_invoke_load_header_state_1: {
+ s_n_llhttp__internal__n_invoke_load_header_state: {
switch (llhttp__internal__c_load_header_state(state, p, endp)) {
case 5:
goto s_n_llhttp__internal__n_invoke_or_flags_3;
/* UNREACHABLE */;
abort();
}
- 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_14;
- default:
- goto s_n_llhttp__internal__n_invoke_load_header_state_1;
- }
- /* UNREACHABLE */;
- abort();
- }
s_n_llhttp__internal__n_invoke_update_header_state_1: {
switch (llhttp__internal__c_update_header_state(state, p, endp)) {
default:
/* UNREACHABLE */;
abort();
}
- s_n_llhttp__internal__n_invoke_load_header_state_3: {
+ s_n_llhttp__internal__n_invoke_load_header_state_2: {
switch (llhttp__internal__c_load_header_state(state, p, endp)) {
case 5:
goto s_n_llhttp__internal__n_invoke_or_flags_7;
/* UNREACHABLE */;
abort();
}
- s_n_llhttp__internal__n_error_15: {
+ s_n_llhttp__internal__n_error_12: {
state->error = 0x3;
state->reason = "Missing expected LF after header value";
state->error_pos = (const char*) p;
/* UNREACHABLE */;
abort();
}
- s_n_llhttp__internal__n_span_end_llhttp__on_header_value_3: {
- const unsigned char* start;
- int err;
-
- start = state->_span_pos0;
- state->_span_pos0 = NULL;
- err = llhttp__on_header_value(state, start, p);
- if (err != 0) {
- state->error = err;
- state->error_pos = (const char*) (p + 1);
- state->_current = (void*) (intptr_t) s_n_llhttp__internal__n_header_value_almost_done;
- return s_error;
- }
- p++;
- goto s_n_llhttp__internal__n_header_value_almost_done;
- /* UNREACHABLE */;
- abort();
- }
- s_n_llhttp__internal__n_error_16: {
+ s_n_llhttp__internal__n_error_13: {
state->error = 0xa;
state->reason = "Invalid header value char";
state->error_pos = (const char*) p;
/* UNREACHABLE */;
abort();
}
- s_n_llhttp__internal__n_invoke_test_flags_4: {
- switch (llhttp__internal__c_test_flags_2(state, p, endp)) {
- case 1:
- goto s_n_llhttp__internal__n_header_value_lenient;
- default:
- goto s_n_llhttp__internal__n_error_16;
- }
- /* UNREACHABLE */;
- abort();
- }
s_n_llhttp__internal__n_invoke_update_header_state_3: {
switch (llhttp__internal__c_update_header_state(state, p, endp)) {
default:
/* UNREACHABLE */;
abort();
}
- s_n_llhttp__internal__n_invoke_load_header_state_4: {
+ s_n_llhttp__internal__n_invoke_load_header_state_3: {
switch (llhttp__internal__c_load_header_state(state, p, endp)) {
case 5:
goto s_n_llhttp__internal__n_invoke_or_flags_11;
/* UNREACHABLE */;
abort();
}
- s_n_llhttp__internal__n_span_end_llhttp__on_header_value_4: {
+ s_n_llhttp__internal__n_span_end_llhttp__on_header_value_3: {
const unsigned char* start;
int err;
if (err != 0) {
state->error = err;
state->error_pos = (const char*) p;
- state->_current = (void*) (intptr_t) s_n_llhttp__internal__n_error_18;
+ state->_current = (void*) (intptr_t) s_n_llhttp__internal__n_error_15;
return s_error;
}
- goto s_n_llhttp__internal__n_error_18;
+ goto s_n_llhttp__internal__n_error_15;
/* UNREACHABLE */;
abort();
}
s_n_llhttp__internal__n_invoke_mul_add_content_length_1: {
switch (llhttp__internal__c_mul_add_content_length_1(state, p, endp, match)) {
case 1:
- goto s_n_llhttp__internal__n_span_end_llhttp__on_header_value_4;
+ goto s_n_llhttp__internal__n_span_end_llhttp__on_header_value_3;
default:
goto s_n_llhttp__internal__n_header_value_content_length;
}
/* UNREACHABLE */;
abort();
}
- s_n_llhttp__internal__n_span_end_llhttp__on_header_value_5: {
+ s_n_llhttp__internal__n_span_end_llhttp__on_header_value_4: {
const unsigned char* start;
int err;
if (err != 0) {
state->error = err;
state->error_pos = (const char*) p;
- state->_current = (void*) (intptr_t) s_n_llhttp__internal__n_error_19;
+ state->_current = (void*) (intptr_t) s_n_llhttp__internal__n_error_16;
return s_error;
}
- goto s_n_llhttp__internal__n_error_19;
+ goto s_n_llhttp__internal__n_error_16;
/* UNREACHABLE */;
abort();
}
- s_n_llhttp__internal__n_error_17: {
+ s_n_llhttp__internal__n_error_14: {
state->error = 0x4;
state->reason = "Duplicate Content-Length";
state->error_pos = (const char*) p;
/* UNREACHABLE */;
abort();
}
- s_n_llhttp__internal__n_invoke_test_flags_5: {
- switch (llhttp__internal__c_test_flags_5(state, p, endp)) {
+ s_n_llhttp__internal__n_invoke_test_flags_2: {
+ switch (llhttp__internal__c_test_flags_2(state, p, endp)) {
case 0:
goto s_n_llhttp__internal__n_header_value_content_length;
default:
- goto s_n_llhttp__internal__n_error_17;
+ goto s_n_llhttp__internal__n_error_14;
}
/* UNREACHABLE */;
abort();
s_n_llhttp__internal__n_invoke_update_header_state_8: {
switch (llhttp__internal__c_update_header_state_8(state, p, endp)) {
default:
- goto s_n_llhttp__internal__n_header_value_otherwise;
+ goto s_n_llhttp__internal__n_header_value_discard_rws;
}
/* UNREACHABLE */;
abort();
s_n_llhttp__internal__n_invoke_or_flags_16: {
switch (llhttp__internal__c_or_flags_16(state, p, endp)) {
default:
- goto s_n_llhttp__internal__n_header_value_te_chunked;
- }
- /* UNREACHABLE */;
- abort();
- }
- s_n_llhttp__internal__n_invoke_or_flags_17: {
- switch (llhttp__internal__c_or_flags_17(state, p, endp)) {
- default:
goto s_n_llhttp__internal__n_invoke_update_header_state_7;
}
/* UNREACHABLE */;
abort();
}
- s_n_llhttp__internal__n_invoke_load_header_state_2: {
+ s_n_llhttp__internal__n_invoke_load_header_state_1: {
switch (llhttp__internal__c_load_header_state(state, p, endp)) {
case 1:
goto s_n_llhttp__internal__n_header_value_connection;
case 2:
- goto s_n_llhttp__internal__n_invoke_test_flags_5;
+ goto s_n_llhttp__internal__n_invoke_test_flags_2;
case 3:
- goto s_n_llhttp__internal__n_invoke_or_flags_16;
+ goto s_n_llhttp__internal__n_header_value_te_chunked;
case 4:
- goto s_n_llhttp__internal__n_invoke_or_flags_17;
+ goto s_n_llhttp__internal__n_invoke_or_flags_16;
default:
goto s_n_llhttp__internal__n_header_value;
}
/* UNREACHABLE */;
abort();
}
- s_n_llhttp__internal__n_error_20: {
+ s_n_llhttp__internal__n_error_17: {
state->error = 0xa;
state->reason = "Invalid header token";
state->error_pos = (const char*) p;
/* UNREACHABLE */;
abort();
}
- s_n_llhttp__internal__n_error_21: {
+ s_n_llhttp__internal__n_error_18: {
state->error = 0x7;
state->reason = "Expected CRLF";
state->error_pos = (const char*) p;
/* UNREACHABLE */;
abort();
}
- s_n_llhttp__internal__n_error_22: {
+ s_n_llhttp__internal__n_error_19: {
state->error = 0x9;
state->reason = "Expected CRLF after version";
state->error_pos = (const char*) p;
/* UNREACHABLE */;
abort();
}
- s_n_llhttp__internal__n_error_23: {
+ s_n_llhttp__internal__n_error_20: {
state->error = 0x9;
state->reason = "Invalid minor version";
state->error_pos = (const char*) p;
/* UNREACHABLE */;
abort();
}
- s_n_llhttp__internal__n_error_24: {
+ s_n_llhttp__internal__n_error_21: {
state->error = 0x9;
state->reason = "Expected dot";
state->error_pos = (const char*) p;
/* UNREACHABLE */;
abort();
}
- s_n_llhttp__internal__n_error_25: {
+ s_n_llhttp__internal__n_error_22: {
state->error = 0x9;
state->reason = "Invalid major version";
state->error_pos = (const char*) p;
/* UNREACHABLE */;
abort();
}
- s_n_llhttp__internal__n_error_27: {
+ s_n_llhttp__internal__n_error_24: {
state->error = 0x8;
state->reason = "Expected HTTP/";
state->error_pos = (const char*) p;
/* UNREACHABLE */;
abort();
}
- s_n_llhttp__internal__n_error_26: {
+ s_n_llhttp__internal__n_error_23: {
state->error = 0x8;
state->reason = "Expected SOURCE method for ICE/x.x request";
state->error_pos = (const char*) p;
s_n_llhttp__internal__n_invoke_is_equal_method_1: {
switch (llhttp__internal__c_is_equal_method_1(state, p, endp)) {
case 0:
- goto s_n_llhttp__internal__n_error_26;
+ goto s_n_llhttp__internal__n_error_23;
default:
goto s_n_llhttp__internal__n_req_http_major;
}
/* UNREACHABLE */;
abort();
}
- s_n_llhttp__internal__n_error_28: {
+ s_n_llhttp__internal__n_error_25: {
state->error = 0x7;
state->reason = "Invalid char in url fragment start";
state->error_pos = (const char*) p;
/* UNREACHABLE */;
abort();
}
- s_n_llhttp__internal__n_error_29: {
+ s_n_llhttp__internal__n_error_26: {
state->error = 0x7;
state->reason = "Invalid char in url query";
state->error_pos = (const char*) p;
/* UNREACHABLE */;
abort();
}
- s_n_llhttp__internal__n_error_30: {
+ s_n_llhttp__internal__n_error_27: {
state->error = 0x7;
state->reason = "Invalid char in url path";
state->error_pos = (const char*) p;
/* UNREACHABLE */;
abort();
}
- s_n_llhttp__internal__n_error_31: {
+ s_n_llhttp__internal__n_error_28: {
state->error = 0x7;
state->reason = "Double @ in url";
state->error_pos = (const char*) p;
/* UNREACHABLE */;
abort();
}
- s_n_llhttp__internal__n_error_32: {
+ s_n_llhttp__internal__n_error_29: {
state->error = 0x7;
state->reason = "Unexpected char in url server";
state->error_pos = (const char*) p;
/* UNREACHABLE */;
abort();
}
- s_n_llhttp__internal__n_error_33: {
+ s_n_llhttp__internal__n_error_30: {
state->error = 0x7;
state->reason = "Unexpected char in url server";
state->error_pos = (const char*) p;
/* UNREACHABLE */;
abort();
}
- s_n_llhttp__internal__n_error_35: {
+ s_n_llhttp__internal__n_error_32: {
state->error = 0x7;
state->reason = "Unexpected char in url schema";
state->error_pos = (const char*) p;
/* UNREACHABLE */;
abort();
}
- s_n_llhttp__internal__n_error_36: {
+ s_n_llhttp__internal__n_error_33: {
state->error = 0x7;
state->reason = "Unexpected char in url schema";
state->error_pos = (const char*) p;
/* UNREACHABLE */;
abort();
}
- s_n_llhttp__internal__n_error_37: {
+ s_n_llhttp__internal__n_error_34: {
state->error = 0x7;
state->reason = "Unexpected start char in url";
state->error_pos = (const char*) p;
/* UNREACHABLE */;
abort();
}
- s_n_llhttp__internal__n_error_38: {
+ s_n_llhttp__internal__n_error_35: {
state->error = 0x6;
state->reason = "Expected space after method";
state->error_pos = (const char*) p;
/* UNREACHABLE */;
abort();
}
- s_n_llhttp__internal__n_error_46: {
+ s_n_llhttp__internal__n_error_43: {
state->error = 0x6;
state->reason = "Invalid method encountered";
state->error_pos = (const char*) p;
/* UNREACHABLE */;
abort();
}
- s_n_llhttp__internal__n_error_39: {
+ s_n_llhttp__internal__n_error_36: {
state->error = 0xd;
state->reason = "Response overflow";
state->error_pos = (const char*) p;
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_39;
+ goto s_n_llhttp__internal__n_error_36;
default:
goto s_n_llhttp__internal__n_res_status_code;
}
/* UNREACHABLE */;
abort();
}
- s_n_llhttp__internal__n_error_40: {
+ s_n_llhttp__internal__n_error_37: {
state->error = 0xd;
state->reason = "Invalid response status";
state->error_pos = (const char*) p;
/* UNREACHABLE */;
abort();
}
- s_n_llhttp__internal__n_error_41: {
+ s_n_llhttp__internal__n_error_38: {
state->error = 0x9;
state->reason = "Expected space after version";
state->error_pos = (const char*) p;
/* UNREACHABLE */;
abort();
}
- s_n_llhttp__internal__n_error_42: {
+ s_n_llhttp__internal__n_error_39: {
state->error = 0x9;
state->reason = "Invalid minor version";
state->error_pos = (const char*) p;
/* UNREACHABLE */;
abort();
}
- s_n_llhttp__internal__n_error_43: {
+ s_n_llhttp__internal__n_error_40: {
state->error = 0x9;
state->reason = "Expected dot";
state->error_pos = (const char*) p;
/* UNREACHABLE */;
abort();
}
- s_n_llhttp__internal__n_error_44: {
+ s_n_llhttp__internal__n_error_41: {
state->error = 0x9;
state->reason = "Invalid major version";
state->error_pos = (const char*) p;
/* UNREACHABLE */;
abort();
}
- s_n_llhttp__internal__n_error_47: {
+ s_n_llhttp__internal__n_error_44: {
state->error = 0x8;
state->reason = "Expected HTTP/";
state->error_pos = (const char*) p;
/* UNREACHABLE */;
abort();
}
- s_n_llhttp__internal__n_error_45: {
+ s_n_llhttp__internal__n_error_42: {
state->error = 0x8;
state->reason = "Invalid word encountered";
state->error_pos = (const char*) p;
abort();
}
s_n_llhttp__internal__n_pause_8: {
- state->error = 0x15;
+ state->error = 0x14;
state->reason = "on_message_begin pause";
state->error_pos = (const char*) p;
state->_current = (void*) (intptr_t) s_n_llhttp__internal__n_invoke_load_type;
abort();
}
s_n_llhttp__internal__n_error: {
- state->error = 0x10;
+ state->error = 0xf;
state->reason = "`on_message_begin` callback error";
state->error_pos = (const char*) p;
state->_current = (void*) (intptr_t) s_error;
switch (llhttp__on_message_begin(state, p, endp)) {
case 0:
goto s_n_llhttp__internal__n_invoke_load_type;
- case 21:
+ case 20:
goto s_n_llhttp__internal__n_pause_8;
default:
goto s_n_llhttp__internal__n_error;