diff --git a/.github/workflows/unittest_mac_tsan_mbedtls.yml b/.github/workflows/unittest_mac_tsan_mbedtls.yml index d8e29c1f..6b1c9651 100644 --- a/.github/workflows/unittest_mac_tsan_mbedtls.yml +++ b/.github/workflows/unittest_mac_tsan_mbedtls.yml @@ -11,7 +11,7 @@ jobs: steps: - uses: actions/checkout@v1 - uses: seanmiddleditch/gha-setup-ninja@master - - name: install mbedtls + - name: install mbedtls@3 run: brew install mbedtls@3 - name: make test run: make -f makefile.dev test_tsan_mbedtls diff --git a/ixwebsocket/IXSelectInterruptPipe.cpp b/ixwebsocket/IXSelectInterruptPipe.cpp index 0518994a..64d6e468 100644 --- a/ixwebsocket/IXSelectInterruptPipe.cpp +++ b/ixwebsocket/IXSelectInterruptPipe.cpp @@ -131,7 +131,6 @@ namespace ix return ret == 8; } - // TODO: return max uint64_t for errors ? uint64_t SelectInterruptPipe::read() { std::lock_guard lock(_fildesMutex); @@ -140,11 +139,11 @@ namespace ix uint64_t value = 0; - ssize_t ret = -1; + ssize_t readret = -1; do { - ret = ::read(fd, &value, sizeof(value)); - } while (ret == -1 && errno == EINTR); + readret = ::read(fd, &value, sizeof(value)); + } while (readret == -1 && errno == EINTR); return value; } diff --git a/ixwebsocket/IXSocketConnect.cpp b/ixwebsocket/IXSocketConnect.cpp index 6c9a6d5b..38d9b99c 100644 --- a/ixwebsocket/IXSocketConnect.cpp +++ b/ixwebsocket/IXSocketConnect.cpp @@ -20,7 +20,6 @@ #include #include #endif -#include namespace ix { @@ -67,8 +66,7 @@ namespace ix int timeoutMs = 10; bool readyToRead = false; - SelectInterruptPtr selectInterrupt = ix::createSelectInterrupt(); - PollResultType pollResult = Socket::poll(readyToRead, timeoutMs, fd, selectInterrupt); + PollResultType pollResult = Socket::poll(readyToRead, timeoutMs, fd, nullptr); if (pollResult == PollResultType::Timeout) { diff --git a/makefile.dev b/makefile.dev index eca55859..c3e3cc3c 100644 --- a/makefile.dev +++ b/makefile.dev @@ -13,6 +13,11 @@ all: brew install: brew +MBEDTLS_CMAKE_PREFIX := +ifeq ($(shell uname),Darwin) +MBEDTLS_CMAKE_PREFIX := -DCMAKE_PREFIX_PATH=$$(brew --prefix mbedtls@3) +endif + -DCMAKE_INSTALL_PREFIX=/opt/homebrew # Use -DCMAKE_INSTALL_PREFIX= to install into another location @@ -36,7 +41,7 @@ endif # server side ?) and I can't work-around it easily, so we're using mbedtls on # Linux for the SSL backend, which works great. ws_mbedtls_install: - mkdir -p build && (cd build ; cmake -GNinja -DCMAKE_UNITY_BUILD=ON -DCMAKE_INSTALL_MESSAGE=LAZY -DCMAKE_BUILD_TYPE=MinSizeRel -DUSE_ZLIB=OFF -DUSE_TLS=1 -DUSE_WS=1 -DUSE_MBED_TLS=1 .. ; ninja install) + mkdir -p build && (cd build ; cmake -GNinja -DCMAKE_UNITY_BUILD=ON -DCMAKE_INSTALL_MESSAGE=LAZY -DCMAKE_BUILD_TYPE=MinSizeRel -DUSE_ZLIB=OFF -DUSE_TLS=1 -DUSE_WS=1 -DUSE_MBED_TLS=1 $(MBEDTLS_CMAKE_PREFIX) .. ; ninja install) ws: mkdir -p build && (cd build ; cmake -GNinja -DCMAKE_INSTALL_MESSAGE=LAZY -DCMAKE_BUILD_TYPE=Debug -DUSE_TLS=1 -DUSE_WS=1 .. && ninja) @@ -54,7 +59,7 @@ ws_openssl_install: mkdir -p build && (cd build ; cmake -GNinja -DCMAKE_INSTALL_MESSAGE=LAZY -DCMAKE_BUILD_TYPE=Debug -DUSE_TLS=1 -DUSE_WS=1 -DUSE_OPEN_SSL=1 .. ; ninja install) ws_mbedtls: - mkdir -p build && (cd build ; cmake -DCMAKE_INSTALL_MESSAGE=LAZY -DCMAKE_BUILD_TYPE=Debug -DUSE_TLS=1 -DUSE_WS=1 -DUSE_MBED_TLS=1 .. ; ninja) + mkdir -p build && (cd build ; cmake -DCMAKE_INSTALL_MESSAGE=LAZY -DCMAKE_BUILD_TYPE=Debug -DUSE_TLS=1 -DUSE_WS=1 -DUSE_MBED_TLS=1 $(MBEDTLS_CMAKE_PREFIX) .. ; ninja) ws_no_ssl: mkdir -p build && (cd build ; cmake -DCMAKE_INSTALL_MESSAGE=LAZY -DCMAKE_BUILD_TYPE=Debug -DUSE_WS=1 .. ; ninja) @@ -129,7 +134,7 @@ test_asan: (cd build ; ctest -V .) test_tsan_mbedtls: - mkdir -p build && (cd build ; cmake -GNinja -DCMAKE_INSTALL_MESSAGE=LAZY -DCMAKE_UNITY_BUILD=ON -DCMAKE_BUILD_TYPE=Debug -DUSE_TLS=1 -DUSE_MBED_TLS=1 -DUSE_TEST=1 .. -DCMAKE_C_FLAGS="-fsanitize=thread -fno-omit-frame-pointer" -DCMAKE_CXX_FLAGS="-fsanitize=thread -fno-omit-frame-pointer" -DCMAKE_PREFIX_PATH="$(shell brew --prefix mbedtls@3 2>/dev/null || echo /opt/homebrew/opt/mbedtls@3)") + mkdir -p build && (cd build ; cmake -GNinja -DCMAKE_INSTALL_MESSAGE=LAZY -DCMAKE_UNITY_BUILD=ON -DCMAKE_BUILD_TYPE=Debug -DUSE_TLS=1 -DUSE_MBED_TLS=1 -DUSE_TEST=1 $(MBEDTLS_CMAKE_PREFIX) .. -DCMAKE_C_FLAGS="-fsanitize=thread -fno-omit-frame-pointer" -DCMAKE_CXX_FLAGS="-fsanitize=thread -fno-omit-frame-pointer") (cd build ; ninja) (cd build ; ninja test)