From d69554af64e62e85704ea73e52ad88824fbc8589 Mon Sep 17 00:00:00 2001 From: Fancy code <258828110.@qq.com> Date: Sun, 3 Mar 2024 04:19:30 -0800 Subject: [PATCH] Improve:goahead http post file. --- build/cmake/toolchain/linux.toolchain.cmake | 3 ++- .../goahead-5.2.0/modify/goahead-linux-static-fancy.mk | 3 ++- external/goahead-5.2.0/modify/http.c | 5 +---- utils/WebServer/CMakeLists.txt | 8 +++++++- utils/WebServer/README.md | 7 ------- 5 files changed, 12 insertions(+), 14 deletions(-) diff --git a/build/cmake/toolchain/linux.toolchain.cmake b/build/cmake/toolchain/linux.toolchain.cmake index e872fff..f6dc895 100755 --- a/build/cmake/toolchain/linux.toolchain.cmake +++ b/build/cmake/toolchain/linux.toolchain.cmake @@ -46,6 +46,7 @@ set(LOG_SUPPORT "true") set(GOAHEAD_DOCUMENTS_PATH "web") set(GOAHEAD_UPLOAD_TMP_PATH "./goahead") set(GOAHEAD_UPLOAD_PATH "${GOAHEAD_UPLOAD_TMP_PATH}") +set(GOAHEAD_LIMIT_POST "33554432") # GOAHEAD_CONFIG_FILE_PATH should be set when cross compile # set(GOAHEAD_CONFIG_FILE_PATH "./") # ------------ build GoAhead end ------------ # @@ -60,5 +61,5 @@ set(CURL_SHARED_LIBS_PATH "/mnt/mmc") # ------------ build curl + openssl ------------ end # ------------ build AppManager ------------ # set(APP_MANAGER_HTTP_SERVER_IP "localhost") -set(APP_MANAGER_HTTP_SERVER_PORT "8888") +set(APP_MANAGER_HTTP_SERVER_PORT "8080") # ------------ build AppManager end ------------ # \ No newline at end of file diff --git a/external/goahead-5.2.0/modify/goahead-linux-static-fancy.mk b/external/goahead-5.2.0/modify/goahead-linux-static-fancy.mk index ed1cb58..299abec 100644 --- a/external/goahead-5.2.0/modify/goahead-linux-static-fancy.mk +++ b/external/goahead-5.2.0/modify/goahead-linux-static-fancy.mk @@ -17,6 +17,7 @@ LBIN ?= $(BUILD)/bin PATH := $(LBIN):$(PATH) ME_GOAHEAD_UPLOAD_DIR ?= \"fancy\" # added by xiao // TODO: +ME_GOAHEAD_LIMIT_POST ?=33554432 # 32M ME_COM_COMPILER ?= 1 ME_COM_LIB ?= 1 ME_COM_MATRIXSSL ?= 0 @@ -40,7 +41,7 @@ ifeq ($(ME_COM_OPENSSL),1) endif CFLAGS += -fstack-protector --param=ssp-buffer-size=4 -Wformat -Wformat-security -Wl,-z,relro,-z,now -Wl,--as-needed -Wl,--no-copy-dt-needed-entries -Wl,-z,noexecstatck -Wl,-z,noexecheap -pie -fPIE -w -DFLAGS += $(patsubst %,-D%,$(filter ME_%,$(MAKEFLAGS))) -DME_GOAHEAD_UPLOAD_DIR=\"$(ME_GOAHEAD_UPLOAD_DIR)\" -DME_COM_COMPILER=$(ME_COM_COMPILER) -DME_COM_LIB=$(ME_COM_LIB) -DME_COM_MATRIXSSL=$(ME_COM_MATRIXSSL) -DME_COM_MBEDTLS=$(ME_COM_MBEDTLS) -DME_COM_NANOSSL=$(ME_COM_NANOSSL) -DME_COM_OPENSSL=$(ME_COM_OPENSSL) -DME_COM_OSDEP=$(ME_COM_OSDEP) -DME_COM_SSL=$(ME_COM_SSL) -DME_COM_VXWORKS=$(ME_COM_VXWORKS) +DFLAGS += $(patsubst %,-D%,$(filter ME_%,$(MAKEFLAGS))) -DME_GOAHEAD_UPLOAD_DIR=\"$(ME_GOAHEAD_UPLOAD_DIR)\" -DME_GOAHEAD_LIMIT_POST=$(ME_GOAHEAD_LIMIT_POST) -DME_COM_COMPILER=$(ME_COM_COMPILER) -DME_COM_LIB=$(ME_COM_LIB) -DME_COM_MATRIXSSL=$(ME_COM_MATRIXSSL) -DME_COM_MBEDTLS=$(ME_COM_MBEDTLS) -DME_COM_NANOSSL=$(ME_COM_NANOSSL) -DME_COM_OPENSSL=$(ME_COM_OPENSSL) -DME_COM_OSDEP=$(ME_COM_OSDEP) -DME_COM_SSL=$(ME_COM_SSL) -DME_COM_VXWORKS=$(ME_COM_VXWORKS) IFLAGS += "-I$(BUILD)/inc" LDFLAGS += LIBPATHS += -L$(BUILD)/bin diff --git a/external/goahead-5.2.0/modify/http.c b/external/goahead-5.2.0/modify/http.c index 0c05644..daa0bfc 100644 --- a/external/goahead-5.2.0/modify/http.c +++ b/external/goahead-5.2.0/modify/http.c @@ -1130,10 +1130,7 @@ static void parseHeaders(Webs *wp) return; } } else { - // ====================== added by xiao ====================== // - // if (wp->rxLen > ME_GOAHEAD_LIMIT_POST) { // open source code. - if (wp->rxLen > (1024 * 1024 * 32)) { // modified by xiao. - // ====================== added by xiao ====================== // + if (wp->rxLen > ME_GOAHEAD_LIMIT_POST) { // open source code. websError(wp, HTTP_CODE_REQUEST_TOO_LARGE | WEBS_CLOSE, "Too big"); return; } diff --git a/utils/WebServer/CMakeLists.txt b/utils/WebServer/CMakeLists.txt index 7d0404f..4b3f656 100644 --- a/utils/WebServer/CMakeLists.txt +++ b/utils/WebServer/CMakeLists.txt @@ -40,6 +40,12 @@ See:${IPC_SDK_PATH}/build/cmake/toolchain/linux.toolchain.cmake") endif() add_definitions(-DGOAHEAD_UPLOAD_PATH=\"${GOAHEAD_UPLOAD_PATH}\") +if (DEFINED GOAHEAD_LIMIT_POST) + set(ME_GOAHEAD_LIMIT_POST "ME_GOAHEAD_LIMIT_POST=${GOAHEAD_LIMIT_POST}") +else() + set(ME_GOAHEAD_LIMIT_POST "") +endif() + aux_source_directory(./src SRC_FILES) set(TARGET_NAME WebServer) @@ -86,7 +92,7 @@ add_custom_command( add_custom_command( OUTPUT ${EXTERNAL_LIBS_OUTPUT_PATH}/libgo.a DEPENDS ${EXTERNAL_SOURCE_PATH}/goahead-5.2.0/GoAhead/Makefile - COMMAND make CC=${CMAKE_C_COMPILER} ARCH=${SET_ARCH} PROFILE=${LIB_TYPE} ME_GOAHEAD_UPLOAD_DIR=\"${GOAHEAD_UPLOAD_TMP_PATH}\" -f ../modify/goahead-linux-static-fancy.mk + COMMAND make CC=${CMAKE_C_COMPILER} ARCH=${SET_ARCH} PROFILE=${LIB_TYPE} ME_GOAHEAD_UPLOAD_DIR=\"${GOAHEAD_UPLOAD_TMP_PATH}\" ${ME_GOAHEAD_LIMIT_POST} -f ../modify/goahead-linux-static-fancy.mk # COMMAND make CC=${CMAKE_C_COMPILER} ARCH=${SET_ARCH} PROFILE=${LIB_TYPE} -f ../modify/goahead-linux-static-fancy.mk // TODO: COMMAND mv ${EXTERNAL_SOURCE_PATH}/goahead-5.2.0/GoAhead/build/${GOAHEAD_INCLUDE_PATH}/bin/libgo.a ${EXTERNAL_LIBS_OUTPUT_PATH}/libgo.a COMMAND mv ${EXTERNAL_SOURCE_PATH}/goahead-5.2.0/GoAhead/build/${GOAHEAD_INCLUDE_PATH}/bin/libmbedtls.a ${EXTERNAL_LIBS_OUTPUT_PATH}/libmbedtls.a diff --git a/utils/WebServer/README.md b/utils/WebServer/README.md index 93f907b..5ba32cc 100644 --- a/utils/WebServer/README.md +++ b/utils/WebServer/README.md @@ -79,11 +79,4 @@ PUBLIC void websServiceEvents(int *finished)    源码限制POST文件大小太小,这里修改为32M。 ``` -// ====================== added by xiao ====================== // -// if (wp->rxLen > ME_GOAHEAD_LIMIT_POST) { // open source code. -if (wp->rxLen > (1024 * 1024 * 32)) { // modified by xiao. -// ====================== added by xiao ====================== // - websError(wp, HTTP_CODE_REQUEST_TOO_LARGE | WEBS_CLOSE, "Too big"); - return; -} ``` \ No newline at end of file