static void afprogram_sd_free(LogPipe *s) { AFProgramSourceDriver *self = (AFProgramSourceDriver *) s; log_reader_options_destroy(&self->reader_options); g_string_free(self->cmdline, TRUE); log_src_driver_free(s); }
void afsocket_sd_free_method(LogPipe *s) { AFSocketSourceDriver *self = (AFSocketSourceDriver *) s; log_reader_options_destroy(&self->reader_options); transport_mapper_free(self->transport_mapper); g_sockaddr_unref(self->bind_addr); self->bind_addr = NULL; log_src_driver_free(s); }
static void affile_sd_free(LogPipe *s) { AFFileSourceDriver *self = (AFFileSourceDriver *) s; g_string_free(self->filename, TRUE); g_assert(!self->reader); log_reader_options_destroy(&self->reader_options); log_drv_free(s); }
void afsocket_sd_free(LogPipe *s) { AFSocketSourceDriver *self = (AFSocketSourceDriver *) s; log_reader_options_destroy(&self->reader_options); g_sockaddr_unref(self->bind_addr); self->bind_addr = NULL; g_free(self->transport); log_drv_free(s); }
static void afstreams_sd_free(LogPipe *s) { AFStreamsSourceDriver *self = (AFStreamsSourceDriver *) s; log_reader_options_destroy(&self->reader_options); if (self->dev_filename) g_string_free(self->dev_filename, TRUE); if (self->door_filename) g_string_free(self->door_filename, TRUE); log_src_driver_free(s); }
static void affile_sd_free(LogPipe *s) { AFFileSourceDriver *self = (AFFileSourceDriver *) s; g_string_free(self->filename, TRUE); g_assert(!self->reader); log_reader_options_destroy(&self->reader_options); multi_line_regexp_free(self->multi_line_prefix); multi_line_regexp_free(self->multi_line_garbage); log_src_driver_free(s); }
void afsocket_sd_free(LogPipe *s) { AFSocketSourceDriver *self = (AFSocketSourceDriver *) s; log_reader_options_destroy(&self->reader_options); g_sockaddr_unref(self->bind_addr); self->bind_addr = NULL; g_free(self->transport); #if ENABLE_SSL if(self->tls_context) { tls_context_free(self->tls_context); } #endif log_src_driver_free(s); }
/* * NOTE: options_init and options_destroy are a bit weird, because their * invocation is not completely symmetric: * * - init is called from driver init (e.g. affile_sd_init), * - destroy is called from driver free method (e.g. affile_sd_free, NOT affile_sd_deinit) * * The reason: * - when initializing the reloaded configuration fails for some reason, * we have to fall back to the old configuration, thus we cannot dump * the information stored in the Options structure. * * For the reasons above, init and destroy behave the following way: * * - init is idempotent, it can be called multiple times without leaking * memory, and without loss of information * - destroy is only called once, when the options are indeed to be destroyed * * As init allocates memory, it has to take care about freeing memory * allocated by the previous init call (or it has to reuse those). * */ void log_reader_options_init(LogReaderOptions *options, GlobalConfig *cfg, const gchar *group_name) { gchar *recv_time_zone; TimeZoneInfo *recv_time_zone_info; gchar *host_override, *program_override, *text_encoding, *format; MsgFormatHandler *format_handler; GArray *tags; recv_time_zone = options->parse_options.recv_time_zone; options->parse_options.recv_time_zone = NULL; recv_time_zone_info = options->parse_options.recv_time_zone_info; options->parse_options.recv_time_zone_info = NULL; text_encoding = options->text_encoding; options->text_encoding = NULL; /* NOTE: having to save super's variables is a crude hack, but I know of * no other way to do it in the scheme described above. Be sure that you * know what you are doing when you modify this code. */ tags = options->super.tags; options->super.tags = NULL; host_override = options->super.host_override; options->super.host_override = NULL; program_override = options->super.program_override; options->super.program_override = NULL; format = options->parse_options.format; options->parse_options.format = NULL; format_handler = options->parse_options.format_handler; options->parse_options.format_handler = NULL; /*********************************************************************** * PLEASE NOTE THIS. please read the comment at the top of the function ***********************************************************************/ log_reader_options_destroy(options); options->parse_options.format = format; options->parse_options.format_handler = format_handler; options->super.host_override = host_override; options->super.program_override = program_override; options->super.tags = tags; options->parse_options.recv_time_zone = recv_time_zone; options->parse_options.recv_time_zone_info = recv_time_zone_info; options->text_encoding = text_encoding; options->parse_options.format = format; log_source_options_init(&options->super, cfg, group_name); msg_format_options_init(&options->parse_options, cfg); if (options->msg_size == -1) options->msg_size = cfg->log_msg_size; if (options->follow_freq == -1) options->follow_freq = cfg->follow_freq; if (options->check_hostname == -1) options->check_hostname = cfg->check_hostname; if (options->check_hostname) { options->parse_options.flags |= LP_CHECK_HOSTNAME; } if (options->parse_options.default_pri == 0xFFFF) { if (options->flags & LR_KERNEL) options->parse_options.default_pri = LOG_KERN | LOG_NOTICE; else options->parse_options.default_pri = LOG_USER | LOG_NOTICE; } if (options->text_encoding) options->parse_options.flags |= LP_ASSUME_UTF8; if (cfg->threaded) options->flags |= LR_THREADED; }