clean_connectors.c 2.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081
  1. // SPDX-License-Identifier: GPL-3.0-or-later
  2. #include "exporting_engine.h"
  3. /**
  4. * Clean the instance config.
  5. *
  6. * @param config an instance config structure.
  7. */
  8. static void clean_instance_config(struct instance_config *config)
  9. {
  10. if(!config)
  11. return;
  12. freez((void *)config->type_name);
  13. freez((void *)config->name);
  14. freez((void *)config->destination);
  15. freez((void *)config->prefix);
  16. freez((void *)config->hostname);
  17. simple_pattern_free(config->charts_pattern);
  18. simple_pattern_free(config->hosts_pattern);
  19. }
  20. /**
  21. * Clean the allocated variables
  22. *
  23. * @param instance an instance data structure.
  24. */
  25. void clean_instance(struct instance *instance)
  26. {
  27. clean_instance_config(&instance->config);
  28. buffer_free(instance->labels);
  29. uv_cond_destroy(&instance->cond_var);
  30. // uv_mutex_destroy(&instance->mutex);
  31. }
  32. /**
  33. * Clean up a simple connector instance on Netdata exit
  34. *
  35. * @param instance an instance data structure.
  36. */
  37. void simple_connector_cleanup(struct instance *instance)
  38. {
  39. info("EXPORTING: cleaning up instance %s ...", instance->config.name);
  40. struct simple_connector_data *simple_connector_data =
  41. (struct simple_connector_data *)instance->connector_specific_data;
  42. buffer_free(instance->buffer);
  43. buffer_free(simple_connector_data->buffer);
  44. buffer_free(simple_connector_data->header);
  45. struct simple_connector_buffer *next_buffer = simple_connector_data->first_buffer;
  46. for (int i = 0; i < instance->config.buffer_on_failures; i++) {
  47. struct simple_connector_buffer *current_buffer = next_buffer;
  48. next_buffer = next_buffer->next;
  49. buffer_free(current_buffer->header);
  50. buffer_free(current_buffer->buffer);
  51. freez(current_buffer);
  52. }
  53. #ifdef ENABLE_HTTPS
  54. if (simple_connector_data->conn)
  55. SSL_free(simple_connector_data->conn);
  56. #endif
  57. freez(simple_connector_data);
  58. struct simple_connector_config *simple_connector_config =
  59. (struct simple_connector_config *)instance->config.connector_specific_config;
  60. freez(simple_connector_config);
  61. info("EXPORTING: instance %s exited", instance->config.name);
  62. instance->exited = 1;
  63. return;
  64. }