From 9b673f7639bec50c187f1068eb9e9ca3f3c7a5d9 Mon Sep 17 00:00:00 2001 From: lihaokai Date: Thu, 16 Oct 2025 18:00:20 +0800 Subject: [PATCH 1/7] feat(mqtts): support SSL --- src/iot/iot_mqtt.c | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/src/iot/iot_mqtt.c b/src/iot/iot_mqtt.c index 1dd6de2..0737c92 100644 --- a/src/iot/iot_mqtt.c +++ b/src/iot/iot_mqtt.c @@ -452,7 +452,12 @@ int iot_mqtt_init(iot_mqtt_ctx_t *ctx, iot_mqtt_config_t *config) { // info.register_notifier_list = na; info.retry_and_idle_policy = &retry; info.user = (void*)ctx; - // info.client_ssl_ca_filepath = NULL; + if (config->enable_mqtts && config->basic_config->ssl_ca_cert) { + info.server_ssl_ca_mem = config->basic_config->ssl_ca_cert; + info.server_ssl_ca_mem_len = strlen(config->basic_config->ssl_ca_cert); + + info.options = LWS_SERVER_OPTION_DO_SSL_GLOBAL_INIT; + } struct lws_context *context = lws_create_context(&info); if (context == NULL) { lwsl_err("lws init failed\n"); From 463ce3360a4afd2db021899fb08ce2d86755fa5a Mon Sep 17 00:00:00 2001 From: lihaokai Date: Thu, 16 Oct 2025 20:20:45 +0800 Subject: [PATCH 2/7] fix(mqtt): only set wsi in established event --- src/iot/iot_mqtt.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/iot/iot_mqtt.c b/src/iot/iot_mqtt.c index 0737c92..50f6a8c 100644 --- a/src/iot/iot_mqtt.c +++ b/src/iot/iot_mqtt.c @@ -38,7 +38,6 @@ static int callback_mqtt(struct lws *wsi, enum lws_callback_reasons reason, */ struct lws_context *context = lws_get_context(wsi); iot_mqtt_ctx_t *ctx = (iot_mqtt_ctx_t *)lws_context_user(context); - ctx->wsi = wsi; switch (reason) { case LWS_CALLBACK_CLIENT_CONNECTION_ERROR: @@ -62,7 +61,8 @@ static int callback_mqtt(struct lws *wsi, enum lws_callback_reasons reason, ctx->waiting_for_suback = 0; lws_callback_on_writable(wsi); lws_set_timer_usecs(wsi, ctx->config->ping_interval*1000000); - + ctx->wsi = wsi; + return 0; case LWS_CALLBACK_MQTT_SUBSCRIBED: From 2b467149f4815e5a3b5e7051c821b0de9e2666e7 Mon Sep 17 00:00:00 2001 From: lihaokai Date: Fri, 17 Oct 2025 10:46:25 +0800 Subject: [PATCH 3/7] ci: replace manually install CMake with official kitware/cmake-action --- .github/workflows/ci.yml | 12 +++++------- 1 file changed, 5 insertions(+), 7 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 24d364b..705c92c 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -70,13 +70,11 @@ jobs: - name: Install dependencies run: | brew install openssl - # Install CMake 3.31.6 from Kitware - curl -L https://github.com/Kitware/CMake/releases/download/v3.31.6/cmake-3.31.6-macos-universal.dmg -o cmake.dmg - hdiutil attach cmake.dmg - sudo cp -R /Volumes/cmake-3.31.6-macos-universal/CMake.app /Applications/ - sudo /Applications/CMake.app/Contents/bin/cmake-gui --install - hdiutil detach /Volumes/cmake-3.31.6-macos-universal - rm cmake.dmg + + - name: Setup CMake + uses: kitware/cmake-action@v1 + with: + version: 3.26.x - name: Configure and build env: From 3c0be30c59f1996b0eb1e64dedaabf4a2f3d89a6 Mon Sep 17 00:00:00 2001 From: lihaokai Date: Fri, 17 Oct 2025 10:57:58 +0800 Subject: [PATCH 4/7] revert ci change --- .github/workflows/ci.yml | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 705c92c..a625af8 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -70,11 +70,13 @@ jobs: - name: Install dependencies run: | brew install openssl - - - name: Setup CMake - uses: kitware/cmake-action@v1 - with: - version: 3.26.x + # Install CMake 3.26.4 from Kitware + curl -L https://github.com/Kitware/CMake/releases/download/v3.26.4/cmake-3.26.4-macos-universal.dmg -o cmake.dmg + hdiutil attach cmake.dmg + sudo cp -R /Volumes/cmake-3.26.4-macos-universal/CMake.app /Applications/ + sudo /Applications/CMake.app/Contents/bin/cmake-gui --install + hdiutil detach /Volumes/cmake-3.26.4-macos-universal + rm cmake.dmg - name: Configure and build env: From f55d47dc69be794f68af30d0242a7b6d96f4496f Mon Sep 17 00:00:00 2001 From: lihaokai Date: Fri, 17 Oct 2025 11:14:15 +0800 Subject: [PATCH 5/7] ci: add export Path in install dependencies step --- .github/workflows/ci.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index a625af8..a993d1f 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -77,6 +77,7 @@ jobs: sudo /Applications/CMake.app/Contents/bin/cmake-gui --install hdiutil detach /Volumes/cmake-3.26.4-macos-universal rm cmake.dmg + export PATH="/Applications/CMake.app/Contents/bin:$PATH" - name: Configure and build env: From 7d3ddfb0845686d84bb07a34bfba8b3a6c4e41b8 Mon Sep 17 00:00:00 2001 From: lihaokai Date: Fri, 17 Oct 2025 11:25:40 +0800 Subject: [PATCH 6/7] =?UTF-8?q?ci(workflow):=20=E4=BF=AE=E5=A4=8DCMake?= =?UTF-8?q?=E8=B7=AF=E5=BE=84=E8=AE=BE=E7=BD=AE=E9=97=AE=E9=A2=98=E5=B9=B6?= =?UTF-8?q?=E6=9B=B4=E6=96=B0build.sh?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 将CMake路径通过环境变量传递,并在build.sh中添加对CMAKE_PATH的支持 --- .github/workflows/ci.yml | 4 +++- build.sh | 22 ++++++++++++++++++---- 2 files changed, 21 insertions(+), 5 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index a993d1f..c437994 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -77,14 +77,16 @@ jobs: sudo /Applications/CMake.app/Contents/bin/cmake-gui --install hdiutil detach /Volumes/cmake-3.26.4-macos-universal rm cmake.dmg - export PATH="/Applications/CMake.app/Contents/bin:$PATH" + echo "CMAKE_PATH=/Applications/CMake.app/Contents/bin" >> $GITHUB_ENV - name: Configure and build env: OPENSSL_ROOT_DIR: /opt/homebrew/opt/openssl@3 OPENSSL_LIBRARIES: /opt/homebrew/opt/openssl@3/lib OPENSSL_INCLUDE_DIR: /opt/homebrew/opt/openssl@3/include + CMAKE_PATH: /Applications/CMake.app/Contents/bin run: | + export PATH="/Applications/CMake.app/Contents/bin:$PATH" ./build.sh -DCMAKE_BUILD_TYPE=debug -DONESDK_WITH_TEST=ON - name: Run tests diff --git a/build.sh b/build.sh index 0e89944..159c101 100755 --- a/build.sh +++ b/build.sh @@ -3,12 +3,19 @@ set -e # Exit on any error # Function to check CMake version check_cmake_version() { - if ! command -v cmake &> /dev/null; then - echo "Error: CMake is not installed!" + # Use CMAKE_PATH if provided, otherwise use default cmake command + if [ -n "$CMAKE_PATH" ]; then + CMAKE_CMD="$CMAKE_PATH/cmake" + else + CMAKE_CMD="cmake" + fi + + if ! command -v $CMAKE_CMD &> /dev/null; then + echo "Error: CMake is not installed at $CMAKE_CMD!" exit 1 fi - cmake_version=$(cmake --version | head -n1 | cut -d' ' -f3) + cmake_version=$($CMAKE_CMD --version | head -n1 | cut -d' ' -f3) cmake_major=$(echo $cmake_version | cut -d'.' -f1) cmake_minor=$(echo $cmake_version | cut -d'.' -f2) @@ -48,8 +55,15 @@ fi mkdir -p build cd build +# Use CMAKE_PATH if provided, otherwise use default cmake command +if [ -n "$CMAKE_PATH" ]; then + CMAKE_CMD="$CMAKE_PATH/cmake" +else + CMAKE_CMD="cmake" +fi + echo "Running cmake with arguments: $@" -cmake $@ .. +$CMAKE_CMD $@ .. if [ $? -ne 0 ]; then echo "CMake configuration failed!" exit 1 From ff63cb2faae102ddf155908b5b84a37b3846075e Mon Sep 17 00:00:00 2001 From: lihaokai Date: Fri, 17 Oct 2025 17:38:29 +0800 Subject: [PATCH 7/7] ci: add wpa support in esp32 --- examples/onesdk_esp32/main/CMakeLists.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/examples/onesdk_esp32/main/CMakeLists.txt b/examples/onesdk_esp32/main/CMakeLists.txt index b3ec5b2..80fc9a8 100644 --- a/examples/onesdk_esp32/main/CMakeLists.txt +++ b/examples/onesdk_esp32/main/CMakeLists.txt @@ -13,7 +13,7 @@ message(STATUS "onesdk_esp32 srcs: ${ONESDK_ESP32_SRCS}") set(ONESDK_ESP32_DEPS onesdk) message(STATUS "onesdk_esp32 deps: ${ONESDK_ESP32_DEPS}") idf_component_register(SRCS "${ONESDK_ESP32_SRCS}" - PRIV_REQUIRES ${ONESDK_ESP32_DEPS} + PRIV_REQUIRES ${ONESDK_ESP32_DEPS} wpa_supplicant # INCLUDE_DIRS "../libwebsockets/include;${IDF_PATH}/components/spi_flash/include;${IDF_PATH}/components/nvs_flash/include") INCLUDE_DIRS ".;${IDF_PATH}/components/spi_flash/include;${IDF_PATH}/components/nvs_flash/include")