| FazBrowse GitHub Viewer | Trending | | Home |
| Tools: [Download Repo ZIP] [Original HTTPS Page] |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
@@ -0,0 +1 @@ | |||
| 1 | + libllhttp.pc | ||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
@@ -1,7 +1,7 @@ | |||
| 1 | 1 | cmake_minimum_required(VERSION 3.25.0) | |
| 2 | 2 | cmake_policy(SET CMP0069 NEW) | |
| 3 | 3 | ||
| 4 | - project(llhttp VERSION 9.3.0) | ||
| 4 | + project(llhttp VERSION 9.3.1) | ||
| 5 | 5 | include(GNUInstallDirs) | |
| 6 | 6 | ||
| 7 | 7 | set(CMAKE_C_STANDARD 99) | |
@@ -24,8 +24,8 @@ endif() | |||
| 24 | 24 | # Options | |
| 25 | 25 | # | |
| 26 | 26 | # Generic option | |
| 27 | - option(BUILD_SHARED_LIBS "Build shared libraries (.dll/.so)" ON) | ||
| 28 | - option(BUILD_STATIC_LIBS "Build static libraries (.lib/.a)" OFF) | ||
| 27 | + option(LLHTTP_BUILD_SHARED_LIBS "Build shared libraries (.dll/.so)" ON) | ||
| 28 | + option(LLHTTP_BUILD_STATIC_LIBS "Build static libraries (.lib/.a)" OFF) | ||
| 29 | 29 | ||
| 30 | 30 | # Source code | |
| 31 | 31 | set(LLHTTP_SOURCES | |
@@ -80,21 +80,19 @@ function(config_library target) | |||
| 80 | 80 | ) | |
| 81 | 81 | endfunction(config_library target) | |
| 82 | 82 | ||
| 83 | - if(BUILD_SHARED_LIBS) | ||
| 83 | + if(LLHTTP_BUILD_SHARED_LIBS) | ||
| 84 | 84 | add_library(llhttp_shared SHARED | |
| 85 | 85 | ${llhttp_src} | |
| 86 | 86 | ) | |
| 87 | 87 | add_library(llhttp::llhttp ALIAS llhttp_shared) | |
| 88 | 88 | config_library(llhttp_shared) | |
| 89 | 89 | endif() | |
| 90 | 90 | ||
| 91 | - if(BUILD_STATIC_LIBS) | ||
| 91 | + if(LLHTTP_BUILD_STATIC_LIBS) | ||
| 92 | 92 | add_library(llhttp_static STATIC | |
| 93 | 93 | ${llhttp_src} | |
| 94 | 94 | ) | |
| 95 | - if(BUILD_SHARED_LIBS) | ||
| 96 | - add_library(llhttp::llhttp ALIAS llhttp_shared) | ||
| 97 | - else() | ||
| 95 | + if(NOT LLHTTP_BUILD_SHARED_LIBS) | ||
| 98 | 96 | add_library(llhttp::llhttp ALIAS llhttp_static) | |
| 99 | 97 | endif() | |
| 100 | 98 | config_library(llhttp_static) | |
@@ -113,6 +111,6 @@ message(STATUS "Project configure summary:") | |||
| 113 | 111 | message(STATUS "") | |
| 114 | 112 | message(STATUS " CMake build type .................: ${CMAKE_BUILD_TYPE}") | |
| 115 | 113 | message(STATUS " Install prefix ...................: ${CMAKE_INSTALL_PREFIX}") | |
| 116 | - message(STATUS " Build shared library .............: ${BUILD_SHARED_LIBS}") | ||
| 117 | - message(STATUS " Build static library .............: ${BUILD_STATIC_LIBS}") | ||
| 114 | + message(STATUS " Build shared library .............: ${LLHTTP_BUILD_SHARED_LIBS}") | ||
| 115 | + message(STATUS " Build static library .............: ${LLHTTP_BUILD_STATIC_LIBS}") | ||
| 118 | 116 | message(STATUS "") | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
@@ -435,14 +435,16 @@ If you want to use this library in a CMake project as a static library, you can | |||
| 435 | 435 | FetchContent_Declare(llhttp | |
| 436 | 436 | URL "https://github.com/nodejs/llhttp/archive/refs/tags/release/v8.1.0.tar.gz") | |
| 437 | 437 | ||
| 438 | - set(BUILD_SHARED_LIBS OFF CACHE INTERNAL "") | ||
| 439 | - set(BUILD_STATIC_LIBS ON CACHE INTERNAL "") | ||
| 438 | + set(LLHTTP_BUILD_SHARED_LIBS OFF CACHE INTERNAL "") | ||
| 439 | + set(LLHTTP_BUILD_STATIC_LIBS ON CACHE INTERNAL "") | ||
| 440 | 440 | FetchContent_MakeAvailable(llhttp) | |
| 441 | 441 | ||
| 442 | 442 | # Link with the llhttp_static target | |
| 443 | 443 | target_link_libraries(${EXAMPLE_PROJECT_NAME} ${PROJECT_LIBRARIES} llhttp_static ${PROJECT_NAME}) | |
| 444 | 444 | ``` | |
| 445 | 445 | ||
| 446 | + If using a version prior to 9.3.0, the `LLHTTP_BUILD_SHARED_LIBS` and `LLHTTP_BUILD_STATIC_LIBS` options are known as `BUILD_SHARED_LIBS` and `BUILD_STATIC_LIBS` and should be used instead. | ||
| 447 | + | ||
| 446 | 448 | _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._ | |
| 447 | 449 | ||
| 448 | 450 | ## Building on Windows | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
@@ -4,7 +4,7 @@ | |||
| 4 | 4 | ||
| 5 | 5 | #define LLHTTP_VERSION_MAJOR 9 | |
| 6 | 6 | #define LLHTTP_VERSION_MINOR 3 | |
| 7 | - #define LLHTTP_VERSION_PATCH 0 | ||
| 7 | + #define LLHTTP_VERSION_PATCH 1 | ||
| 8 | 8 | ||
| 9 | 9 | #ifndef INCLUDE_LLHTTP_ITSELF_H_ | |
| 10 | 10 | #define INCLUDE_LLHTTP_ITSELF_H_ | |
@@ -58,10 +58,8 @@ enum llhttp_errno { | |||
| 58 | 58 | HPE_OK = 0, | |
| 59 | 59 | HPE_INTERNAL = 1, | |
| 60 | 60 | HPE_STRICT = 2, | |
| 61 | - HPE_CR_EXPECTED = 25, | ||
| 62 | 61 | HPE_LF_EXPECTED = 3, | |
| 63 | 62 | HPE_UNEXPECTED_CONTENT_LENGTH = 4, | |
| 64 | - HPE_UNEXPECTED_SPACE = 30, | ||
| 65 | 63 | HPE_CLOSED_CONNECTION = 5, | |
| 66 | 64 | HPE_INVALID_METHOD = 6, | |
| 67 | 65 | HPE_INVALID_URL = 7, | |
@@ -82,15 +80,17 @@ enum llhttp_errno { | |||
| 82 | 80 | HPE_PAUSED_UPGRADE = 22, | |
| 83 | 81 | HPE_PAUSED_H2_UPGRADE = 23, | |
| 84 | 82 | HPE_USER = 24, | |
| 83 | + HPE_CR_EXPECTED = 25, | ||
| 85 | 84 | HPE_CB_URL_COMPLETE = 26, | |
| 86 | 85 | HPE_CB_STATUS_COMPLETE = 27, | |
| 87 | - HPE_CB_METHOD_COMPLETE = 32, | ||
| 88 | - HPE_CB_VERSION_COMPLETE = 33, | ||
| 89 | 86 | HPE_CB_HEADER_FIELD_COMPLETE = 28, | |
| 90 | 87 | HPE_CB_HEADER_VALUE_COMPLETE = 29, | |
| 88 | + HPE_UNEXPECTED_SPACE = 30, | ||
| 89 | + HPE_CB_RESET = 31, | ||
| 90 | + HPE_CB_METHOD_COMPLETE = 32, | ||
| 91 | + HPE_CB_VERSION_COMPLETE = 33, | ||
| 91 | 92 | HPE_CB_CHUNK_EXTENSION_NAME_COMPLETE = 34, | |
| 92 | 93 | HPE_CB_CHUNK_EXTENSION_VALUE_COMPLETE = 35, | |
| 93 | - HPE_CB_RESET = 31, | ||
| 94 | 94 | HPE_CB_PROTOCOL_COMPLETE = 38 | |
| 95 | 95 | }; | |
| 96 | 96 | typedef enum llhttp_errno llhttp_errno_t; | |
@@ -294,10 +294,8 @@ typedef enum llhttp_status llhttp_status_t; | |||
| 294 | 294 | XX(0, OK, OK) \ | |
| 295 | 295 | XX(1, INTERNAL, INTERNAL) \ | |
| 296 | 296 | XX(2, STRICT, STRICT) \ | |
| 297 | - XX(25, CR_EXPECTED, CR_EXPECTED) \ | ||
| 298 | 297 | XX(3, LF_EXPECTED, LF_EXPECTED) \ | |
| 299 | 298 | XX(4, UNEXPECTED_CONTENT_LENGTH, UNEXPECTED_CONTENT_LENGTH) \ | |
| 300 | - XX(30, UNEXPECTED_SPACE, UNEXPECTED_SPACE) \ | ||
| 301 | 299 | XX(5, CLOSED_CONNECTION, CLOSED_CONNECTION) \ | |
| 302 | 300 | XX(6, INVALID_METHOD, INVALID_METHOD) \ | |
| 303 | 301 | XX(7, INVALID_URL, INVALID_URL) \ | |
@@ -318,15 +316,17 @@ typedef enum llhttp_status llhttp_status_t; | |||
| 318 | 316 | XX(22, PAUSED_UPGRADE, PAUSED_UPGRADE) \ | |
| 319 | 317 | XX(23, PAUSED_H2_UPGRADE, PAUSED_H2_UPGRADE) \ | |
| 320 | 318 | XX(24, USER, USER) \ | |
| 319 | + XX(25, CR_EXPECTED, CR_EXPECTED) \ | ||
| 321 | 320 | XX(26, CB_URL_COMPLETE, CB_URL_COMPLETE) \ | |
| 322 | 321 | XX(27, CB_STATUS_COMPLETE, CB_STATUS_COMPLETE) \ | |
| 323 | - XX(32, CB_METHOD_COMPLETE, CB_METHOD_COMPLETE) \ | ||
| 324 | - XX(33, CB_VERSION_COMPLETE, CB_VERSION_COMPLETE) \ | ||
| 325 | 322 | XX(28, CB_HEADER_FIELD_COMPLETE, CB_HEADER_FIELD_COMPLETE) \ | |
| 326 | 323 | XX(29, CB_HEADER_VALUE_COMPLETE, CB_HEADER_VALUE_COMPLETE) \ | |
| 324 | + XX(30, UNEXPECTED_SPACE, UNEXPECTED_SPACE) \ | ||
| 325 | + XX(31, CB_RESET, CB_RESET) \ | ||
| 326 | + XX(32, CB_METHOD_COMPLETE, CB_METHOD_COMPLETE) \ | ||
| 327 | + XX(33, CB_VERSION_COMPLETE, CB_VERSION_COMPLETE) \ | ||
| 327 | 328 | XX(34, CB_CHUNK_EXTENSION_NAME_COMPLETE, CB_CHUNK_EXTENSION_NAME_COMPLETE) \ | |
| 328 | 329 | XX(35, CB_CHUNK_EXTENSION_VALUE_COMPLETE, CB_CHUNK_EXTENSION_VALUE_COMPLETE) \ | |
| 329 | - XX(31, CB_RESET, CB_RESET) \ | ||
| 330 | 330 | XX(38, CB_PROTOCOL_COMPLETE, CB_PROTOCOL_COMPLETE) \ | |
| 331 | 331 | ||
| 332 | 332 | ||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
@@ -10,7 +10,7 @@ | |||
| 10 | 10 | #endif /* _MSC_VER */ | |
| 11 | 11 | #endif /* __SSE4_2__ */ | |
| 12 | 12 | ||
| 13 | - #ifdef __ARM_NEON__ | ||
| 13 | + #if defined(__ARM_NEON__) || defined(__ARM_NEON) | ||
| 14 | 14 | #include <arm_neon.h> | |
| 15 | 15 | #endif /* __ARM_NEON__ */ | |
| 16 | 16 | ||
@@ -1542,7 +1542,7 @@ static llparse_state_t llhttp__internal__run( | |||
| 1542 | 1542 | 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, | |
| 1543 | 1543 | 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 1, 1, | |
| 1544 | 1544 | 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, | |
| 1545 | - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, | ||
| 1545 | + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, | ||
| 1546 | 1546 | 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, | |
| 1547 | 1547 | 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, | |
| 1548 | 1548 | 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, | |
@@ -2625,7 +2625,7 @@ static llparse_state_t llhttp__internal__run( | |||
| 2625 | 2625 | goto s_n_llhttp__internal__n_header_value_otherwise; | |
| 2626 | 2626 | } | |
| 2627 | 2627 | #endif /* __SSE4_2__ */ | |
| 2628 | - #ifdef __ARM_NEON__ | ||
| 2628 | + #if defined(__ARM_NEON__) || defined(__ARM_NEON) | ||
| 2629 | 2629 | while (endp - p >= 16) { | |
| 2630 | 2630 | uint8x16_t input; | |
| 2631 | 2631 | uint8x16_t single; | |
@@ -2639,19 +2639,23 @@ static llparse_state_t llhttp__internal__run( | |||
| 2639 | 2639 | /* Find first character that does not match `ranges` */ | |
| 2640 | 2640 | single = vceqq_u8(input, vdupq_n_u8(0x9)); | |
| 2641 | 2641 | mask = single; | |
| 2642 | - single = vandq_u16( | ||
| 2642 | + single = vandq_u8( | ||
| 2643 | 2643 | vcgeq_u8(input, vdupq_n_u8(' ')), | |
| 2644 | 2644 | vcleq_u8(input, vdupq_n_u8('~')) | |
| 2645 | 2645 | ); | |
| 2646 | - mask = vorrq_u16(mask, single); | ||
| 2647 | - single = vandq_u16( | ||
| 2646 | + mask = vorrq_u8(mask, single); | ||
| 2647 | + single = vandq_u8( | ||
| 2648 | 2648 | vcgeq_u8(input, vdupq_n_u8(0x80)), | |
| 2649 | 2649 | vcleq_u8(input, vdupq_n_u8(0xff)) | |
| 2650 | 2650 | ); | |
| 2651 | - mask = vorrq_u16(mask, single); | ||
| 2652 | - narrow = vshrn_n_u16(mask, 4); | ||
| 2651 | + mask = vorrq_u8(mask, single); | ||
| 2652 | + narrow = vshrn_n_u16(vreinterpretq_u16_u8(mask), 4); | ||
| 2653 | 2653 | match_mask = ~vget_lane_u64(vreinterpret_u64_u8(narrow), 0); | |
| 2654 | - match_len = __builtin_ctzll(match_mask) >> 2; | ||
| 2654 | + if (match_mask == 0) { | ||
| 2655 | + match_len = 16; | ||
| 2656 | + } else { | ||
| 2657 | + match_len = __builtin_ctzll(match_mask) >> 2; | ||
| 2658 | + } | ||
| 2655 | 2659 | if (match_len != 16) { | |
| 2656 | 2660 | p += match_len; | |
| 2657 | 2661 | goto s_n_llhttp__internal__n_header_value_otherwise; | |
| Back | FazBrowse Home | New Git URL |
0 commit comments