diff options
-rw-r--r-- | CMakeLists.txt | 49 | ||||
-rw-r--r-- | Makefile.am | 44 | ||||
-rw-r--r-- | aclk/helpers/mqtt_wss_pal.h | 19 | ||||
-rw-r--r-- | aclk/helpers/ringbuffer_pal.h | 11 | ||||
-rw-r--r-- | aclk/schema-wrappers/connection.cc | 8 | ||||
-rw-r--r-- | aclk/schema-wrappers/node_connection.cc | 2 | ||||
-rw-r--r-- | aclk/schema-wrappers/node_creation.cc | 6 | ||||
-rw-r--r-- | aclk/schema-wrappers/node_info.cc | 4 | ||||
m--------- | mqtt_websockets | 20 |
9 files changed, 121 insertions, 42 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt index 088f12800d..86e77a3aa4 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -896,22 +896,6 @@ set(ACLK_FILES aclk/aclk_alarm_api.h aclk/aclk_contexts_api.c aclk/aclk_contexts_api.h - mqtt_websockets/src/mqtt_wss_client.c - mqtt_websockets/src/include/mqtt_wss_client.h - mqtt_websockets/src/mqtt_wss_log.c - mqtt_websockets/src/include/mqtt_wss_log.h - mqtt_websockets/src/ws_client.c - mqtt_websockets/src/include/ws_client.h - mqtt_websockets/src/mqtt_ng.c - mqtt_websockets/src/include/mqtt_ng.h - mqtt_websockets/src/common_public.c - mqtt_websockets/src/include/common_public.h - mqtt_websockets/src/include/common_internal.h - mqtt_websockets/c-rbuf/src/ringbuffer.c - mqtt_websockets/c-rbuf/include/ringbuffer.h - mqtt_websockets/c-rbuf/src/ringbuffer_internal.h - mqtt_websockets/MQTT-C/src/mqtt.c - mqtt_websockets/MQTT-C/include/mqtt.h aclk/schema-wrappers/connection.cc aclk/schema-wrappers/connection.h aclk/schema-wrappers/node_connection.cc @@ -935,6 +919,27 @@ set(ACLK_FILES aclk/schema-wrappers/schema_wrappers.h aclk/schema-wrappers/schema_wrapper_utils.cc aclk/schema-wrappers/schema_wrapper_utils.h + aclk/helpers/mqtt_wss_pal.h + aclk/helpers/ringbuffer_pal.h + ) + +set(MQTT_WEBSOCKETS_FILES + mqtt_websockets/src/mqtt_wss_client.c + mqtt_websockets/src/include/mqtt_wss_client.h + mqtt_websockets/src/mqtt_wss_log.c + mqtt_websockets/src/include/mqtt_wss_log.h + mqtt_websockets/src/ws_client.c + mqtt_websockets/src/include/ws_client.h + mqtt_websockets/src/mqtt_ng.c + mqtt_websockets/src/include/mqtt_ng.h + mqtt_websockets/src/common_public.c + mqtt_websockets/src/include/common_public.h + mqtt_websockets/src/include/common_internal.h + mqtt_websockets/c-rbuf/src/ringbuffer.c + mqtt_websockets/c-rbuf/include/ringbuffer.h + mqtt_websockets/c-rbuf/src/ringbuffer_internal.h + mqtt_websockets/MQTT-C/src/mqtt.c + mqtt_websockets/MQTT-C/include/mqtt.h ) set(SPAWN_PLUGIN_FILES @@ -1260,6 +1265,18 @@ include_directories(BEFORE ${CMAKE_SOURCE_DIR}/mqtt_websockets/MQTT-C/include) include_directories(BEFORE ${CMAKE_SOURCE_DIR}/mqtt_websockets/src/include) include_directories(BEFORE ${CMAKE_SOURCE_DIR}/mqtt_websockets/c-rbuf/include) +ADD_LIBRARY(mqttwebsockets STATIC + ${MQTT_WEBSOCKETS_FILES}) + +target_compile_options(mqttwebsockets PUBLIC + -DMQTT_WSS_CUSTOM_ALLOC + -DRBUF_CUSTOM_MALLOC) + +target_include_directories(mqttwebsockets PUBLIC + ${CMAKE_SOURCE_DIR}/aclk/helpers) + +set(NETDATA_COMMON_LIBRARIES ${NETDATA_COMMON_LIBRARIES} mqttwebsockets) + ENDIF() list(APPEND NETDATA_FILES ${ACLK_ALWAYS_BUILD}) diff --git a/Makefile.am b/Makefile.am index d05dff5424..0d8b310bfd 100644 --- a/Makefile.am +++ b/Makefile.am @@ -678,26 +678,12 @@ ACLK_FILES = \ aclk/aclk_rx_msgs.h \ aclk/https_client.c \ aclk/https_client.h \ - mqtt_websockets/src/mqtt_wss_client.c \ - mqtt_websockets/src/include/mqtt_wss_client.h \ - mqtt_websockets/src/mqtt_wss_log.c \ - mqtt_websockets/src/include/mqtt_wss_log.h \ - mqtt_websockets/src/ws_client.c \ - mqtt_websockets/src/include/ws_client.h \ - mqtt_websockets/src/mqtt_ng.c \ - mqtt_websockets/src/include/mqtt_ng.h \ - mqtt_websockets/src/common_public.c \ - mqtt_websockets/src/include/common_public.h \ - mqtt_websockets/src/include/common_internal.h \ - mqtt_websockets/c-rbuf/src/ringbuffer.c \ - mqtt_websockets/c-rbuf/include/ringbuffer.h \ - mqtt_websockets/c-rbuf/src/ringbuffer_internal.h \ - mqtt_websockets/MQTT-C/src/mqtt.c \ - mqtt_websockets/MQTT-C/include/mqtt.h \ aclk/aclk_alarm_api.c \ aclk/aclk_alarm_api.h \ aclk/aclk_contexts_api.c \ aclk/aclk_contexts_api.h \ + aclk/helpers/mqtt_wss_pal.h \ + aclk/helpers/ringbuffer_pal.h \ aclk/schema-wrappers/connection.cc \ aclk/schema-wrappers/connection.h \ aclk/schema-wrappers/node_connection.cc \ @@ -723,6 +709,28 @@ ACLK_FILES = \ aclk/schema-wrappers/context.h \ $(NULL) +noinst_LIBRARIES += libmqttwebsockets.a + +libmqttwebsockets_a_SOURCES = \ + mqtt_websockets/src/mqtt_wss_client.c \ + mqtt_websockets/src/include/mqtt_wss_client.h \ + mqtt_websockets/src/mqtt_wss_log.c \ + mqtt_websockets/src/include/mqtt_wss_log.h \ + mqtt_websockets/src/ws_client.c \ + mqtt_websockets/src/include/ws_client.h \ + mqtt_websockets/src/mqtt_ng.c \ + mqtt_websockets/src/include/mqtt_ng.h \ + mqtt_websockets/src/common_public.c \ + mqtt_websockets/src/include/common_public.h \ + mqtt_websockets/src/include/common_internal.h \ + mqtt_websockets/c-rbuf/src/ringbuffer.c \ + mqtt_websockets/c-rbuf/include/ringbuffer.h \ + mqtt_websockets/c-rbuf/src/ringbuffer_internal.h \ + mqtt_websockets/MQTT-C/src/mqtt.c \ + mqtt_websockets/MQTT-C/include/mqtt.h + +libmqttwebsockets_a_CFLAGS = $(CFLAGS) -DMQTT_WSS_CUSTOM_ALLOC -DRBUF_CUSTOM_MALLOC -I$(srcdir)/aclk/helpers + mqtt_websockets/src/mqtt_wss_client.$(OBJEXT) : CFLAGS += -Wno-unused-result ACLK_PROTO_DEFINITIONS = \ @@ -959,6 +967,10 @@ NETDATA_COMMON_LIBS = \ $(OPTIONAL_DL_LIBS) \ $(NULL) +if ENABLE_ACLK + NETDATA_COMMON_LIBS += libmqttwebsockets.a +endif + if LINK_STATIC_JSONC NETDATA_COMMON_LIBS += $(abs_top_srcdir)/externaldeps/jsonc/libjson-c.a endif diff --git a/aclk/helpers/mqtt_wss_pal.h b/aclk/helpers/mqtt_wss_pal.h new file mode 100644 index 0000000000..5c89f8bb7d --- /dev/null +++ b/aclk/helpers/mqtt_wss_pal.h @@ -0,0 +1,19 @@ +// SPDX-License-Identifier: GPL-3.0-or-later + +#ifndef MQTT_WSS_PAL_H +#define MQTT_WSS_PAL_H + +#include "libnetdata/libnetdata.h" + +#undef OPENSSL_VERSION_095 +#undef OPENSSL_VERSION_097 +#undef OPENSSL_VERSION_110 +#undef OPENSSL_VERSION_111 + +#define mw_malloc(...) mallocz(__VA_ARGS__) +#define mw_calloc(...) callocz(__VA_ARGS__) +#define mw_free(...) freez(__VA_ARGS__) +#define mw_strdup(...) strdupz(__VA_ARGS__) +#define mw_realloc(...) reallocz(__VA_ARGS__) + +#endif /* MQTT_WSS_PAL_H */ diff --git a/aclk/helpers/ringbuffer_pal.h b/aclk/helpers/ringbuffer_pal.h new file mode 100644 index 0000000000..2f7e1cb935 --- /dev/null +++ b/aclk/helpers/ringbuffer_pal.h @@ -0,0 +1,11 @@ +// SPDX-License-Identifier: GPL-3.0-or-later + +#ifndef RINGBUFFER_PAL_H +#define RINGBUFFER_PAL_H + +#include "libnetdata/libnetdata.h" + +#define crbuf_malloc(...) mallocz(__VA_ARGS__) +#define crbuf_free(...) freez(__VA_ARGS__) + +#endif /* RINGBUFFER_PAL_H */ diff --git a/aclk/schema-wrappers/connection.cc b/aclk/schema-wrappers/connection.cc index 7520a46006..8be6b54d70 100644 --- a/aclk/schema-wrappers/connection.cc +++ b/aclk/schema-wrappers/connection.cc @@ -38,7 +38,7 @@ char *generate_update_agent_connection(size_t *len, const update_agent_connectio } *len = PROTO_COMPAT_MSG_SIZE(connupd); - char *msg = (char*)malloc(*len); + char *msg = (char*)mallocz(*len); if (msg) connupd.SerializeToArray(msg, *len); @@ -52,7 +52,7 @@ struct disconnect_cmd *parse_disconnect_cmd(const char *data, size_t len) { if (!req.ParseFromArray(data, len)) return NULL; - res = (struct disconnect_cmd *)calloc(1, sizeof(struct disconnect_cmd)); + res = (struct disconnect_cmd *)callocz(1, sizeof(struct disconnect_cmd)); if (!res) return NULL; @@ -61,9 +61,9 @@ struct disconnect_cmd *parse_disconnect_cmd(const char *data, size_t len) { res->permaban = req.permaban(); res->error_code = req.error_code(); if (req.error_description().c_str()) { - res->error_description = strdup(req.error_description().c_str()); + res->error_description = strdupz(req.error_description().c_str()); if (!res->error_description) { - free(res); + freez(res); return NULL; } } diff --git a/aclk/schema-wrappers/node_connection.cc b/aclk/schema-wrappers/node_connection.cc index a6ca8ef984..18f5cc6e1d 100644 --- a/aclk/schema-wrappers/node_connection.cc +++ b/aclk/schema-wrappers/node_connection.cc @@ -38,7 +38,7 @@ char *generate_node_instance_connection(size_t *len, const node_instance_connect } *len = PROTO_COMPAT_MSG_SIZE(msg); - char *bin = (char*)malloc(*len); + char *bin = (char*)mallocz(*len); if (bin) msg.SerializeToArray(bin, *len); diff --git a/aclk/schema-wrappers/node_creation.cc b/aclk/schema-wrappers/node_creation.cc index c696bb27ba..5ad25b7e5f 100644 --- a/aclk/schema-wrappers/node_creation.cc +++ b/aclk/schema-wrappers/node_creation.cc @@ -18,7 +18,7 @@ char *generate_node_instance_creation(size_t *len, const node_instance_creation_ msg.set_hops(data->hops); *len = PROTO_COMPAT_MSG_SIZE(msg); - char *bin = (char*)malloc(*len); + char *bin = (char*)mallocz(*len); if (bin) msg.SerializeToArray(bin, *len); @@ -33,7 +33,7 @@ node_instance_creation_result_t parse_create_node_instance_result(const char *da if (!msg.ParseFromArray(data, len)) return res; - res.node_id = strdup(msg.node_id().c_str()); - res.machine_guid = strdup(msg.machine_guid().c_str()); + res.node_id = strdupz(msg.node_id().c_str()); + res.machine_guid = strdupz(msg.machine_guid().c_str()); return res; } diff --git a/aclk/schema-wrappers/node_info.cc b/aclk/schema-wrappers/node_info.cc index 2a05ddaba7..5e321f6886 100644 --- a/aclk/schema-wrappers/node_info.cc +++ b/aclk/schema-wrappers/node_info.cc @@ -104,7 +104,7 @@ char *generate_update_node_info_message(size_t *len, struct update_node_info *in } *len = PROTO_COMPAT_MSG_SIZE(msg); - char *bin = (char*)malloc(*len); + char *bin = (char*)mallocz(*len); if (bin) msg.SerializeToArray(bin, *len); @@ -128,7 +128,7 @@ char *generate_update_node_collectors_message(size_t *len, struct update_node_co dfe_done(colls); *len = PROTO_COMPAT_MSG_SIZE(msg); - char *bin = (char*)malloc(*len); + char *bin = (char*)mallocz(*len); if (bin) msg.SerializeToArray(bin, *len); diff --git a/mqtt_websockets b/mqtt_websockets -Subproject 3c9b62f2dc2dd319469d977fc06cd934951f3a7 +Subproject b7552adefedfde5cf6be3d3d8b2b3946e94b13c |