@cryptotaxi247 / netdata-1 / commits / 2de4e77cc

Inject costallocz to mqtt_websockets library and its children (#13813)

* use mallocz, freez & family also from within the mqtt libs

Timotej S committed Oct 17, 2022 at 17:12 UTC 2de4e77cc9388fcbbe6e0bda40edefb655d86e96
9 files changed +102 -43
CMakeLists.txt
+33 -16
@@ -896,22 +896,6 @@ set(ACLK_FILES
896 aclk/aclk_alarm_api.h
897 aclk/aclk_contexts_api.c
898 aclk/aclk_contexts_api.h
899 - mqtt_websockets/src/mqtt_wss_client.c
900 - mqtt_websockets/src/include/mqtt_wss_client.h
901 - mqtt_websockets/src/mqtt_wss_log.c
902 - mqtt_websockets/src/include/mqtt_wss_log.h
903 - mqtt_websockets/src/ws_client.c
904 - mqtt_websockets/src/include/ws_client.h
905 - mqtt_websockets/src/mqtt_ng.c
906 - mqtt_websockets/src/include/mqtt_ng.h
907 - mqtt_websockets/src/common_public.c
908 - mqtt_websockets/src/include/common_public.h
909 - mqtt_websockets/src/include/common_internal.h
910 - mqtt_websockets/c-rbuf/src/ringbuffer.c
911 - mqtt_websockets/c-rbuf/include/ringbuffer.h
912 - mqtt_websockets/c-rbuf/src/ringbuffer_internal.h
913 - mqtt_websockets/MQTT-C/src/mqtt.c
914 - mqtt_websockets/MQTT-C/include/mqtt.h
899 aclk/schema-wrappers/connection.cc
900 aclk/schema-wrappers/connection.h
901 aclk/schema-wrappers/node_connection.cc
@@ -935,6 +919,27 @@ set(ACLK_FILES
919 aclk/schema-wrappers/schema_wrappers.h
920 aclk/schema-wrappers/schema_wrapper_utils.cc
921 aclk/schema-wrappers/schema_wrapper_utils.h
922 + aclk/helpers/mqtt_wss_pal.h
923 + aclk/helpers/ringbuffer_pal.h
924 + )
925 +
926 +set(MQTT_WEBSOCKETS_FILES
927 + mqtt_websockets/src/mqtt_wss_client.c
928 + mqtt_websockets/src/include/mqtt_wss_client.h
929 + mqtt_websockets/src/mqtt_wss_log.c
930 + mqtt_websockets/src/include/mqtt_wss_log.h
931 + mqtt_websockets/src/ws_client.c
932 + mqtt_websockets/src/include/ws_client.h
933 + mqtt_websockets/src/mqtt_ng.c
934 + mqtt_websockets/src/include/mqtt_ng.h
935 + mqtt_websockets/src/common_public.c
936 + mqtt_websockets/src/include/common_public.h
937 + mqtt_websockets/src/include/common_internal.h
938 + mqtt_websockets/c-rbuf/src/ringbuffer.c
939 + mqtt_websockets/c-rbuf/include/ringbuffer.h
940 + mqtt_websockets/c-rbuf/src/ringbuffer_internal.h
941 + mqtt_websockets/MQTT-C/src/mqtt.c
942 + mqtt_websockets/MQTT-C/include/mqtt.h
943 )
944
945 set(SPAWN_PLUGIN_FILES
@@ -1260,6 +1265,18 @@ include_directories(BEFORE ${CMAKE_SOURCE_DIR}/mqtt_websockets/MQTT-C/include)
1265 include_directories(BEFORE ${CMAKE_SOURCE_DIR}/mqtt_websockets/src/include)
1266 include_directories(BEFORE ${CMAKE_SOURCE_DIR}/mqtt_websockets/c-rbuf/include)
1267
1268 +ADD_LIBRARY(mqttwebsockets STATIC
1269 + ${MQTT_WEBSOCKETS_FILES})
1270 +
1271 +target_compile_options(mqttwebsockets PUBLIC
1272 + -DMQTT_WSS_CUSTOM_ALLOC
1273 + -DRBUF_CUSTOM_MALLOC)
1274 +
1275 +target_include_directories(mqttwebsockets PUBLIC
1276 + ${CMAKE_SOURCE_DIR}/aclk/helpers)
1277 +
1278 +set(NETDATA_COMMON_LIBRARIES ${NETDATA_COMMON_LIBRARIES} mqttwebsockets)
1279 +
1280 ENDIF()
1281
1282 list(APPEND NETDATA_FILES ${ACLK_ALWAYS_BUILD})
Makefile.am
+28 -16
@@ -678,26 +678,12 @@ ACLK_FILES = \
678 aclk/aclk_rx_msgs.h \
679 aclk/https_client.c \
680 aclk/https_client.h \
681 - mqtt_websockets/src/mqtt_wss_client.c \
682 - mqtt_websockets/src/include/mqtt_wss_client.h \
683 - mqtt_websockets/src/mqtt_wss_log.c \
684 - mqtt_websockets/src/include/mqtt_wss_log.h \
685 - mqtt_websockets/src/ws_client.c \
686 - mqtt_websockets/src/include/ws_client.h \
687 - mqtt_websockets/src/mqtt_ng.c \
688 - mqtt_websockets/src/include/mqtt_ng.h \
689 - mqtt_websockets/src/common_public.c \
690 - mqtt_websockets/src/include/common_public.h \
691 - mqtt_websockets/src/include/common_internal.h \
692 - mqtt_websockets/c-rbuf/src/ringbuffer.c \
693 - mqtt_websockets/c-rbuf/include/ringbuffer.h \
694 - mqtt_websockets/c-rbuf/src/ringbuffer_internal.h \
695 - mqtt_websockets/MQTT-C/src/mqtt.c \
696 - mqtt_websockets/MQTT-C/include/mqtt.h \
681 aclk/aclk_alarm_api.c \
682 aclk/aclk_alarm_api.h \
683 aclk/aclk_contexts_api.c \
684 aclk/aclk_contexts_api.h \
685 + aclk/helpers/mqtt_wss_pal.h \
686 + aclk/helpers/ringbuffer_pal.h \
687 aclk/schema-wrappers/connection.cc \
688 aclk/schema-wrappers/connection.h \
689 aclk/schema-wrappers/node_connection.cc \
@@ -723,6 +709,28 @@ ACLK_FILES = \
709 aclk/schema-wrappers/context.h \
710 $(NULL)
711
712 +noinst_LIBRARIES += libmqttwebsockets.a
713 +
714 +libmqttwebsockets_a_SOURCES = \
715 + mqtt_websockets/src/mqtt_wss_client.c \
716 + mqtt_websockets/src/include/mqtt_wss_client.h \
717 + mqtt_websockets/src/mqtt_wss_log.c \
718 + mqtt_websockets/src/include/mqtt_wss_log.h \
719 + mqtt_websockets/src/ws_client.c \
720 + mqtt_websockets/src/include/ws_client.h \
721 + mqtt_websockets/src/mqtt_ng.c \
722 + mqtt_websockets/src/include/mqtt_ng.h \
723 + mqtt_websockets/src/common_public.c \
724 + mqtt_websockets/src/include/common_public.h \
725 + mqtt_websockets/src/include/common_internal.h \
726 + mqtt_websockets/c-rbuf/src/ringbuffer.c \
727 + mqtt_websockets/c-rbuf/include/ringbuffer.h \
728 + mqtt_websockets/c-rbuf/src/ringbuffer_internal.h \
729 + mqtt_websockets/MQTT-C/src/mqtt.c \
730 + mqtt_websockets/MQTT-C/include/mqtt.h
731 +
732 +libmqttwebsockets_a_CFLAGS = $(CFLAGS) -DMQTT_WSS_CUSTOM_ALLOC -DRBUF_CUSTOM_MALLOC -I$(srcdir)/aclk/helpers
733 +
734 mqtt_websockets/src/mqtt_wss_client.$(OBJEXT) : CFLAGS += -Wno-unused-result
735
736 ACLK_PROTO_DEFINITIONS = \
@@ -959,6 +967,10 @@ NETDATA_COMMON_LIBS = \
967 $(OPTIONAL_DL_LIBS) \
968 $(NULL)
969
970 +if ENABLE_ACLK
971 + NETDATA_COMMON_LIBS += libmqttwebsockets.a
972 +endif
973 +
974 if LINK_STATIC_JSONC
975 NETDATA_COMMON_LIBS += $(abs_top_srcdir)/externaldeps/jsonc/libjson-c.a
976 endif
aclk/helpers/mqtt_wss_pal.h new
+19
@@ -0,0 +1,19 @@
1 +// SPDX-License-Identifier: GPL-3.0-or-later
2 +
3 +#ifndef MQTT_WSS_PAL_H
4 +#define MQTT_WSS_PAL_H
5 +
6 +#include "libnetdata/libnetdata.h"
7 +
8 +#undef OPENSSL_VERSION_095
9 +#undef OPENSSL_VERSION_097
10 +#undef OPENSSL_VERSION_110
11 +#undef OPENSSL_VERSION_111
12 +
13 +#define mw_malloc(...) mallocz(__VA_ARGS__)
14 +#define mw_calloc(...) callocz(__VA_ARGS__)
15 +#define mw_free(...) freez(__VA_ARGS__)
16 +#define mw_strdup(...) strdupz(__VA_ARGS__)
17 +#define mw_realloc(...) reallocz(__VA_ARGS__)
18 +
19 +#endif /* MQTT_WSS_PAL_H */
aclk/helpers/ringbuffer_pal.h new
+11
@@ -0,0 +1,11 @@
1 +// SPDX-License-Identifier: GPL-3.0-or-later
2 +
3 +#ifndef RINGBUFFER_PAL_H
4 +#define RINGBUFFER_PAL_H
5 +
6 +#include "libnetdata/libnetdata.h"
7 +
8 +#define crbuf_malloc(...) mallocz(__VA_ARGS__)
9 +#define crbuf_free(...) freez(__VA_ARGS__)
10 +
11 +#endif /* RINGBUFFER_PAL_H */
aclk/schema-wrappers/connection.cc
+4 -4
@@ -38,7 +38,7 @@ char *generate_update_agent_connection(size_t *len, const update_agent_connectio
38 }
39
40 *len = PROTO_COMPAT_MSG_SIZE(connupd);
41 - char *msg = (char*)malloc(*len);
41 + char *msg = (char*)mallocz(*len);
42 if (msg)
43 connupd.SerializeToArray(msg, *len);
44
@@ -52,7 +52,7 @@ struct disconnect_cmd *parse_disconnect_cmd(const char *data, size_t len) {
52 if (!req.ParseFromArray(data, len))
53 return NULL;
54
55 - res = (struct disconnect_cmd *)calloc(1, sizeof(struct disconnect_cmd));
55 + res = (struct disconnect_cmd *)callocz(1, sizeof(struct disconnect_cmd));
56
57 if (!res)
58 return NULL;
@@ -61,9 +61,9 @@ struct disconnect_cmd *parse_disconnect_cmd(const char *data, size_t len) {
61 res->permaban = req.permaban();
62 res->error_code = req.error_code();
63 if (req.error_description().c_str()) {
64 - res->error_description = strdup(req.error_description().c_str());
64 + res->error_description = strdupz(req.error_description().c_str());
65 if (!res->error_description) {
66 - free(res);
66 + freez(res);
67 return NULL;
68 }
69 }
aclk/schema-wrappers/node_connection.cc
+1 -1
@@ -38,7 +38,7 @@ char *generate_node_instance_connection(size_t *len, const node_instance_connect
38 }
39
40 *len = PROTO_COMPAT_MSG_SIZE(msg);
41 - char *bin = (char*)malloc(*len);
41 + char *bin = (char*)mallocz(*len);
42 if (bin)
43 msg.SerializeToArray(bin, *len);
44
aclk/schema-wrappers/node_creation.cc
+3 -3
@@ -18,7 +18,7 @@ char *generate_node_instance_creation(size_t *len, const node_instance_creation_
18 msg.set_hops(data->hops);
19
20 *len = PROTO_COMPAT_MSG_SIZE(msg);
21 - char *bin = (char*)malloc(*len);
21 + char *bin = (char*)mallocz(*len);
22 if (bin)
23 msg.SerializeToArray(bin, *len);
24
@@ -33,7 +33,7 @@ node_instance_creation_result_t parse_create_node_instance_result(const char *da
33 if (!msg.ParseFromArray(data, len))
34 return res;
35
36 - res.node_id = strdup(msg.node_id().c_str());
37 - res.machine_guid = strdup(msg.machine_guid().c_str());
36 + res.node_id = strdupz(msg.node_id().c_str());
37 + res.machine_guid = strdupz(msg.machine_guid().c_str());
38 return res;
39 }
aclk/schema-wrappers/node_info.cc
+2 -2
@@ -104,7 +104,7 @@ char *generate_update_node_info_message(size_t *len, struct update_node_info *in
104 }
105
106 *len = PROTO_COMPAT_MSG_SIZE(msg);
107 - char *bin = (char*)malloc(*len);
107 + char *bin = (char*)mallocz(*len);
108 if (bin)
109 msg.SerializeToArray(bin, *len);
110
@@ -128,7 +128,7 @@ char *generate_update_node_collectors_message(size_t *len, struct update_node_co
128 dfe_done(colls);
129
130 *len = PROTO_COMPAT_MSG_SIZE(msg);
131 - char *bin = (char*)malloc(*len);
131 + char *bin = (char*)mallocz(*len);
132 if (bin)
133 msg.SerializeToArray(bin, *len);
134
mqtt_websockets
+1 -1
@@ -1 +1 @@
1 -Subproject commit 3c9b62f2dc2dd319469d977fc06cd934951f3a72
1 +Subproject commit b7552adefedfde5cf6be3d3d8b2b3946e94b13c5