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