diff options
| -rwxr-xr-x | .gitignore | 3 | ||||
| -rw-r--r-- | .gitlab-ci.yml | 233 | ||||
| -rw-r--r-- | CMakeLists.txt | 10 | ||||
| -rw-r--r-- | src/HTTP_Common.c | 244 | ||||
| -rw-r--r-- | src/HTTP_Message.c | 10 | ||||
| -rw-r--r-- | src/HTTP_Message_Entry.c | 9 | ||||
| -rw-r--r-- | src/lib/http-parser-2.9.0.tar.gz | bin | 51324 -> 0 bytes | |||
| -rw-r--r-- | src/lib/libhttp_parser.a | bin | 56424 -> 0 bytes | |||
| -rw-r--r-- | test/CMakeLists.txt | 72 | ||||
| -rw-r--r-- | test/http_test_plug.cpp | 3 | ||||
| -rw-r--r-- | test/test_protocol_run.zip | bin | 795325 -> 0 bytes | |||
| -rw-r--r-- | vendor/CMakeLists.txt | 17 | ||||
| -rw-r--r-- | vendor/http-parser-2.9.0.tar.gz | bin | 0 -> 51272 bytes |
13 files changed, 355 insertions, 246 deletions
@@ -4,8 +4,9 @@ SI/ *.so *.si4project/ *.d -build*/ +build/* .vscode .idea core.* version.txt +.cache/ diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index be9c9f2..c3220ec 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -1,17 +1,69 @@ variables: GIT_STRATEGY: "clone" - BUILD_IMAGE_CENTOS7: "git.mesalab.cn:7443/mesa_platform/build-env:master" - BUILD_IMAGE_CENTOS8: "git.mesalab.cn:7443/mesa_platform/build-env:rockylinux" + BUILD_IMAGE_CENTOS8: "git.mesalab.cn:7443/mesa_platform/build-env:rocky8-for-sapp" + BUILD_IMAGE_AARCH64_ROCKY9: "git.mesalab.cn:7443/mesa_platform/build-env:rocky9-aarch64" BUILD_PADDING_PREFIX: /tmp/padding_for_CPACK_RPM_BUILD_SOURCE_DIRS_PREFIX_PREFIX_PREFIX_PREFIX_PREFIX_PREFIX/ - INSTALL_DEPENDENCY_PLATFORM: sapp-devel libasan systemd-devel libnsl - INSTALL_DEPENDENCY_FRAMEWORK: libMESA_handle_logger-devel libcjson-devel libMESA_field_stat2-devel framework_env libMESA_prof_load-devel libbreakpad_mini-devel libMESA_htable-devel libMESA_field_stat-devel libdocumentanalyze-devel - INSTALL_PREFIX: "/home/mesasoft/sapp_run/" + INSTALL_DEPENDENCY_PLATFORM: sapp-devel libasan systemd-devel libnsl libmnl-devel libnfnetlink-devel + INSTALL_DEPENDENCY_FRAMEWORK: libMESA_handle_logger-devel libcjson-devel libMESA_field_stat2 libMESA_field_stat2-devel framework_env libMESA_prof_load-devel libbreakpad_mini-devel libMESA_htable-devel libMESA_field_stat-devel libdocumentanalyze-devel libfieldstat3 libfieldstat4 + INSTALL_PREFIX: "/opt/tsg/sapp/" stages: +- cppcheck - build - test - package +############################################################################### +# cppcheck +############################################################################### +.cppcheck_script: + variables: + BUILD_TYPE: Debug + stage: cppcheck + script: + - mkdir -p build; cd build; cmake3 -DCMAKE_EXPORT_COMPILE_COMMANDS=ON .. + - > + cppcheck --project=compile_commands.json + --enable=all + --error-exitcode=1 + --suppress=unusedFunction + --suppress=missingInclude + --suppress=uselessAssignmentPtrArg + --suppress=unmatchedSuppression + --suppress=variableScope + --suppress=unreadVariable + --suppress=cstyleCast + --suppress=memleakOnRealloc + --suppress=constParameter + --suppress=uselessAssignmentArg + --suppress=uninitvar + --suppress=unusedStructMember + --suppress=preprocessorErrorDirective + --suppress=syntaxError + --suppress=alidscanf + --suppress=knownConditionTrueFalse + --suppress=invalidscanf + --suppress=nullPointerRedundantCheck + --suppress=shiftNegativeLHS + --suppress=unsignedLessThanZero + --suppress=arithOperationsOnVoidPointer + +run_cppcheck_for_x86_64_rocky8: + extends: .cppcheck_script + image: $BUILD_IMAGE_CENTOS8 + tags: + - tsg-os-builder-el8 + +run_cppcheck_for_aarch64_rocky9: + extends: .cppcheck_script + image: $BUILD_IMAGE_AARCH64_ROCKY9 + tags: + - tsg-os-builder-aarch64 + +############################################################################### +# build for rocky8 +############################################################################### + .build_before_script: before_script: - mkdir -p $BUILD_PADDING_PREFIX/$CI_PROJECT_NAMESPACE/ @@ -21,53 +73,18 @@ stages: - yum makecache - yum install -y elfutils-libelf-devel - -.build_by_travis_for_centos7: - stage: build - image: $BUILD_IMAGE_CENTOS7 - extends: .build_before_script - script: - - yum install -y libmnl-devel - - yum install -y libnfnetlink-devel - - ./ci/travis.sh - - cd build - tags: - - share - .build_by_travis_for_centos8: stage: build image: $BUILD_IMAGE_CENTOS8 extends: .build_before_script script: - - dnf --enablerepo=powertools install -y libmnl-devel - - dnf --enablerepo=powertools install -y libnfnetlink-devel - ./ci/travis.sh tags: - - share - -run_test_for_centos7: - stage: test - extends: .build_by_travis_for_centos7 - script: - - yum makecache - - ./ci/travis.sh - - cd build - - ./test/HTTPUintTest - - ctest --verbose - -run_test_for_centos8: - stage: test - extends: .build_by_travis_for_centos8 - script: - - yum makecache - - ./ci/travis.sh - - cd build - - ./test/HTTPUintTest - - ctest3 --verbose + - tsg-os-builder-el8 -branch_build_debug_for_centos7: +branch_build_debug_for_centos8: stage: build - extends: .build_by_travis_for_centos7 + extends: .build_by_travis_for_centos8 variables: BUILD_TYPE: Debug except: @@ -75,27 +92,27 @@ branch_build_debug_for_centos7: - /^master.*$/i - tags -branch_build_release_for_centos7: +branch_build_release_for_centos8: stage: build variables: BUILD_TYPE: RelWithDebInfo - extends: .build_by_travis_for_centos7 + extends: .build_by_travis_for_centos8 except: - /^develop.*$/i - /^master.*$/i - tags -develop_build_debug_for_centos7: +develop_build_debug_for_centos8: stage: build - extends: .build_by_travis_for_centos7 + extends: .build_by_travis_for_centos8 variables: BUILD_TYPE: Debug PACKAGE: 1 UPLOAD_RPM: 1 ASAN_OPTION: ADDRESS TESTING_VERSION_BUILD: 1 - PULP3_REPO_NAME: protocol-testing-x86_64.el7 - PULP3_DIST_NAME: protocol-testing-x86_64.el7 + PULP3_REPO_NAME: protocol-testing-x86_64.el8 + PULP3_DIST_NAME: protocol-testing-x86_64.el8 artifacts: name: "http-$CI_COMMIT_REF_NAME-debug" paths: @@ -104,16 +121,16 @@ develop_build_debug_for_centos7: - /^develop.*$/i - /^master.*$/i -develop_build_release_for_centos7: +develop_build_release_for_centos8: stage: build - extends: .build_by_travis_for_centos7 + extends: .build_by_travis_for_centos8 variables: BUILD_TYPE: RelWithDebInfo PACKAGE: 1 UPLOAD_RPM: 1 TESTING_VERSION_BUILD: 1 - PULP3_REPO_NAME: protocol-testing-x86_64.el7 - PULP3_DIST_NAME: protocol-testing-x86_64.el7 + PULP3_REPO_NAME: protocol-testing-x86_64.el8 + PULP3_DIST_NAME: protocol-testing-x86_64.el8 artifacts: name: "http-$CI_COMMIT_REF_NAME-release" paths: @@ -122,16 +139,16 @@ develop_build_release_for_centos7: - /^develop.*$/i - /^master.*$/i -release_build_debug_for_centos7: +release_build_debug_for_centos8: stage: package variables: BUILD_TYPE: Debug PACKAGE: 1 UPLOAD_RPM: 1 ASAN_OPTION: ADDRESS - PULP3_REPO_NAME: protocol-stable-x86_64.el7 - PULP3_DIST_NAME: protocol-stable-x86_64.el7 - extends: .build_by_travis_for_centos7 + PULP3_REPO_NAME: protocol-stable-x86_64.el8 + PULP3_DIST_NAME: protocol-stable-x86_64.el8 + extends: .build_by_travis_for_centos8 artifacts: name: "http-$CI_COMMIT_REF_NAME-debug" paths: @@ -139,7 +156,7 @@ release_build_debug_for_centos7: only: - tags -release_build_release_for_centos7: +release_build_release_for_centos8: stage: package variables: BUILD_TYPE: RelWithDebInfo @@ -147,9 +164,9 @@ release_build_release_for_centos7: UPLOAD_RPM: 1 UPLOAD_SYMBOL_FILES: 0 SYMBOL_TARGET: http - PULP3_REPO_NAME: protocol-stable-x86_64.el7 - PULP3_DIST_NAME: protocol-stable-x86_64.el7 - extends: .build_by_travis_for_centos7 + PULP3_REPO_NAME: protocol-stable-x86_64.el8 + PULP3_DIST_NAME: protocol-stable-x86_64.el8 + extends: .build_by_travis_for_centos8 artifacts: name: "http-$CI_COMMIT_REF_NAME-release" paths: @@ -157,9 +174,21 @@ release_build_release_for_centos7: only: - tags -branch_build_debug_for_centos8: +############################################################################### +# build for rocky9 +############################################################################### +.build_by_travis_for_rocky9: stage: build - extends: .build_by_travis_for_centos8 + image: $BUILD_IMAGE_AARCH64_ROCKY9 + extends: .build_before_script + script: + - ./ci/travis.sh + tags: + - tsg-os-builder-aarch64 + +branch_build_debug_for_rocky9: + stage: build + extends: .build_by_travis_for_rocky9 variables: BUILD_TYPE: Debug except: @@ -167,27 +196,27 @@ branch_build_debug_for_centos8: - /^master.*$/i - tags -branch_build_release_for_centos8: +branch_build_release_for_rocky9: stage: build variables: BUILD_TYPE: RelWithDebInfo - extends: .build_by_travis_for_centos8 + extends: .build_by_travis_for_rocky9 except: - /^develop.*$/i - /^master.*$/i - tags -develop_build_debug_for_centos8: +develop_build_debug_for_rocky9: stage: build - extends: .build_by_travis_for_centos8 + extends: .build_by_travis_for_rocky9 variables: BUILD_TYPE: Debug PACKAGE: 1 UPLOAD_RPM: 1 ASAN_OPTION: ADDRESS TESTING_VERSION_BUILD: 1 - PULP3_REPO_NAME: protocol-testing-x86_64.el8 - PULP3_DIST_NAME: protocol-testing-x86_64.el8 + PULP3_REPO_NAME: protocol-testing-aarch64.el9 + PULP3_DIST_NAME: protocol-testing-aarch64.el9 artifacts: name: "http-$CI_COMMIT_REF_NAME-debug" paths: @@ -196,16 +225,16 @@ develop_build_debug_for_centos8: - /^develop.*$/i - /^master.*$/i -develop_build_release_for_centos8: +develop_build_release_for_rocky9: stage: build - extends: .build_by_travis_for_centos8 + extends: .build_by_travis_for_rocky9 variables: BUILD_TYPE: RelWithDebInfo PACKAGE: 1 UPLOAD_RPM: 1 TESTING_VERSION_BUILD: 1 - PULP3_REPO_NAME: protocol-testing-x86_64.el8 - PULP3_DIST_NAME: protocol-testing-x86_64.el8 + PULP3_REPO_NAME: protocol-testing-aarch64.el9 + PULP3_DIST_NAME: protocol-testing-aarch64.el9 artifacts: name: "http-$CI_COMMIT_REF_NAME-release" paths: @@ -214,16 +243,16 @@ develop_build_release_for_centos8: - /^develop.*$/i - /^master.*$/i -release_build_debug_for_centos8: +release_build_debug_for_rocky9: stage: package variables: BUILD_TYPE: Debug PACKAGE: 1 UPLOAD_RPM: 1 ASAN_OPTION: ADDRESS - PULP3_REPO_NAME: protocol-stable-x86_64.el8 - PULP3_DIST_NAME: protocol-stable-x86_64.el8 - extends: .build_by_travis_for_centos8 + PULP3_REPO_NAME: protocol-stable-aarch64.el9 + PULP3_DIST_NAME: protocol-stable-aarch64.el9 + extends: .build_by_travis_for_rocky9 artifacts: name: "http-$CI_COMMIT_REF_NAME-debug" paths: @@ -231,7 +260,7 @@ release_build_debug_for_centos8: only: - tags -release_build_release_for_centos8: +release_build_release_for_rocky9: stage: package variables: BUILD_TYPE: RelWithDebInfo @@ -239,12 +268,54 @@ release_build_release_for_centos8: UPLOAD_RPM: 1 UPLOAD_SYMBOL_FILES: 0 SYMBOL_TARGET: http - PULP3_REPO_NAME: protocol-stable-x86_64.el8 - PULP3_DIST_NAME: protocol-stable-x86_64.el8 - extends: .build_by_travis_for_centos8 + PULP3_REPO_NAME: protocol-stable-aarch64.el9 + PULP3_DIST_NAME: protocol-stable-aarch64.el9 + extends: .build_by_travis_for_rocky9 artifacts: name: "http-$CI_COMMIT_REF_NAME-release" paths: - build/*.rpm only: - tags + +############################################################################### +# test +############################################################################### +.download_rpm_package: &download_rpm_package + - yumdownloader sapp-4.3.69.6dd815e + - yumdownloader sapp-devel-4.3.69.6dd815e + - mv sapp-4.3.69.6dd815e*.rpm /tmp/sapp.rpm + - mv sapp-devel-4.3.69.6dd815e*.rpm /tmp/sapp-devel.rpm + +.install_rpm_package: &install_rpm_package + - rpm -e sapp || true + - rpm -e sapp-devel || true + - rpm -ivh /tmp/sapp.rpm --prefix=${INSTALL_PREFIX} --force --nodeps + - rpm -ivh /tmp/sapp-devel.rpm --prefix=${INSTALL_PREFIX} --force --nodeps + - rpm -qa | grep sapp + - ls -l ${INSTALL_PREFIX} + - ldd ${INSTALL_PREFIX}/sapp + +run_test_for_centos8: + stage: test + extends: .build_by_travis_for_centos8 + script: + - yum makecache + - ./ci/travis.sh + - cd build + - ./test/HTTPUintTest + - *download_rpm_package + - *install_rpm_package + - ctest3 --verbose + +run_test_for_rocky9: + stage: test + extends: .build_by_travis_for_rocky9 + script: + - yum makecache + - ./ci/travis.sh + - cd build + - ./test/HTTPUintTest + - *download_rpm_package + - *install_rpm_package + - ctest3 --verbose diff --git a/CMakeLists.txt b/CMakeLists.txt index a1d07f0..3bd2125 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -4,6 +4,8 @@ set(lib_name http) project (${lib_name}) +add_subdirectory(vendor) + set(CMAKE_MODULE_PATH ${PROJECT_SOURCE_DIR}/cmake) include(Version) @@ -35,20 +37,22 @@ include_directories(./src/inc/) include_directories(./src/) if(CMAKE_INSTALL_PREFIX_INITIALIZED_TO_DEFAULT) - set(CMAKE_INSTALL_PREFIX "/home/mesasoft/sapp_run" CACHE PATH "default install path" FORCE) + set(CMAKE_INSTALL_PREFIX "/opt/tsg/sapp" CACHE PATH "default install path" FORCE) + message(STATUS "CMAKE_INSTALL_PREFIX='${CMAKE_INSTALL_PREFIX}'") endif() file(GLOB SRC "src/*.c" ) - set(HTTP_DEPEND_DYN_LIB MESA_handle_logger MESA_field_stat MESA_prof_load documentanalyze MESA_htable) # Shared Library Output add_library(http SHARED ${SRC}) set_target_properties(http PROPERTIES PREFIX "") -target_link_libraries(http ${HTTP_DEPEND_DYN_LIB} ${PROJECT_SOURCE_DIR}/src/lib/libhttp_parser.a) +# target_link_libraries(http ${HTTP_DEPEND_DYN_LIB} ${PROJECT_SOURCE_DIR}/src/lib/libhttp_parser.a) +target_link_libraries(http ${HTTP_DEPEND_DYN_LIB} http_parser-static) + if(DEFINED MESA_SHARED_INSTALL_DIR) set_target_properties(http PROPERTIES OUTPUT_NAME ${lib_name} LIBRARY_OUTPUT_DIRECTORY ${MESA_SHARED_INSTALL_DIR}) else() diff --git a/src/HTTP_Common.c b/src/HTTP_Common.c index 358da91..578d452 100644 --- a/src/HTTP_Common.c +++ b/src/HTTP_Common.c @@ -1,84 +1,87 @@ #include <stdio.h> -#include <string.h> +#include <stdlib.h> +#include <string.h> #include <ctype.h> #include "HTTP_Common.h" #include "HTTP_Message.h" - void http_freeBuf(int thread_seq, char **buf, uint32 *buflen) { - if(*buf!=NULL) + if (*buf != NULL) { - dictator_free(thread_seq,*buf); + dictator_free(thread_seq, *buf); *buf = NULL; *buflen = 0; - } + } return; } -char* double_memchr(const char* before, uint32 before_len, const char* this_data, uint32 this_len, char c) +char *double_memchr(const char *before, uint32 before_len, const char *this_data, uint32 this_len, char c) { /*before only find last two char*/ - if(before_len>=1) + if (before_len >= 1) { - if(*(before+(before_len-1))==c) return (char*)(before+(before_len-1)); + if (*(before + (before_len - 1)) == c) + return (char *)(before + (before_len - 1)); } - if(before_len>=2) + if (before_len >= 2) { - if(*(before+(before_len-2))==c) return (char*)(before+(before_len-2)); + if (*(before + (before_len - 2)) == c) + return (char *)(before + (before_len - 2)); } - return (char*)memchr(this_data,c,this_len); + return (char *)memchr(this_data, c, this_len); } /* char* double_memchr(const char* before, uint32 before_len, const char* this_data, uint32 this_len, char c) { - char*pos=(char*)memchr(before,c,before_len); - if(pos!=NULL) - { - return pos; - } - pos=(char*)memchr(this_data,c,this_len); - return pos; + char*pos=(char*)memchr(before,c,before_len); + if(pos!=NULL) + { + return pos; + } + pos=(char*)memchr(this_data,c,this_len); + return pos; } */ -char* double_memread(const char*before,uint32 before_len,const char* this_data,uint32 this_len,const char*pos,uint32 offset) +char *double_memread(const char *before, uint32 before_len, const char *this_data, uint32 this_len, const char *pos, uint32 offset) { - const char* v_target=pos+offset; - if((pos>=before&&pos<before+before_len)||(pos>=this_data&&pos<this_data+this_len)) + const char *v_target = pos + offset; + if ((pos >= before && pos < before + before_len) || (pos >= this_data && pos < this_data + this_len)) { - if(before<=v_target&&v_target<before+before_len) + if (before <= v_target && v_target < before + before_len) { - return (char*)v_target; - } - if(this_data<=v_target&&v_target<this_data+this_len) + return (char *)v_target; + } + if (this_data <= v_target && v_target < this_data + this_len) { - return (char*)v_target; + return (char *)v_target; } - if(this_data<=(this_data+offset-(before+before_len-pos))&&(this_data+offset-(before+before_len-pos))<this_data+this_len) + if (this_data <= (this_data + offset - (before + before_len - pos)) && (this_data + offset - (before + before_len - pos)) < this_data + this_len) { - return (char*)(this_data+offset-(before+before_len-pos)); - } - } + return (char *)(this_data + offset - (before + before_len - pos)); + } + } return NULL; } -uint32 double_mem_offset(const char*before,uint32 before_len,const char* this_data,uint32 this_len,const char* p) +uint32 double_mem_offset(const char *before, uint32 before_len, const char *this_data, uint32 this_len, const char *p) { - if(p>=this_data&&p<this_data+this_len) + if (p >= this_data && p < this_data + this_len) { - return before_len+(p-this_data); + return before_len + (p - this_data); } - if(p>=before&&p<before+before_len) + if (p >= before && p < before + before_len) { - return p-before; - } + return p - before; + } return -1; } char A_to_a(char ch) { - if(ch>='A'&&ch<='Z') return ch+'a'-'A'; + if (ch >= 'A' && ch <= 'Z') + return ch + 'a' - 'A'; return ch; } @@ -87,27 +90,29 @@ char A_to_a(char ch) * offset:����ֵ����һ�����ǿ��У��ո��Ʊ��������ڵ�ǰ���ݵ�ƫ������ * data����ǰ���ݡ� * data_len:��ǰ���ݵij��ȡ� -***********************************************************/ -void http_deleteEmptyRow(uint32 *offset, char* data, uint32 data_len) -{ - if(NULL==data||data_len==0) return; - while(*offset<data_len && (int)*offset>=0) + ***********************************************************/ +void http_deleteEmptyRow(uint32 *offset, char *data, uint32 data_len) +{ + if (NULL == data || data_len == 0) + return; + while (*offset < data_len && (int)*offset >= 0) { - if(HTTP_CR!=*(data+(*offset)) && HTTP_NULL!=*(data+(*offset)) && HTTP_LF!=*(data+(*offset)) && HTTP_SP!=*(data+(*offset)) && HTTP_HT!=*(data+(*offset))) + if (HTTP_CR != *(data + (*offset)) && HTTP_NULL != *(data + (*offset)) && HTTP_LF != *(data + (*offset)) && HTTP_SP != *(data + (*offset)) && HTTP_HT != *(data + (*offset))) break; - if(HTTP_CR==*(data+(*offset)) || HTTP_NULL==*(data+(*offset)) || HTTP_LF==*(data+(*offset)) || HTTP_SP==*(data+(*offset)) || HTTP_HT==*(data+(*offset))) + if (HTTP_CR == *(data + (*offset)) || HTTP_NULL == *(data + (*offset)) || HTTP_LF == *(data + (*offset)) || HTTP_SP == *(data + (*offset)) || HTTP_HT == *(data + (*offset))) (*offset)++; } } -void http_deleteEmptyRow_chunk(uint32 *offset, char* data, uint32 data_len) -{ - if(NULL==data||data_len==0) return; - while(*offset<data_len && (int)*offset>=0) +void http_deleteEmptyRow_chunk(uint32 *offset, char *data, uint32 data_len) +{ + if (NULL == data || data_len == 0) + return; + while (*offset < data_len && (int)*offset >= 0) { - if(HTTP_CR!=*(data+(*offset)) && HTTP_LF!=*(data+(*offset))&& HTTP_SP!=*(data+(*offset)) && HTTP_HT!=*(data+(*offset)) && 0!=*(data+(*offset))) + if (HTTP_CR != *(data + (*offset)) && HTTP_LF != *(data + (*offset)) && HTTP_SP != *(data + (*offset)) && HTTP_HT != *(data + (*offset)) && 0 != *(data + (*offset))) break; - if(HTTP_CR==*(data+(*offset)) || HTTP_LF==*(data+(*offset))|| HTTP_SP==*(data+(*offset)) || HTTP_HT==*(data+(*offset)) || 0==*(data+(*offset))) + if (HTTP_CR == *(data + (*offset)) || HTTP_LF == *(data + (*offset)) || HTTP_SP == *(data + (*offset)) || HTTP_HT == *(data + (*offset)) || 0 == *(data + (*offset))) (*offset)++; } return; @@ -118,40 +123,42 @@ void http_deleteEmptyRow_chunk(uint32 *offset, char* data, uint32 data_len) * offset:����ֵ����һ�����ǿ��У��ո��Ʊ��������ڵ�ǰ���ݵ�ƫ������ * data����ǰ���ݡ� * data_len����ǰ���ݵij��ȡ� -***********************************************************/ -void http_deleteSPHT(uint32 *offset, char* data, uint32 data_len) + ***********************************************************/ +void http_deleteSPHT(uint32 *offset, char *data, uint32 data_len) { - while(*offset<data_len && (int)*offset>=0) + while (*offset < data_len && (int)*offset >= 0) { - if(HTTP_SP!=*(data+(*offset)) && HTTP_HT!=*(data+(*offset))) + if (HTTP_SP != *(data + (*offset)) && HTTP_HT != *(data + (*offset))) break; (*offset)++; } -}/*http_deleteSPHTCRLFAtLast*/ +} /*http_deleteSPHTCRLFAtLast*/ /********************************************************** * ���ܣ�ɾ��data����Ŀո��У��Ʊ����� * del_data_len��ɾ�������ݵij��ȡ� * data����ǰ���ݡ� * data_len����ǰ���ݵij��ȡ� -***********************************************************/ -void http_deleteSPHTCRLFAtLast(uint32 *del_data_len, char* data, uint32 data_len) + ***********************************************************/ +void http_deleteSPHTCRLFAtLast(uint32 *del_data_len, char *data, uint32 data_len) { - if (data == NULL || data_len == 0 || del_data_len == NULL) { - return; - } + if (data == NULL || data_len == 0 || del_data_len == NULL) + { + return; + } - // ��ʼ��Ҫɾ���ij���Ϊ���ݳ��� - *del_data_len = data_len; + // ��ʼ��Ҫɾ���ij���Ϊ���ݳ��� + *del_data_len = data_len; - // ������ĩβ��ǰ���ҷǿհ��ַ��ͻ��з� - while (*del_data_len > 0 && - (data[*del_data_len - 1] == HTTP_CR || - data[*del_data_len - 1] == HTTP_HT || - data[*del_data_len - 1] == HTTP_SP || - data[*del_data_len - 1] == HTTP_LF)) { - (*del_data_len)--; - } + // ������ĩβ��ǰ���ҷǿհ��ַ��ͻ��з� + while (*del_data_len > 0 && + (data[*del_data_len - 1] == HTTP_CR || + data[*del_data_len - 1] == HTTP_HT || + data[*del_data_len - 1] == HTTP_SP || + data[*del_data_len - 1] == HTTP_LF)) + { + (*del_data_len)--; + } } /********************************************************** @@ -159,88 +166,91 @@ void http_deleteSPHTCRLFAtLast(uint32 *del_data_len, char* data, uint32 data_len * res:���ֵ��ͨ���ò����ж��Ƿ����\r\n * all_data:�������ݻ������� **********************************************************/ -char* http_findCRLF(char *all_data, uint32 len) +char *http_findCRLF(char *all_data, uint32 len) { - if(NULL==all_data||0==len) return NULL; - char *s_cr=NULL; - s_cr=(char*)memchr(all_data,'\r',len); + if (NULL == all_data || 0 == len) + return NULL; + char *s_cr = NULL; + s_cr = (char *)memchr(all_data, '\r', len); /*����\r*/ - if(NULL!=s_cr) - { + if (NULL != s_cr) + { return s_cr; } - /*û����\r*/ + /*û����\r*/ return NULL; } -char* http_findCRLF_Chunk(char *all_data, uint32 len, uint32* end_flag_size) +char *http_findCRLF_Chunk(char *all_data, uint32 len, uint32 *end_flag_size) { - if(all_data==NULL || len==0) return NULL; + if (all_data == NULL || len == 0) + return NULL; - char *s_cr=NULL; - char *s_lf=NULL; - char *p_ret=NULL; - uint32 rf = 2; - s_cr=(char*)memchr(all_data, '\r',len); - s_lf=(char*)memmem(all_data, len, (void*)"\0\n", rf); - if(NULL!=s_cr && NULL!=s_lf) + char *s_cr = NULL; + char *s_lf = NULL; + char *p_ret = NULL; + uint32 rf = 2; + s_cr = (char *)memchr(all_data, '\r', len); + s_lf = (char *)memmem(all_data, len, (void *)"\0\n", rf); + if (NULL != s_cr && NULL != s_lf) { p_ret = MIN(s_cr, s_lf); - *end_flag_size = (p_ret == s_cr)? 1:2; + *end_flag_size = (p_ret == s_cr) ? 1 : 2; } - else if(NULL == s_cr && NULL == s_lf) + else if (NULL == s_cr && NULL == s_lf) { } else { - p_ret = (s_lf != NULL)?s_lf:s_cr; - *end_flag_size = (s_lf != NULL)? 2:1; - } + p_ret = (s_lf != NULL) ? s_lf : s_cr; + *end_flag_size = (s_lf != NULL) ? 2 : 1; + } return p_ret; } -void stringA_to_stringa(char* str, uint32 l_str) +void stringA_to_stringa(char *str, uint32 l_str) { - uint16 m =0; - for(m=0;m<l_str;m++) + uint16 m = 0; + for (m = 0; m < l_str; m++) { str[m] = A_to_a(str[m]); } } /* this function is copy from other system. */ -char *memcasemem(const char *strsrc,int len1,const char *substr,int len2) +char *memcasemem(const char *strsrc, int len1, const char *substr, int len2) { - - char *p1,*p2,*pend; + + char *p1, *p2, *pend; char *p; char *substrS; - int i,lenth; + int i, lenth; - if((strsrc==NULL)||substr==NULL) + if ((strsrc == NULL) || substr == NULL) + return NULL; + if (len1 < len2) return NULL; - if(len1<len2) return NULL; - lenth=len2; - substrS=(char *)malloc(sizeof(char)*(lenth+1)); - if(substrS==NULL) + lenth = len2; + substrS = (char *)malloc(sizeof(char) * (lenth + 1)); + if (substrS == NULL) return NULL; - for(i=0;i<lenth;i++) + for (i = 0; i < lenth; i++) { - substrS[i]=tolower(*(substr+i)); + substrS[i] = tolower(*(substr + i)); } - substrS[lenth]=0; + substrS[lenth] = 0; - lenth=len1; - pend =(char *)strsrc + lenth; - for(p1 =(char *) strsrc; p1 != pend;p1++) + lenth = len1; + pend = (char *)strsrc + lenth; + for (p1 = (char *)strsrc; p1 != pend; p1++) { - for(p2 = p1,p = substrS;*p != '\0'&& p2 != pend;p++,p2++) + for (p2 = p1, p = substrS; *p != '\0' && p2 != pend; p++, p2++) { - if(tolower(*p2) != *p) + if (tolower(*p2) != *p) break; } - if(*p == '\0') + if (*p == '\0') { free(substrS); return p1; @@ -249,14 +259,20 @@ char *memcasemem(const char *strsrc,int len1,const char *substr,int len2) free(substrS); return NULL; -} +} +#include <time.h> long long rdtsc(void) { +#if 0 // adapt for x86 and AArch64 long long l; long long h; __asm__ volatile("rdtsc" : "=a"(l), "=d"(h)); return (long long )l | ((long long )h<<32); +#else + struct timespec curtime; + clock_gettime(CLOCK_MONOTONIC, &curtime); + return (long long)curtime.tv_sec * 1000 * 1000 * 1000 + (long long)curtime.tv_nsec; +#endif } - diff --git a/src/HTTP_Message.c b/src/HTTP_Message.c index 41ce708..5ffeb6b 100644 --- a/src/HTTP_Message.c +++ b/src/HTTP_Message.c @@ -40,7 +40,7 @@ int is_absolute_uri(void* app_info) int http_line2region(const char *line, uint32 line_len, char** region, uint32* region_len) { - /*line����ҵ��㣬��append,����lineǰ��Ŀո��Ѿ�ɾ����ֻ��Ҫɾ��: ֮��Ŀո�*/ + /*line����ҵ��㣬��append,����lineǰ��Ŀո��Ѿ�ɾ����ֻ��Ҫɾ��?: ֮��Ŀո�?*/ uint32 del_data_len=0; char* colon_pos = (char*)memchr(line, ':', line_len); if(NULL==colon_pos) return -1; @@ -52,7 +52,7 @@ int http_line2region(const char *line, uint32 line_len, char** region, uint32* r int http_line2value(const char *line, uint32 line_len, char** value, uint32* value_len) { - /*line����ҵ��㣬��append,����lineǰ��Ŀո��Ѿ�ɾ����ֻ��Ҫɾ��: ֮��Ŀո�*/ + /*line����ҵ��㣬��append,����lineǰ��Ŀո��Ѿ�ɾ����ֻ��Ҫɾ��?: ֮��Ŀո�?*/ uint32 vlen=0, sp_offset=0; char* colon_pos = (char*)memchr(line, ':', line_len); if(NULL==colon_pos) return -1; @@ -272,7 +272,7 @@ int http_readHttpConf(const char* filename) MESA_handle_runtime_log(g_http_prog_para.http_log_handle, RLOG_LV_FATAL, HTTP_PLUGIN_NAME, "http.conf bigger than %d", MAX_REGION_NUM); return -1; } - strncpy(g_http_prog_para.http_conf_regionname[region_id], region_name, strlen(region_name)); + strncpy(g_http_prog_para.http_conf_regionname[region_id], region_name, REGION_NAME_LEN); g_http_prog_para.http_region_cnt++; memset(region_name, 0, sizeof(region_name)); } @@ -685,8 +685,8 @@ long long HTTP_FLAG_CHANGE(char* flag_str) } /********************************************************** - * ���ܣ��ж���Ϣͷ�Ƿ������ - * buffer:��洢�������� + * ���ܣ��ж���Ϣͷ�Ƿ������? + * buffer:��洢��������? * data����ǰ���ݡ� * data_len:��ǰ���ݵij��ȡ� * proc_offset:��ǰ�����Ѵ������ݵ�ƫ������ diff --git a/src/HTTP_Message_Entry.c b/src/HTTP_Message_Entry.c index 3e8b7f4..df65ab7 100644 --- a/src/HTTP_Message_Entry.c +++ b/src/HTTP_Message_Entry.c @@ -1,4 +1,5 @@ #include <stdio.h> +#include <string.h> #include <ctype.h> #include "HTTP_Message_Entry.h" #include "HTTP_Message_Header.h" @@ -87,7 +88,7 @@ void http_doWithGzipData(http_parser_t *cur_http_node, struct streaminfo *a_tcp, break; } - memcpy(unzip_content->buf+unzip_content->buflen, result_array->result_buff[k].presult, min_len); + memcpy((char *)unzip_content->buf+unzip_content->buflen, result_array->result_buff[k].presult, min_len); unzip_content->buflen+=min_len; } @@ -252,7 +253,7 @@ uchar http_doWithProxyData(http_parser_t *a_http, http_stream *a_http_stream, st *offset += len; rec = GO_BACK; } - /*����һ��pkt��ʼ�ص��������������������HTTP�����������ѭ��*/ + /*����һ��pkt��ʼ�ص��������������������HTTP�����������ѭ��?*/ if(len==0) { a_http->proxy_cb_flag = 1; @@ -267,7 +268,7 @@ uchar http_doWithProxyData(http_parser_t *a_http, http_stream *a_http_stream, st /********************************************************** * ���ܣ�Ѱ��chunked�����ݿ�ʼλ��. - * a_http_node:��Ϣ�ڵ�,�������������Ҳ�Ƿ��ز����� + * a_http_node:��Ϣ�ڵ�,�������������Ҳ�Ƿ��ز�����? * cur_half����ǰ���ݡ� * ע��after_cr_data_len<1����û�ҵ���ʼλ�� * (*a_http_node)->crlf_offset<1����û�õ����ȡ� @@ -340,7 +341,7 @@ uchar http_readChunkedData(http_parser_t *a_http, struct streaminfo *a_tcp, int /********************************************************** * ���ܣ���ȡchunked�ij���. - * a_http_node:��Ϣ�ڵ�,�������������Ҳ�Ƿ��ز����� + * a_http_node:��Ϣ�ڵ�,�������������Ҳ�Ƿ��ز�����? * chunked_len:���ֵ��chunked���ݳ���. * cur_half����ǰ���ݡ� * return : HTTP_RETURN_SPAN_PACKET HTTP_RETURN_UNNORM diff --git a/src/lib/http-parser-2.9.0.tar.gz b/src/lib/http-parser-2.9.0.tar.gz Binary files differdeleted file mode 100644 index abc6d94..0000000 --- a/src/lib/http-parser-2.9.0.tar.gz +++ /dev/null diff --git a/src/lib/libhttp_parser.a b/src/lib/libhttp_parser.a Binary files differdeleted file mode 100644 index 40a1692..0000000 --- a/src/lib/libhttp_parser.a +++ /dev/null diff --git a/test/CMakeLists.txt b/test/CMakeLists.txt index 98fa7f6..86b8cd7 100644 --- a/test/CMakeLists.txt +++ b/test/CMakeLists.txt @@ -2,7 +2,6 @@ cmake_minimum_required (VERSION 2.8...3.10) project(${lib_name}_test) - include(ExternalProject) #### GoogleTest ExternalProject_Add(GoogleTest PREFIX GoogleTest @@ -18,52 +17,51 @@ set_property(TARGET gtest PROPERTY IMPORTED_LOCATION ${INSTALL_DIR}/lib/libgtest set_property(TARGET gtest PROPERTY INTERFACE_INCLUDE_DIRECTORIES ${INSTALL_DIR}/include) set_property(TARGET gtest PROPERTY INTERFACE_LINK_LIBRARIES pthread) - enable_testing() add_executable(HTTPUintTest unit_test.cpp mock_sapp.cpp) target_link_libraries(HTTPUintTest gtest http) +if(CMAKE_INSTALL_PREFIX_INITIALIZED_TO_DEFAULT) + set(CMAKE_INSTALL_PREFIX "/opt/tsg/sapp" CACHE PATH "default install path" FORCE) + message(STATUS "CMAKE_INSTALL_PREFIX='${CMAKE_INSTALL_PREFIX}'") +endif() +LINK_DIRECTORIES(${CMAKE_INSTALL_PREFIX}/lib) +LINK_DIRECTORIES(/home/mesasoft/sapp_run/lib) +LINK_DIRECTORIES(/opt/tsg/sapp/lib/) +LINK_DIRECTORIES(/opt/MESA/lib/) +LINK_DIRECTORIES(/opt/tsg/framework/lib/) -include(ExternalProject) -#### Protoco_test_run +set(TEST_RUN_DIR ${CMAKE_INSTALL_PREFIX}) +set(PLUGIN_TEST_MAIN ${CMAKE_INSTALL_PREFIX}/plugin_test_main) +message(STATUS "TEST_RUN_DIR='${TEST_RUN_DIR}'") -ExternalProject_Add(ProtoTest PREFIX ProtoTest - URL ${CMAKE_CURRENT_SOURCE_DIR}/test_protocol_run.zip - URL_MD5 71d8284b59af0286b5f31f0a3160bc44 - CMAKE_ARGS -DCMAKE_INSTALL_PREFIX=<INSTALL_DIR> -DCMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE} - CONFIGURE_COMMAND "" - BUILD_COMMAND "" - INSTALL_COMMAND "" - COMMAND ${CMAKE_COMMAND} -E make_directory <SOURCE_DIR>/conf/${lib_name}/ - COMMAND ${CMAKE_COMMAND} -E copy_if_different ${CMAKE_SOURCE_DIR}/bin/http/${lib_name}.conf <SOURCE_DIR>/conf/${lib_name}/ - COMMAND ${CMAKE_COMMAND} -E copy_if_different ${CMAKE_SOURCE_DIR}/bin/http/${lib_name}_main.conf <SOURCE_DIR>/conf/${lib_name}/ - COMMAND ${CMAKE_COMMAND} -E copy_if_different ${CMAKE_CURRENT_SOURCE_DIR}/conflist.inf <SOURCE_DIR>/plug/ - COMMAND ${CMAKE_COMMAND} -E make_directory <SOURCE_DIR>/plug/protocol/${lib_name}/ - COMMAND ${CMAKE_COMMAND} -E copy_if_different ${CMAKE_SOURCE_DIR}/bin/${lib_name}.inf <SOURCE_DIR>/plug/protocol/${lib_name}/ - COMMAND ${CMAKE_COMMAND} -E make_directory <SOURCE_DIR>/plug/business/${lib_name}_test_plug/ - COMMAND ${CMAKE_COMMAND} -E copy_if_different ${CMAKE_SOURCE_DIR}/test/${lib_name}_test_plug.inf <SOURCE_DIR>/plug/business/${lib_name}_test_plug/) +add_library(${lib_name}_test_plug SHARED ${lib_name}_test_plug.cpp md5.c) +target_link_libraries(${lib_name}_test_plug MESA_prof_load cjson) +set_target_properties(${lib_name}_test_plug PROPERTIES PREFIX "") -ExternalProject_Get_Property(ProtoTest INSTALL_DIR) -ExternalProject_Get_Property(ProtoTest SOURCE_DIR) -set(PROTO_TEST_RUN_DIR ${SOURCE_DIR}) +# build test env +add_test(NAME MKDIR COMMAND sh -c "mkdir -p ${TEST_RUN_DIR}/plug/protocol/${lib_name} && mkdir -p ${TEST_RUN_DIR}/plug/business/${lib_name}_test_plug && mkdir -p ${TEST_RUN_DIR}/conf/http") +add_test(NAME COPY_PLUGIN_TEST_MAIN COMMAND sh -c "cp ${TEST_RUN_DIR}/tools/plugin_test_main ${TEST_RUN_DIR}/plugin_test_main") +add_test(NAME COPY_CONFLIST COMMAND sh -c "mkdir -p ${TEST_RUN_DIR}/plug/ && cp ${CMAKE_CURRENT_SOURCE_DIR}/conflist.inf ${TEST_RUN_DIR}/plug/conflist.inf") +add_test(NAME COPY_HTTP_DECODER_CONF COMMAND sh -c "cp ${CMAKE_SOURCE_DIR}/bin/http/http*.conf ${TEST_RUN_DIR}/conf/http/") -add_executable(proto_test_main IMPORTED GLOBAL) -add_dependencies(proto_test_main ProtoTest) -set_property(TARGET proto_test_main PROPERTY IMPORTED_LOCATION ${SOURCE_DIR}/test_protocol_plug_main) +add_test(NAME COPY_HTTP_INF COMMAND sh -c "cp ${CMAKE_SOURCE_DIR}/bin/http.inf ${TEST_RUN_DIR}/plug/protocol/${lib_name}/${lib_name}.inf") +add_test(NAME COPY_HTTP_SO COMMAND sh -c "cp ${CMAKE_BINARY_DIR}/${lib_name}.so ${TEST_RUN_DIR}/plug/protocol/${lib_name}/${lib_name}.so") +add_test(NAME COPY_TEST_INF COMMAND sh -c "cp ${CMAKE_CURRENT_SOURCE_DIR}/http_test_plug.inf ${TEST_RUN_DIR}/plug/business/${lib_name}_test_plug/${lib_name}_test_plug.inf") +add_test(NAME COPY_TEST_SO COMMAND sh -c "cp ${CMAKE_CURRENT_BINARY_DIR}/${lib_name}_test_plug.so ${TEST_RUN_DIR}/plug/business/${lib_name}_test_plug/${lib_name}_test_plug.so") -add_library(${lib_name}_test_plug SHARED ${lib_name}_test_plug.cpp md5.c) -target_link_libraries(${lib_name}_test_plug MESA_prof_load cjson) -set_target_properties(${lib_name}_test_plug PROPERTIES PREFIX "") +# update sapp config files +add_test(NAME UPDATE_SAPP_LOG_LEVEL COMMAND bash -c "sed -i 's/sapp_log.fatal/sapp_log.info/' ${TEST_RUN_DIR}/etc/sapp_log.conf") +add_test(NAME UPDATE_SAPP_SYN_MODE COMMAND bash -c "sed -i 's/syn_mandatory=1/syn_mandatory=0/' ${TEST_RUN_DIR}/etc/sapp.toml") +add_test(NAME ENABLE_SAPP_MONITOR COMMAND bash -c "sed -i 's/monitor_thread_enabled=0/monitor_thread_enabled=1/' ${TEST_RUN_DIR}/etc/sapp.toml") -add_test(NAME COPY_SO COMMAND sh -c "cp ${CMAKE_BINARY_DIR}/${lib_name}.so ${PROTO_TEST_RUN_DIR}/plug/protocol/${lib_name}/${lib_name}.so") -add_test(NAME COPY_TEST_SO COMMAND sh -c "cp ${CMAKE_CURRENT_BINARY_DIR}/${lib_name}_test_plug.so ${PROTO_TEST_RUN_DIR}/plug/business/${lib_name}_test_plug/${lib_name}_test_plug.so") -add_test(NAME RUN_HTTP_GET_TEST COMMAND proto_test_main ${CMAKE_CURRENT_SOURCE_DIR}/pcap/http_get/http_result.json -f "find ${CMAKE_CURRENT_SOURCE_DIR}/pcap/http_get/ -name *.pcap|sort -V" WORKING_DIRECTORY ${PROTO_TEST_RUN_DIR}) -add_test(NAME RUN_HTTP_POST_TEST COMMAND proto_test_main ${CMAKE_CURRENT_SOURCE_DIR}/pcap/http_post/http_result.json -f "find ${CMAKE_CURRENT_SOURCE_DIR}/pcap/http_post/ -name *.pcap|sort -V" WORKING_DIRECTORY ${PROTO_TEST_RUN_DIR}) -add_test(NAME RUN_HTTP_GZIP_SMALL_TEST COMMAND proto_test_main ${CMAKE_CURRENT_SOURCE_DIR}/pcap/gzip_small/gzip_small.json -f "find ${CMAKE_CURRENT_SOURCE_DIR}/pcap/gzip_small/ -name *.pcap|sort -V" WORKING_DIRECTORY ${PROTO_TEST_RUN_DIR}) -add_test(NAME RUN_HTTP_GZIP_LARGE_TEST COMMAND proto_test_main ${CMAKE_CURRENT_SOURCE_DIR}/pcap/gzip_large/gzip_large.json -f "find ${CMAKE_CURRENT_SOURCE_DIR}/pcap/gzip_large/ -name *.pcap|sort -V" WORKING_DIRECTORY ${PROTO_TEST_RUN_DIR}) -add_test(NAME RUN_HTTP_DEFLATE_SMALL_TEST COMMAND proto_test_main ${CMAKE_CURRENT_SOURCE_DIR}/pcap/deflate_small/deflate_small.json -f "find ${CMAKE_CURRENT_SOURCE_DIR}/pcap/deflate_small/ -name *.pcap|sort -V" WORKING_DIRECTORY ${PROTO_TEST_RUN_DIR}) -add_test(NAME RUN_HTTP_DEFLATE_LARGE_TEST COMMAND proto_test_main ${CMAKE_CURRENT_SOURCE_DIR}/pcap/deflate_large/deflate_large.json -f "find ${CMAKE_CURRENT_SOURCE_DIR}/pcap/deflate_large/ -name *.pcap|sort -V" WORKING_DIRECTORY ${PROTO_TEST_RUN_DIR}) -add_test(NAME RUN_HTTP_CLEAR_TEXT_TEST COMMAND proto_test_main ${CMAKE_CURRENT_SOURCE_DIR}/pcap/clear_text/clear_text.json -f "find ${CMAKE_CURRENT_SOURCE_DIR}/pcap/clear_text/ -name *.pcap|sort -V" WORKING_DIRECTORY ${PROTO_TEST_RUN_DIR})
\ No newline at end of file +add_test(NAME RUN_HTTP_GET_TEST COMMAND ./plugin_test_main ${CMAKE_CURRENT_SOURCE_DIR}/pcap/http_get/http_result.json -f "find ${CMAKE_CURRENT_SOURCE_DIR}/pcap/http_get/ -name *.pcap|sort -V" WORKING_DIRECTORY ${TEST_RUN_DIR}) +add_test(NAME RUN_HTTP_POST_TEST COMMAND ./plugin_test_main ${CMAKE_CURRENT_SOURCE_DIR}/pcap/http_post/http_result.json -f "find ${CMAKE_CURRENT_SOURCE_DIR}/pcap/http_post/ -name *.pcap|sort -V" WORKING_DIRECTORY ${TEST_RUN_DIR}) +add_test(NAME RUN_HTTP_GZIP_SMALL_TEST COMMAND ./plugin_test_main ${CMAKE_CURRENT_SOURCE_DIR}/pcap/gzip_small/gzip_small.json -f "find ${CMAKE_CURRENT_SOURCE_DIR}/pcap/gzip_small/ -name *.pcap|sort -V" WORKING_DIRECTORY ${TEST_RUN_DIR}) +add_test(NAME RUN_HTTP_GZIP_LARGE_TEST COMMAND ./plugin_test_main ${CMAKE_CURRENT_SOURCE_DIR}/pcap/gzip_large/gzip_large.json -f "find ${CMAKE_CURRENT_SOURCE_DIR}/pcap/gzip_large/ -name *.pcap|sort -V" WORKING_DIRECTORY ${TEST_RUN_DIR}) +add_test(NAME RUN_HTTP_DEFLATE_SMALL_TEST COMMAND ./plugin_test_main ${CMAKE_CURRENT_SOURCE_DIR}/pcap/deflate_small/deflate_small.json -f "find ${CMAKE_CURRENT_SOURCE_DIR}/pcap/deflate_small/ -name *.pcap|sort -V" WORKING_DIRECTORY ${TEST_RUN_DIR}) +add_test(NAME RUN_HTTP_DEFLATE_LARGE_TEST COMMAND ./plugin_test_main ${CMAKE_CURRENT_SOURCE_DIR}/pcap/deflate_large/deflate_large.json -f "find ${CMAKE_CURRENT_SOURCE_DIR}/pcap/deflate_large/ -name *.pcap|sort -V" WORKING_DIRECTORY ${TEST_RUN_DIR}) +add_test(NAME RUN_HTTP_CLEAR_TEXT_TEST COMMAND ./plugin_test_main ${CMAKE_CURRENT_SOURCE_DIR}/pcap/clear_text/clear_text.json -f "find ${CMAKE_CURRENT_SOURCE_DIR}/pcap/clear_text/ -name *.pcap|sort -V" WORKING_DIRECTORY ${TEST_RUN_DIR})
\ No newline at end of file diff --git a/test/http_test_plug.cpp b/test/http_test_plug.cpp index 3e1435e..675eb3e 100644 --- a/test/http_test_plug.cpp +++ b/test/http_test_plug.cpp @@ -1,8 +1,9 @@ #include <stdio.h> +#include <stdlib.h> +#include <string.h> #include <time.h> #include <unistd.h> #include <assert.h> - #include "cJSON.h" #include "http.h" #include "MESA_prof_load.h" diff --git a/test/test_protocol_run.zip b/test/test_protocol_run.zip Binary files differdeleted file mode 100644 index 996f3fa..0000000 --- a/test/test_protocol_run.zip +++ /dev/null diff --git a/vendor/CMakeLists.txt b/vendor/CMakeLists.txt new file mode 100644 index 0000000..5854ad7 --- /dev/null +++ b/vendor/CMakeLists.txt @@ -0,0 +1,17 @@ +include(ExternalProject) + +ExternalProject_Add(http_parser PREFIX http_parser + URL ${CMAKE_CURRENT_SOURCE_DIR}/http-parser-2.9.0.tar.gz + URL_MD5 030a4f637582de0461d47a1664e8ef62 + CONFIGURE_COMMAND "" + BUILD_COMMAND make static-library + INSTALL_COMMAND "" + BUILD_IN_SOURCE 1) + +ExternalProject_Get_Property(http_parser INSTALL_DIR) +file(MAKE_DIRECTORY ${INSTALL_DIR}/src/http_parser/) + +add_library(http_parser-static STATIC IMPORTED GLOBAL) +add_dependencies(http_parser-static http_parser) +set_property(TARGET http_parser-static PROPERTY IMPORTED_LOCATION ${INSTALL_DIR}/src/http_parser/libhttp_parser.a) +set_property(TARGET http_parser-static PROPERTY INTERFACE_INCLUDE_DIRECTORIES ${INSTALL_DIR}/src/http_parser/) diff --git a/vendor/http-parser-2.9.0.tar.gz b/vendor/http-parser-2.9.0.tar.gz Binary files differnew file mode 100644 index 0000000..0c05064 --- /dev/null +++ b/vendor/http-parser-2.9.0.tar.gz |
