master
c 79 lines 2.2 KB
Raw
1 // SPDX-License-Identifier: GPL-3.0-or-later
2
3 #include "exporting_engine.h"
4
5 /**
6 * Clean the instance config.
7 *
8 * @param config an instance config structure.
9 */
10 static void clean_instance_config(struct instance_config *config)
11 {
12 if(!config)
13 return;
14
15 freez((void *)config->type_name);
16 freez((void *)config->name);
17 freez((void *)config->destination);
18 freez((void *)config->username);
19 freez((void *)config->password);
20 freez((void *)config->prefix);
21 freez((void *)config->hostname);
22
23 simple_pattern_free(config->charts_pattern);
24
25 simple_pattern_free(config->hosts_pattern);
26 }
27
28 /**
29 * Clean the allocated variables
30 *
31 * @param instance an instance data structure.
32 */
33 void clean_instance(struct instance *instance)
34 {
35 clean_instance_config(&instance->config);
36 buffer_free(instance->labels_buffer);
37
38 netdata_cond_destroy(&instance->cond_var);
39 }
40
41 /**
42 * Clean up a simple connector instance on Netdata exit
43 *
44 * @param instance an instance data structure.
45 */
46 void simple_connector_cleanup(struct instance *instance)
47 {
48 netdata_log_info("EXPORTING: cleaning up instance %s ...", instance->config.name);
49
50 struct simple_connector_data *simple_connector_data =
51 (struct simple_connector_data *)instance->connector_specific_data;
52
53 freez(simple_connector_data->auth_string);
54
55 buffer_free(instance->buffer);
56 buffer_free(simple_connector_data->buffer);
57 buffer_free(simple_connector_data->header);
58
59 struct simple_connector_buffer *next_buffer = simple_connector_data->first_buffer;
60 for (int i = 0; i < instance->config.buffer_on_failures; i++) {
61 struct simple_connector_buffer *current_buffer = next_buffer;
62 next_buffer = next_buffer->next;
63
64 buffer_free(current_buffer->header);
65 buffer_free(current_buffer->buffer);
66 freez(current_buffer);
67 }
68
69 netdata_ssl_close(&simple_connector_data->ssl);
70
71 freez(simple_connector_data);
72
73 struct simple_connector_config *simple_connector_config =
74 (struct simple_connector_config *)instance->config.connector_specific_config;
75 freez(simple_connector_config);
76
77 netdata_log_info("EXPORTING: instance %s exited", instance->config.name);
78 instance->exited = 1;
79 }