mirror of
https://github.com/eclipse-mosquitto/mosquitto.git
synced 2026-09-25 19:34:16 +08:00
Merge branch 'eclipse:develop' into develop
This commit is contained in:
@@ -0,0 +1,24 @@
|
||||
name: Coverity Scan fixes and develop branches on a weekly basis
|
||||
|
||||
on:
|
||||
workflow_dispatch:
|
||||
schedule:
|
||||
- cron: "7 3 * * 0"
|
||||
|
||||
jobs:
|
||||
coverity:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/checkout@v2
|
||||
|
||||
- name: Dependencies
|
||||
run: sudo apt-get install -y libcjson-dev libsqlite3-dev libssl-dev uthash-dev
|
||||
|
||||
- uses: vapier/coverity-scan-action@v1
|
||||
with:
|
||||
build_language: 'cxx'
|
||||
project: "eclipse/mosquitto"
|
||||
token: ${{ secrets.COVERITY_SCAN_TOKEN }}
|
||||
email: ${{ secrets.COVERITY_SCAN_EMAIL }}
|
||||
command: "make binary"
|
||||
|
||||
@@ -1,21 +0,0 @@
|
||||
name: "Synchronise Coverity Scan branches on a weekly basis"
|
||||
|
||||
on:
|
||||
workflow_dispatch:
|
||||
schedule:
|
||||
- cron: "7 3 * * 0"
|
||||
|
||||
jobs:
|
||||
build:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/checkout@v2
|
||||
with:
|
||||
fetch-depth: 0
|
||||
- run: |
|
||||
git checkout coverity-fixes
|
||||
git reset --hard origin/fixes
|
||||
git push origin coverity-fixes
|
||||
git checkout coverity-develop
|
||||
git reset --hard origin/develop
|
||||
git push origin coverity-develop
|
||||
-36
@@ -1,36 +0,0 @@
|
||||
language: c
|
||||
compiler:
|
||||
- gcc
|
||||
- clang
|
||||
|
||||
os:
|
||||
- linux
|
||||
- osx
|
||||
|
||||
dist:
|
||||
- bionic
|
||||
|
||||
sudo: true
|
||||
|
||||
env:
|
||||
global:
|
||||
# COVERITY_SCAN_TOKEN
|
||||
- secure: "j58a3zOmHbWvKOfBaR2WJAU0Lz95M0u3Ji9NUn0Gj+v91z/vd0COF8dR6QO03V9fDms44ghBiUOblgfb8z/GFOaagn2FoHUrSka/Sju+gIFejgeSqwyxL3CjcX69M1f/npiePQDDtD5mb4dZTDZ4Nl3BpTqg+Qtar9/S/7LoheecWdd6kFDDMr+0yx3/nibwbC0+tpXftiB62tgaGwABQBvfQbgBXUxJ+0zaKXORiKmhwnEC15Bub0WmBhmZxahzlDMU2cEzxKVQbYrcf0TqZpbPhN7H42d3ssQJ3ogbqJmptZpoRdv9de6G0Hzq5QDLjkQxd+3z4hxRqOPzICoawkljQ6CF/JOSlqRXTP0/272MBHzgancQpQhO5yfB3eV4OFldQAdtIKHV04jQ9uSPYOi48To//HGOG8GOp6jFMrpKs6T6P8UiB+GTe57GjBdQI5uqZiEBMdc5MNaqDDoskdr+jTsnGJg6uY9ARrap3WFFEWiaTbe/wbE7+o0isb79PmgBzFLpcwpBFgfyQUiDb+e8S2d3ugKeIVlsSlrF7ZTXC40Y+qVwGzvf/RSM3+c9N/ikFmrLdzn0rBrwna4t3vPrBoU1seoCAZu5hwAU0+xNCN4P9M1s4tOnrG7Lq5URqkP0n9gTXvI8rQ7dDJibjP+5RoZUOd1XPkHbyN4Kseg="
|
||||
|
||||
script:
|
||||
- ./travis-configure.sh
|
||||
- if [[ "$COVERITY_SCAN_BRANCH" != 1 ]]; then make ; make test ; fi
|
||||
|
||||
before_install:
|
||||
- ./travis-install.sh
|
||||
|
||||
|
||||
addons:
|
||||
coverity_scan:
|
||||
project:
|
||||
name: "eclipse/mosquitto"
|
||||
description: "Build submitted via Travis CI"
|
||||
notification_email: roger@atchoo.org
|
||||
build_command_prepend: ./travis-configure.sh
|
||||
build_command: "make binary -j 4"
|
||||
branch_pattern: coverity-.*
|
||||
+4
-6
@@ -4,7 +4,7 @@
|
||||
# To configure the build options either use the CMake gui, or run the command
|
||||
# line utility including the "-i" option.
|
||||
|
||||
cmake_minimum_required(VERSION 3.10)
|
||||
cmake_minimum_required(VERSION 3.14)
|
||||
|
||||
set (VERSION 2.1.0)
|
||||
project(mosquitto
|
||||
@@ -50,7 +50,7 @@ endif()
|
||||
|
||||
option(WITH_SQLITE "Include sqlite persistence support?" ON)
|
||||
if (WITH_SQLITE)
|
||||
find_package(sqlite3 REQUIRED)
|
||||
find_package(SQLite3 REQUIRED)
|
||||
add_definitions("-DWITH_SQLITE")
|
||||
endif()
|
||||
|
||||
@@ -79,10 +79,8 @@ endif()
|
||||
option(WITH_DLT "Include DLT support?" OFF)
|
||||
message(STATUS "WITH_DLT = ${WITH_DLT}")
|
||||
if(WITH_DLT)
|
||||
#find_package(DLT REQUIRED)
|
||||
find_package(PkgConfig)
|
||||
pkg_check_modules(DLT "automotive-dlt >= 2.11")
|
||||
add_definitions("-DWITH_DLT")
|
||||
pkg_check_modules(DLT "automotive-dlt >= 2.11" REQUIRED)
|
||||
endif()
|
||||
|
||||
option(WITH_CJSON "Build with cJSON support (required for dynamic security plugin and useful for mosquitto_sub)?" ON)
|
||||
@@ -90,7 +88,7 @@ if(WITH_CJSON)
|
||||
FIND_PACKAGE(cJSON)
|
||||
if(CJSON_FOUND)
|
||||
message(STATUS ${CJSON_FOUND})
|
||||
add_definitions(-DWITH_CJSON)
|
||||
target_compile_definitions(cJSON INTERFACE WITH_CJSON)
|
||||
else()
|
||||
message(STATUS "Optional dependency cJSON not found. Some features will be disabled.")
|
||||
endif()
|
||||
|
||||
@@ -55,6 +55,8 @@ Broker:
|
||||
- Bridge reconnection backoff improvements.
|
||||
- Add bridge_tls_use_os_certs option to allow bridges to be easily configured
|
||||
to trust default CA certificates. Closes #2473.
|
||||
- Add `--test-config` option which can be used to test a configuration file
|
||||
before trying to use it in a live broker. Closes #2521.
|
||||
|
||||
Plugins / plugin interface:
|
||||
- Add persist-sqlite plugin.
|
||||
@@ -137,6 +139,9 @@ Clients:
|
||||
- Add float printing option to mosquitto_sub.
|
||||
- Fix `-f` and `-s` options in mosquitto_rr.
|
||||
|
||||
Build:
|
||||
- Increased CMake minimal required version to 3.14, which is required for the
|
||||
preinstalled SQLite3 find module.
|
||||
|
||||
2.0.14 - 2021-11-17
|
||||
===================
|
||||
|
||||
@@ -1,8 +1,4 @@
|
||||
if(WITH_TLS AND CJSON_FOUND)
|
||||
add_definitions("-DWITH_CJSON")
|
||||
|
||||
link_directories(${CJSON_DIR})
|
||||
|
||||
add_executable(mosquitto_ctrl
|
||||
mosquitto_ctrl.c mosquitto_ctrl.h
|
||||
../../common/base64_mosq.c ../../common/base64_mosq.h
|
||||
@@ -21,7 +17,6 @@ if(WITH_TLS AND CJSON_FOUND)
|
||||
)
|
||||
|
||||
target_include_directories(mosquitto_ctrl PRIVATE
|
||||
"${CJSON_INCLUDE_DIRS}"
|
||||
"${OPENSSL_INCLUDE_DIR}"
|
||||
"${STDBOOL_H_PATH}"
|
||||
"${STDINT_H_PATH}"
|
||||
@@ -63,7 +58,7 @@ if(WITH_TLS AND CJSON_FOUND)
|
||||
target_link_libraries(mosquitto_ctrl
|
||||
PRIVATE
|
||||
${OPENSSL_LIBRARIES}
|
||||
${CJSON_LIBRARIES}
|
||||
cJSON
|
||||
)
|
||||
|
||||
if (WITH_THREADING AND NOT WIN32)
|
||||
|
||||
+3
-14
@@ -12,14 +12,6 @@ set(CLIENT_INC
|
||||
"${mosquitto_SOURCE_DIR}/include"
|
||||
)
|
||||
|
||||
set(CLIENT_DIR ${mosquitto_BINARY_DIR}/lib)
|
||||
|
||||
if(CJSON_FOUND)
|
||||
add_definitions("-DWITH_CJSON")
|
||||
set(CLIENT_DIR "${CLIENT_DIR};${CJSON_DIR}")
|
||||
set(CLIENT_INC "${CLIENT_INC};${CJSON_INCLUDE_DIRS}")
|
||||
endif()
|
||||
|
||||
if(WITH_WEBSOCKETS AND WITH_WEBSOCKETS_BUILTIN)
|
||||
add_definitions("-DWITH_WEBSOCKETS=WS_IS_BUILTIN")
|
||||
endif()
|
||||
@@ -46,13 +38,10 @@ if(WITH_BUNDLED_DEPS)
|
||||
target_include_directories(mosquitto_rr PRIVATE "${mosquitto_SOURCE_DIR}/deps")
|
||||
endif()
|
||||
|
||||
link_directories(${CLIENT_DIR})
|
||||
|
||||
|
||||
if(CJSON_FOUND)
|
||||
target_link_libraries(mosquitto_pub PRIVATE ${CJSON_LIBRARIES})
|
||||
target_link_libraries(mosquitto_sub PRIVATE ${CJSON_LIBRARIES})
|
||||
target_link_libraries(mosquitto_rr PRIVATE ${CJSON_LIBRARIES})
|
||||
target_link_libraries(mosquitto_pub PRIVATE cJSON)
|
||||
target_link_libraries(mosquitto_sub PRIVATE cJSON)
|
||||
target_link_libraries(mosquitto_rr PRIVATE cJSON)
|
||||
endif()
|
||||
|
||||
if(WITH_STATIC_LIBRARIES)
|
||||
|
||||
@@ -31,6 +31,17 @@ IF( CJSON_FOUND )
|
||||
CJSON_INCLUDE_DIR
|
||||
CJSON_DIR
|
||||
)
|
||||
|
||||
add_library(cJSON SHARED IMPORTED)
|
||||
set_target_properties(cJSON
|
||||
PROPERTIES
|
||||
INTERFACE_INCLUDE_DIRECTORIES "${CJSON_INCLUDE_DIRS}"
|
||||
)
|
||||
|
||||
set_target_properties(cJSON
|
||||
PROPERTIES
|
||||
IMPORTED_LOCATION "${CJSON_LIBRARY}"
|
||||
)
|
||||
ELSE()
|
||||
SET( CJSON_DIR "" CACHE STRING
|
||||
"An optional hint to a directory for finding `cJSON`"
|
||||
|
||||
@@ -1,38 +0,0 @@
|
||||
INCLUDE( FindPackageHandleStandardArgs )
|
||||
|
||||
# Checks an environment variable; note that the first check
|
||||
# does not require the usual CMake $-sign.
|
||||
IF( DEFINED ENV{SQLITE3_DIR} )
|
||||
SET( SQLITE3_DIR "$ENV{SQLITE3_DIR}" )
|
||||
ENDIF()
|
||||
|
||||
FIND_PATH(
|
||||
SQLITE3_INCLUDE_DIR
|
||||
sqlite3.h
|
||||
HINTS
|
||||
SQLITE3_DIR
|
||||
)
|
||||
|
||||
FIND_LIBRARY( SQLITE3_LIBRARY
|
||||
NAMES sqlite3
|
||||
HINTS ${SQLITE3_DIR}
|
||||
)
|
||||
|
||||
FIND_PACKAGE_HANDLE_STANDARD_ARGS( sqlite3 DEFAULT_MSG
|
||||
SQLITE3_INCLUDE_DIR SQLITE3_LIBRARY
|
||||
)
|
||||
|
||||
IF( SQLITE3_FOUND )
|
||||
SET( SQLITE3_INCLUDE_DIRS ${SQLITE3_INCLUDE_DIR} )
|
||||
SET( SQLITE3_LIBRARIES ${SQLITE3_LIBRARY} )
|
||||
|
||||
MARK_AS_ADVANCED(
|
||||
SQLITE3_LIBRARY
|
||||
SQLITE3_INCLUDE_DIR
|
||||
SQLITE3_DIR
|
||||
)
|
||||
ELSE()
|
||||
SET( SQLITE3_DIR "" CACHE STRING
|
||||
"An optional hint to a directory for finding `sqlite3`"
|
||||
)
|
||||
ENDIF()
|
||||
@@ -21,6 +21,7 @@ Contributors:
|
||||
#ifdef __APPLE__
|
||||
#include <mach/mach.h>
|
||||
#include <mach/mach_time.h>
|
||||
#include <sys/time.h>
|
||||
#endif
|
||||
|
||||
#ifdef WIN32
|
||||
|
||||
+10
-10
@@ -101,18 +101,18 @@ if(WITH_WEBSOCKETS AND WITH_WEBSOCKETS_BUILTIN)
|
||||
"${mosquitto_SOURCE_DIR}/deps/picohttpparser")
|
||||
endif()
|
||||
|
||||
target_include_directories(libmosquitto PRIVATE
|
||||
"${OPENSSL_INCLUDE_DIR}"
|
||||
"${STDBOOL_H_PATH}"
|
||||
"${STDINT_H_PATH}"
|
||||
"${mosquitto_SOURCE_DIR}"
|
||||
"${mosquitto_SOURCE_DIR}/common"
|
||||
"${mosquitto_SOURCE_DIR}/include"
|
||||
"${mosquitto_SOURCE_DIR}/lib"
|
||||
target_include_directories(libmosquitto
|
||||
PUBLIC
|
||||
"${mosquitto_SOURCE_DIR}/include"
|
||||
"${OPENSSL_INCLUDE_DIR}"
|
||||
PRIVATE
|
||||
"${STDBOOL_H_PATH}"
|
||||
"${STDINT_H_PATH}"
|
||||
"${mosquitto_SOURCE_DIR}"
|
||||
"${mosquitto_SOURCE_DIR}/common"
|
||||
"${mosquitto_SOURCE_DIR}/lib"
|
||||
)
|
||||
|
||||
link_directories("${mosquitto_SOURCE_DIR}/lib")
|
||||
|
||||
if(WITH_BUNDLED_DEPS)
|
||||
target_include_directories(libmosquitto PRIVATE
|
||||
"${mosquitto_SOURCE_DIR}/deps"
|
||||
|
||||
@@ -8,16 +8,16 @@ set_target_properties(mosquittopp PROPERTIES
|
||||
POSITION_INDEPENDENT_CODE 1
|
||||
)
|
||||
|
||||
target_include_directories(mosquittopp PRIVATE
|
||||
"${STDBOOL_H_PATH}"
|
||||
"${STDINT_H_PATH}"
|
||||
"${mosquitto_SOURCE_DIR}/include"
|
||||
"${mosquitto_SOURCE_DIR}/lib"
|
||||
"${mosquitto_SOURCE_DIR}/lib/cpp"
|
||||
target_include_directories(mosquittopp
|
||||
PUBLIC
|
||||
"${mosquitto_SOURCE_DIR}/include"
|
||||
PRIVATE
|
||||
"${STDBOOL_H_PATH}"
|
||||
"${STDINT_H_PATH}"
|
||||
"${mosquitto_SOURCE_DIR}/lib"
|
||||
"${mosquitto_SOURCE_DIR}/lib/cpp"
|
||||
)
|
||||
|
||||
link_directories(${mosquitto_BINARY_DIR}/lib)
|
||||
|
||||
target_link_libraries(mosquittopp PRIVATE libmosquitto)
|
||||
|
||||
if (WITH_THREADING AND NOT WIN32)
|
||||
|
||||
@@ -1,9 +1,6 @@
|
||||
if(CJSON_FOUND AND WITH_TLS)
|
||||
add_definitions("-DWITH_CJSON")
|
||||
|
||||
set(CLIENT_INC
|
||||
"${CJSON_INCLUDE_DIRS}"
|
||||
"${OPENSSL_INCLUDE_DIR}"
|
||||
"${STDBOOL_H_PATH}"
|
||||
"${STDINT_H_PATH}"
|
||||
"${mosquitto_SOURCE_DIR}"
|
||||
@@ -50,16 +47,19 @@ if(CJSON_FOUND AND WITH_TLS)
|
||||
"${mosquitto_SOURCE_DIR}/deps"
|
||||
)
|
||||
endif()
|
||||
link_directories(${CLIENT_DIR} "${mosquitto_SOURCE_DIR}")
|
||||
|
||||
set_target_properties(mosquitto_dynamic_security PROPERTIES
|
||||
PREFIX ""
|
||||
POSITION_INDEPENDENT_CODE 1
|
||||
)
|
||||
|
||||
target_link_libraries(mosquitto_dynamic_security PRIVATE ${CJSON_LIBRARIES} ${OPENSSL_LIBRARIES})
|
||||
target_link_libraries(mosquitto_dynamic_security
|
||||
PRIVATE
|
||||
cJSON
|
||||
OpenSSL::SSL
|
||||
)
|
||||
target_link_libraries(mosquitto_dynamic_security PRIVATE mosquitto)
|
||||
if(WIN32)
|
||||
target_link_libraries(mosquitto_dynamic_security PRIVATE mosquitto)
|
||||
install(TARGETS mosquitto_dynamic_security
|
||||
DESTINATION "${CMAKE_INSTALL_BINDIR}")
|
||||
else()
|
||||
|
||||
@@ -16,9 +16,7 @@ set_target_properties(${PLUGIN_NAME} PROPERTIES
|
||||
POSITION_INDEPENDENT_CODE 1
|
||||
)
|
||||
|
||||
if(WIN32)
|
||||
target_link_libraries(${PLUGIN_NAME} PRIVATE mosquitto)
|
||||
endif()
|
||||
target_link_libraries(${PLUGIN_NAME} PRIVATE mosquitto)
|
||||
|
||||
# Don't install, these are example plugins only.
|
||||
#install(TARGETS ${PLUGIN_NAME} RUNTIME DESTINATION "${CMAKE_INSTALL_BINDIR}" LIBRARY DESTINATION "${CMAKE_INSTALL_LIBDIR}")
|
||||
|
||||
@@ -16,9 +16,7 @@ set_target_properties(${PLUGIN_NAME} PROPERTIES
|
||||
POSITION_INDEPENDENT_CODE 1
|
||||
)
|
||||
|
||||
if(WIN32)
|
||||
target_link_libraries(${PLUGIN_NAME} PRIVATE mosquitto)
|
||||
endif()
|
||||
target_link_libraries(${PLUGIN_NAME} PRIVATE mosquitto)
|
||||
|
||||
# Don't install, these are example plugins only.
|
||||
#install(TARGETS ${PLUGIN_NAME} RUNTIME DESTINATION "${CMAKE_INSTALL_BINDIR}" LIBRARY DESTINATION "${CMAKE_INSTALL_LIBDIR}")
|
||||
|
||||
@@ -5,7 +5,6 @@ add_library(${PLUGIN_NAME} MODULE
|
||||
)
|
||||
|
||||
target_include_directories(${PLUGIN_NAME} PRIVATE
|
||||
"${OPENSSL_INCLUDE_DIR}"
|
||||
"${STDBOOL_H_PATH}"
|
||||
"${STDINT_H_PATH}"
|
||||
"${mosquitto_SOURCE_DIR}"
|
||||
@@ -13,15 +12,12 @@ target_include_directories(${PLUGIN_NAME} PRIVATE
|
||||
"${mosquitto_SOURCE_DIR}/include"
|
||||
)
|
||||
|
||||
link_directories(${mosquitto_SOURCE_DIR})
|
||||
|
||||
set_target_properties(${PLUGIN_NAME} PROPERTIES
|
||||
PREFIX ""
|
||||
POSITION_INDEPENDENT_CODE 1
|
||||
)
|
||||
if(WIN32)
|
||||
target_link_libraries(${PLUGIN_NAME} PRIVATE mosquitto)
|
||||
endif()
|
||||
|
||||
target_link_libraries(${PLUGIN_NAME} PRIVATE mosquitto)
|
||||
|
||||
# Don't install, these are example plugins only.
|
||||
#install(TARGETS ${PLUGIN_NAME} RUNTIME DESTINATION "${CMAKE_INSTALL_BINDIR}" LIBRARY DESTINATION "${CMAKE_INSTALL_LIBDIR}")
|
||||
|
||||
@@ -11,16 +11,12 @@ target_include_directories(${PLUGIN_NAME} PRIVATE
|
||||
"${mosquitto_SOURCE_DIR}/include"
|
||||
)
|
||||
|
||||
link_directories(${mosquitto_SOURCE_DIR})
|
||||
|
||||
set_target_properties(${PLUGIN_NAME} PROPERTIES
|
||||
PREFIX ""
|
||||
POSITION_INDEPENDENT_CODE 1
|
||||
)
|
||||
|
||||
if(WIN32)
|
||||
target_link_libraries(${PLUGIN_NAME} PRIVATE mosquitto)
|
||||
endif()
|
||||
target_link_libraries(${PLUGIN_NAME} PRIVATE mosquitto)
|
||||
|
||||
# Don't install, these are example plugins only.
|
||||
#install(TARGETS ${PLUGIN_NAME} RUNTIME DESTINATION "${CMAKE_INSTALL_BINDIR}" LIBRARY DESTINATION "${CMAKE_INSTALL_LIBDIR}")
|
||||
|
||||
@@ -16,9 +16,7 @@ set_target_properties(${PLUGIN_NAME} PROPERTIES
|
||||
POSITION_INDEPENDENT_CODE 1
|
||||
)
|
||||
|
||||
if(WIN32)
|
||||
target_link_libraries(${PLUGIN_NAME} PRIVATE mosquitto)
|
||||
endif()
|
||||
target_link_libraries(${PLUGIN_NAME} PRIVATE mosquitto)
|
||||
|
||||
# Don't install, these are example plugins only.
|
||||
#install(TARGETS ${PLUGIN_NAME} RUNTIME DESTINATION "${CMAKE_INSTALL_BINDIR}" LIBRARY DESTINATION "${CMAKE_INSTALL_LIBDIR}")
|
||||
|
||||
@@ -22,9 +22,7 @@ set_target_properties(${PLUGIN_NAME} PROPERTIES
|
||||
POSITION_INDEPENDENT_CODE 1
|
||||
)
|
||||
|
||||
if(WIN32)
|
||||
target_link_libraries(${PLUGIN_NAME} PRIVATE mosquitto)
|
||||
endif()
|
||||
target_link_libraries(${PLUGIN_NAME} PRIVATE mosquitto)
|
||||
|
||||
# Don't install, these are example plugins only.
|
||||
#install(TARGETS ${PLUGIN_NAME} RUNTIME DESTINATION "${CMAKE_INSTALL_BINDIR}" LIBRARY DESTINATION "${CMAKE_INSTALL_LIBDIR}")
|
||||
|
||||
@@ -12,15 +12,12 @@ target_include_directories(${PLUGIN_NAME} PRIVATE
|
||||
"${mosquitto_SOURCE_DIR}/include"
|
||||
)
|
||||
|
||||
link_directories(${mosquitto_SOURCE_DIR})
|
||||
|
||||
set_target_properties(${PLUGIN_NAME} PROPERTIES
|
||||
PREFIX ""
|
||||
POSITION_INDEPENDENT_CODE 1
|
||||
)
|
||||
if(WIN32)
|
||||
target_link_libraries(${PLUGIN_NAME} PRIVATE mosquitto)
|
||||
endif()
|
||||
|
||||
target_link_libraries(${PLUGIN_NAME} PRIVATE mosquitto)
|
||||
|
||||
# Don't install, these are example plugins only.
|
||||
#install(TARGETS ${PLUGIN_NAME} RUNTIME DESTINATION "${CMAKE_INSTALL_BINDIR}" LIBRARY DESTINATION "${CMAKE_INSTALL_LIBDIR}")
|
||||
|
||||
@@ -5,7 +5,6 @@ add_library(${PLUGIN_NAME} MODULE
|
||||
)
|
||||
|
||||
target_include_directories(${PLUGIN_NAME} PRIVATE
|
||||
"${OPENSSL_INCLUDE_DIR}"
|
||||
"${STDBOOL_H_PATH}"
|
||||
"${STDINT_H_PATH}"
|
||||
"${mosquitto_SOURCE_DIR}"
|
||||
@@ -17,9 +16,7 @@ set_target_properties(${PLUGIN_NAME} PROPERTIES
|
||||
POSITION_INDEPENDENT_CODE 1
|
||||
)
|
||||
|
||||
if(WIN32)
|
||||
target_link_libraries(${PLUGIN_NAME} PRIVATE mosquitto)
|
||||
endif()
|
||||
target_link_libraries(${PLUGIN_NAME} PRIVATE mosquitto)
|
||||
|
||||
# Don't install, these are example plugins only.
|
||||
#install(TARGETS ${PLUGIN_NAME} RUNTIME DESTINATION "${CMAKE_INSTALL_BINDIR}" LIBRARY DESTINATION "${CMAKE_INSTALL_LIBDIR}")
|
||||
|
||||
@@ -5,22 +5,18 @@ add_library(${PLUGIN_NAME} MODULE
|
||||
)
|
||||
|
||||
target_include_directories(${PLUGIN_NAME} PRIVATE
|
||||
"${OPENSSL_INCLUDE_DIR}"
|
||||
"${STDBOOL_H_PATH}"
|
||||
"${STDINT_H_PATH}"
|
||||
"${mosquitto_SOURCE_DIR}"
|
||||
"${mosquitto_SOURCE_DIR}/include"
|
||||
)
|
||||
|
||||
link_directories(${mosquitto_SOURCE_DIR})
|
||||
|
||||
set_target_properties(${PLUGIN_NAME} PROPERTIES
|
||||
PREFIX ""
|
||||
POSITION_INDEPENDENT_CODE 1
|
||||
)
|
||||
if(WIN32)
|
||||
target_link_libraries(${PLUGIN_NAME} PRIVATE mosquitto)
|
||||
endif()
|
||||
|
||||
target_link_libraries(${PLUGIN_NAME} PRIVATE mosquitto)
|
||||
|
||||
# Don't install, these are example plugins only.
|
||||
#install(TARGETS ${PLUGIN_NAME} RUNTIME DESTINATION "${CMAKE_INSTALL_BINDIR}" LIBRARY DESTINATION "${CMAKE_INSTALL_LIBDIR}")
|
||||
|
||||
@@ -5,22 +5,18 @@ add_library(${PLUGIN_NAME} MODULE
|
||||
)
|
||||
|
||||
target_include_directories(${PLUGIN_NAME} PRIVATE
|
||||
"${OPENSSL_INCLUDE_DIR}"
|
||||
"${STDBOOL_H_PATH}"
|
||||
"${STDINT_H_PATH}"
|
||||
"${mosquitto_SOURCE_DIR}"
|
||||
"${mosquitto_SOURCE_DIR}/include"
|
||||
)
|
||||
|
||||
link_directories(${mosquitto_SOURCE_DIR})
|
||||
|
||||
set_target_properties(${PLUGIN_NAME} PROPERTIES
|
||||
PREFIX ""
|
||||
POSITION_INDEPENDENT_CODE 1
|
||||
)
|
||||
if(WIN32)
|
||||
target_link_libraries(${PLUGIN_NAME} PRIVATE mosquitto)
|
||||
endif()
|
||||
|
||||
target_link_libraries(${PLUGIN_NAME} PRIVATE mosquitto)
|
||||
|
||||
# Don't install, these are example plugins only.
|
||||
#install(TARGETS ${PLUGIN_NAME} RUNTIME DESTINATION "${CMAKE_INSTALL_BINDIR}" LIBRARY DESTINATION "${CMAKE_INSTALL_LIBDIR}")
|
||||
|
||||
@@ -5,22 +5,18 @@ add_library(${PLUGIN_NAME} MODULE
|
||||
)
|
||||
|
||||
target_include_directories(${PLUGIN_NAME} PRIVATE
|
||||
"${OPENSSL_INCLUDE_DIR}"
|
||||
"${STDBOOL_H_PATH}"
|
||||
"${STDINT_H_PATH}"
|
||||
"${mosquitto_SOURCE_DIR}"
|
||||
"${mosquitto_SOURCE_DIR}/include"
|
||||
)
|
||||
|
||||
link_directories(${mosquitto_SOURCE_DIR})
|
||||
|
||||
set_target_properties(${PLUGIN_NAME} PROPERTIES
|
||||
PREFIX ""
|
||||
POSITION_INDEPENDENT_CODE 1
|
||||
)
|
||||
if(WIN32)
|
||||
target_link_libraries(${PLUGIN_NAME} PRIVATE mosquitto)
|
||||
endif()
|
||||
|
||||
target_link_libraries(${PLUGIN_NAME} PRIVATE mosquitto)
|
||||
|
||||
# Don't install, these are example plugins only.
|
||||
#install(TARGETS ${PLUGIN_NAME} RUNTIME DESTINATION "${CMAKE_INSTALL_BINDIR}" LIBRARY DESTINATION "${CMAKE_INSTALL_LIBDIR}")
|
||||
|
||||
@@ -5,22 +5,18 @@ add_library(${PLUGIN_NAME} MODULE
|
||||
)
|
||||
|
||||
target_include_directories(${PLUGIN_NAME} PRIVATE
|
||||
"${OPENSSL_INCLUDE_DIR}"
|
||||
"${STDBOOL_H_PATH}"
|
||||
"${STDINT_H_PATH}"
|
||||
"${mosquitto_SOURCE_DIR}"
|
||||
"${mosquitto_SOURCE_DIR}/include"
|
||||
)
|
||||
|
||||
link_directories(${mosquitto_SOURCE_DIR})
|
||||
|
||||
set_target_properties(${PLUGIN_NAME} PROPERTIES
|
||||
PREFIX ""
|
||||
POSITION_INDEPENDENT_CODE 1
|
||||
)
|
||||
if(WIN32)
|
||||
target_link_libraries(${PLUGIN_NAME} PRIVATE mosquitto)
|
||||
endif()
|
||||
|
||||
target_link_libraries(${PLUGIN_NAME} PRIVATE mosquitto)
|
||||
|
||||
# Don't install, these are example plugins only.
|
||||
#install(TARGETS ${PLUGIN_NAME} RUNTIME DESTINATION "${CMAKE_INSTALL_BINDIR}" LIBRARY DESTINATION "${CMAKE_INSTALL_LIBDIR}")
|
||||
|
||||
@@ -5,22 +5,18 @@ add_library(${PLUGIN_NAME} MODULE
|
||||
)
|
||||
|
||||
target_include_directories(${PLUGIN_NAME} PRIVATE
|
||||
"${OPENSSL_INCLUDE_DIR}"
|
||||
"${STDBOOL_H_PATH}"
|
||||
"${STDINT_H_PATH}"
|
||||
"${mosquitto_SOURCE_DIR}"
|
||||
"${mosquitto_SOURCE_DIR}/include"
|
||||
)
|
||||
|
||||
link_directories(${mosquitto_SOURCE_DIR})
|
||||
|
||||
set_target_properties(${PLUGIN_NAME} PROPERTIES
|
||||
PREFIX ""
|
||||
POSITION_INDEPENDENT_CODE 1
|
||||
)
|
||||
if(WIN32)
|
||||
target_link_libraries(${PLUGIN_NAME} PRIVATE mosquitto)
|
||||
endif()
|
||||
|
||||
target_link_libraries(${PLUGIN_NAME} PRIVATE mosquitto)
|
||||
|
||||
# Don't install, these are example plugins only.
|
||||
#install(TARGETS ${PLUGIN_NAME} RUNTIME DESTINATION "${CMAKE_INSTALL_BINDIR}" LIBRARY DESTINATION "${CMAKE_INSTALL_LIBDIR}")
|
||||
|
||||
@@ -23,9 +23,7 @@ set_target_properties(${PLUGIN_NAME} PROPERTIES
|
||||
POSITION_INDEPENDENT_CODE 1
|
||||
)
|
||||
|
||||
if(WIN32)
|
||||
target_link_libraries(${PLUGIN_NAME} PRIVATE mosquitto)
|
||||
endif()
|
||||
target_link_libraries(${PLUGIN_NAME} PRIVATE mosquitto)
|
||||
|
||||
# Don't install, these are example plugins only.
|
||||
#install(TARGETS ${PLUGIN_NAME} RUNTIME DESTINATION "${CMAKE_INSTALL_BINDIR}" LIBRARY DESTINATION "${CMAKE_INSTALL_LIBDIR}")
|
||||
|
||||
@@ -1,7 +1,5 @@
|
||||
if(SQLITE3_FOUND AND CJSON_FOUND)
|
||||
add_definitions("-DWITH_CJSON")
|
||||
set(CLIENT_INC
|
||||
"${SQLITE3_INCLUDE_DIRS}"
|
||||
"${STDBOOL_H_PATH}"
|
||||
"${STDINT_H_PATH}"
|
||||
"${mosquitto_SOURCE_DIR}"
|
||||
@@ -10,8 +8,6 @@ if(SQLITE3_FOUND AND CJSON_FOUND)
|
||||
"${mosquitto_SOURCE_DIR}/src"
|
||||
)
|
||||
|
||||
set(CLIENT_DIR "${mosquitto_BINARY_DIR}/lib" "${SQLITE3_DIR}")
|
||||
|
||||
add_library(mosquitto_persist_sqlite MODULE
|
||||
base_msgs.c
|
||||
clients.c
|
||||
@@ -25,19 +21,20 @@ if(SQLITE3_FOUND AND CJSON_FOUND)
|
||||
)
|
||||
|
||||
target_include_directories(mosquitto_persist_sqlite PRIVATE
|
||||
${CLIENT_INC} ${SQLITE3_INCLUDE_DIR}
|
||||
${CLIENT_INC}
|
||||
)
|
||||
link_directories(${CLIENT_DIR} "${mosquitto_SOURCE_DIR}")
|
||||
|
||||
set_target_properties(mosquitto_persist_sqlite PROPERTIES
|
||||
PREFIX ""
|
||||
POSITION_INDEPENDENT_CODE 1
|
||||
)
|
||||
|
||||
target_link_libraries(mosquitto_persist_sqlite PRIVATE ${SQLITE3_LIBRARIES})
|
||||
if(WIN32)
|
||||
target_link_libraries(mosquitto_persist_sqlite PRIVATE mosquitto)
|
||||
endif()
|
||||
target_link_libraries(mosquitto_persist_sqlite
|
||||
PRIVATE
|
||||
SQLite::SQLite3
|
||||
cJSON
|
||||
)
|
||||
target_link_libraries(mosquitto_persist_sqlite PRIVATE mosquitto)
|
||||
|
||||
install(TARGETS mosquitto_persist_sqlite
|
||||
RUNTIME DESTINATION "${CMAKE_INSTALL_BINDIR}"
|
||||
|
||||
+23
-23
@@ -148,12 +148,6 @@ endif()
|
||||
|
||||
add_definitions (-DWITH_BROKER)
|
||||
|
||||
if(WITH_DLT)
|
||||
message(STATUS "DLT_LIBDIR = ${DLT_LIBDIR}")
|
||||
link_directories(${DLT_LIBDIR})
|
||||
set (MOSQ_LIBS ${MOSQ_LIBS} ${DLT_LIBRARIES})
|
||||
endif()
|
||||
|
||||
set (MOSQ_LIBS ${MOSQ_LIBS} ${OPENSSL_LIBRARIES})
|
||||
# Check for getaddrinfo_a
|
||||
include(CheckLibraryExists)
|
||||
@@ -210,7 +204,6 @@ if(WITH_WEBSOCKETS)
|
||||
set (MOSQ_LIBS ${MOSQ_LIBS} websockets_static)
|
||||
if(WIN32)
|
||||
set (MOSQ_LIBS ${MOSQ_LIBS} iphlpapi)
|
||||
link_directories(${mosquitto_SOURCE_DIR})
|
||||
endif()
|
||||
else(STATIC_WEBSOCKETS)
|
||||
set (MOSQ_LIBS ${MOSQ_LIBS} websockets)
|
||||
@@ -218,19 +211,28 @@ if(WITH_WEBSOCKETS)
|
||||
endif()
|
||||
endif()
|
||||
|
||||
if(CJSON_FOUND)
|
||||
set (MOSQ_LIBS ${MOSQ_LIBS} cjson)
|
||||
if(WITH_DLT)
|
||||
message(STATUS "DLT_LIBDIR = ${DLT_LIBDIR}")
|
||||
target_link_directories(mosquitto PRIVATE ${DLT_LIBDIR})
|
||||
set (MOSQ_LIBS ${MOSQ_LIBS} ${DLT_LIBRARIES})
|
||||
target_compile_definitions(mosquitto PRIVATE "WITH_DLT")
|
||||
endif()
|
||||
|
||||
target_include_directories(mosquitto PRIVATE
|
||||
"${OPENSSL_INCLUDE_DIR}"
|
||||
"${STDBOOL_H_PATH}"
|
||||
"${STDINT_H_PATH}"
|
||||
"${mosquitto_SOURCE_DIR}"
|
||||
"${mosquitto_SOURCE_DIR}/common"
|
||||
"${mosquitto_SOURCE_DIR}/include"
|
||||
"${mosquitto_SOURCE_DIR}/lib"
|
||||
"${mosquitto_SOURCE_DIR}/src"
|
||||
if(CJSON_FOUND)
|
||||
target_link_libraries(mosquitto PRIVATE cJSON)
|
||||
endif()
|
||||
|
||||
target_include_directories(mosquitto
|
||||
PUBLIC
|
||||
"${mosquitto_SOURCE_DIR}/include"
|
||||
"${OPENSSL_INCLUDE_DIR}"
|
||||
PRIVATE
|
||||
"${STDBOOL_H_PATH}"
|
||||
"${STDINT_H_PATH}"
|
||||
"${mosquitto_SOURCE_DIR}"
|
||||
"${mosquitto_SOURCE_DIR}/common"
|
||||
"${mosquitto_SOURCE_DIR}/lib"
|
||||
"${mosquitto_SOURCE_DIR}/src"
|
||||
)
|
||||
if(WITH_BUNDLED_DEPS)
|
||||
target_include_directories(mosquitto PRIVATE
|
||||
@@ -250,11 +252,9 @@ if (WITH_THREADING AND NOT WIN32)
|
||||
target_link_libraries(mosquitto PRIVATE Threads::Threads)
|
||||
endif()
|
||||
|
||||
if(WIN32)
|
||||
set_target_properties(mosquitto PROPERTIES
|
||||
ENABLE_EXPORTS 1
|
||||
)
|
||||
endif()
|
||||
set_target_properties(mosquitto PROPERTIES
|
||||
ENABLE_EXPORTS 1
|
||||
)
|
||||
|
||||
if(UNIX)
|
||||
if(APPLE)
|
||||
|
||||
@@ -197,7 +197,9 @@ static int bridge__set_tcp_keepalive(struct mosquitto *context)
|
||||
#else
|
||||
ret =
|
||||
setsockopt(context->sock, SOL_SOCKET, SO_KEEPALIVE, (const void*)&enabled, sizeof(enabled)) ||
|
||||
#ifndef __APPLE__
|
||||
setsockopt(context->sock, IPPROTO_TCP, TCP_KEEPIDLE, (const void*)&idle, sizeof(idle)) ||
|
||||
#endif
|
||||
setsockopt(context->sock, IPPROTO_TCP, TCP_KEEPINTVL, (const void*)&interval, sizeof(interval)) ||
|
||||
setsockopt(context->sock, IPPROTO_TCP, TCP_KEEPCNT, (const void*)&counter, sizeof(counter));
|
||||
#endif
|
||||
|
||||
+4
-1
@@ -387,7 +387,8 @@ static void print_usage(void)
|
||||
printf(" Not recommended in conjunction with the -c option.\n");
|
||||
printf(" -v : verbose mode - enable all logging types. This overrides\n");
|
||||
printf(" any logging options given in the config file.\n");
|
||||
printf(" --tls-keylog : Log TLS connection information to a file, to allow\n");
|
||||
printf(" --test-config : test config file and exit\n");
|
||||
printf(" --tls-keylog : log TLS connection information to a file, to allow\n");
|
||||
printf(" debugging with e.g. wireshark. Do not use on a production\n");
|
||||
printf(" server.\n");
|
||||
printf("\nSee https://mosquitto.org/ for more information.\n\n");
|
||||
@@ -454,6 +455,8 @@ int config__parse_args(struct mosquitto__config *config, int argc, char *argv[])
|
||||
#endif
|
||||
}else if(!strcmp(argv[i], "-v") || !strcmp(argv[i], "--verbose")){
|
||||
db.verbose = true;
|
||||
}else if(!strcmp(argv[i], "--test-config")){
|
||||
config->test_configuration = true;
|
||||
}else{
|
||||
fprintf(stderr, "Error: Unknown option '%s'.\n",argv[i]);
|
||||
print_usage();
|
||||
|
||||
+3
-1
@@ -20,6 +20,9 @@ Contributors:
|
||||
|
||||
#include <assert.h>
|
||||
#include <time.h>
|
||||
#ifdef __APPLE__
|
||||
#include <sys/socket.h>
|
||||
#endif
|
||||
|
||||
#include "mosquitto_broker_internal.h"
|
||||
#include "alias_mosq.h"
|
||||
@@ -318,4 +321,3 @@ void context__remove_from_by_id(struct mosquitto *context)
|
||||
context->in_by_id = false;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -264,6 +264,16 @@ int main(int argc, char *argv[])
|
||||
rc = config__parse_args(&config, argc, argv);
|
||||
if(rc != MOSQ_ERR_SUCCESS) return rc;
|
||||
|
||||
if(config.test_configuration){
|
||||
if(!db.config_file){
|
||||
log__printf(NULL, MOSQ_LOG_ERR, "Please provide a configuration file to test.");
|
||||
return MOSQ_ERR_INVAL;
|
||||
}else{
|
||||
log__printf(NULL, MOSQ_LOG_INFO, "Configuration file is OK.");
|
||||
return MOSQ_ERR_SUCCESS;
|
||||
}
|
||||
}
|
||||
|
||||
rc = keepalive__init();
|
||||
if(rc != MOSQ_ERR_SUCCESS) return rc;
|
||||
|
||||
|
||||
@@ -306,6 +306,7 @@ struct mosquitto__config {
|
||||
uint16_t cmd_port[CMD_PORT_LIMIT];
|
||||
int cmd_port_count;
|
||||
bool daemon;
|
||||
bool test_configuration;
|
||||
bool enable_control_api;
|
||||
int global_max_clients;
|
||||
int global_max_connections;
|
||||
|
||||
+5
-5
@@ -52,7 +52,7 @@ int mux_kqueue__add_listeners(struct mosquitto__listener_sock *listensock, int l
|
||||
struct kevent ev;
|
||||
int i;
|
||||
|
||||
memset(&event_list, 0, sizeof(struct kevent)*MAX_EVENTS);
|
||||
memset(&ev, 0, sizeof(struct kevent));
|
||||
|
||||
for(i=0; i<listensock_count; i++){
|
||||
EV_SET(&ev, listensock[i].sock, EVFILT_READ, EV_ADD, 0, 0, &listensock[i]);
|
||||
@@ -91,7 +91,7 @@ int mux_kqueue__add_out(struct mosquitto *context)
|
||||
struct kevent ev;
|
||||
|
||||
if(context->events != EVFILT_WRITE){
|
||||
EV_SET(&ev, context->sock, EVFILT_WRITE, EV_ADD, 0, 0, &context);
|
||||
EV_SET(&ev, context->sock, EVFILT_WRITE, EV_ADD, 0, 0, context);
|
||||
if(kevent(db.kqueuefd, &ev, 1, NULL, 0, NULL) == -1){
|
||||
log__printf(NULL, MOSQ_LOG_DEBUG, "Error in kqueue re-registering to EVFILT_WRITE: %s", strerror(errno));
|
||||
}
|
||||
@@ -107,7 +107,7 @@ int mux_kqueue__remove_out(struct mosquitto *context)
|
||||
struct kevent ev;
|
||||
|
||||
if(context->events == EVFILT_WRITE){
|
||||
EV_SET(&ev, context->sock, EVFILT_WRITE, EV_DELETE, 0, 0, &context);
|
||||
EV_SET(&ev, context->sock, EVFILT_WRITE, EV_DELETE, 0, 0, context);
|
||||
if(kevent(db.kqueuefd, &ev, 1, NULL, 0, NULL) == -1){
|
||||
log__printf(NULL, MOSQ_LOG_DEBUG, "Error in kqueue removing EVFILT_WRITE: %s", strerror(errno));
|
||||
}
|
||||
@@ -137,8 +137,8 @@ int mux_kqueue__delete(struct mosquitto *context)
|
||||
struct kevent ev[2];
|
||||
|
||||
if(context->sock != INVALID_SOCKET){
|
||||
EV_SET(&ev[0], context->sock, EVFILT_READ, EV_DELETE, 0, 0, &context);
|
||||
EV_SET(&ev[1], context->sock, EVFILT_WRITE, EV_DELETE, 0, 0, &context);
|
||||
EV_SET(&ev[0], context->sock, EVFILT_READ, EV_DELETE, 0, 0, context);
|
||||
EV_SET(&ev[1], context->sock, EVFILT_WRITE, EV_DELETE, 0, 0, context);
|
||||
if(kevent(db.kqueuefd, ev, 2, NULL, 0, NULL) == -1){
|
||||
return 1;
|
||||
}
|
||||
|
||||
+1
-1
@@ -198,7 +198,7 @@ test-broker : build
|
||||
test : test-broker test-lib
|
||||
|
||||
clean :
|
||||
-rm -rf mosq_test bridge_topic_test keepalive_test persist_read_test persist_write_test
|
||||
-rm -rf mosq_test bridge_topic_test keepalive_test persist_read_test persist_write_test subs_test
|
||||
-rm -rf *.o *.gcda *.gcno coverage.info out/
|
||||
|
||||
coverage :
|
||||
|
||||
@@ -1,5 +0,0 @@
|
||||
#!/bin/bash
|
||||
|
||||
if [ "$TRAVIS_OS_NAME" == "osx" ]; then
|
||||
cmake -DOPENSSL_ROOT_DIR=/usr/local/opt/openssl .
|
||||
fi
|
||||
@@ -1,16 +0,0 @@
|
||||
#!/bin/bash
|
||||
|
||||
|
||||
if [ "$TRAVIS_OS_NAME" == "linux" ]; then
|
||||
sudo apt-get update -qq
|
||||
sudo apt-get install -y debhelper libc-ares-dev libssl-dev libwrap0-dev python-all python3-all uthash-dev xsltproc docbook-xsl libcunit1-dev
|
||||
git clone https://github.com/DaveGamble/cJSON
|
||||
make -C cJSON
|
||||
sudo make PREFIX=/usr -C cJSON install
|
||||
fi
|
||||
|
||||
if [ "$TRAVIS_OS_NAME" == "osx" ]; then
|
||||
HOMEBREW_NO_AUTO_UPDATE=1 brew install c-ares cjson openssl libwebsockets
|
||||
fi
|
||||
|
||||
sudo pip install paho-mqtt
|
||||
Reference in New Issue
Block a user