26
26
#include <string.h>
29
log_process_rule_init_instance(LogProcessRule *self, const gchar *name)
31
memset(self, 0, sizeof(LogProcessRule));
29
log_process_pipe_free_method(LogPipe *s)
31
log_pipe_free_method(s);
35
log_process_pipe_init_instance(LogProcessPipe *self)
37
log_pipe_init_instance(&self->super);
38
self->super.free_fn = log_process_pipe_free_method;
42
log_process_rule_new(const gchar *name, GList *head)
44
LogProcessRule *self = g_new0(LogProcessRule, 1);
33
48
self->name = g_strdup(name);
46
62
if (--self->ref_cnt == 0)
64
g_list_foreach(self->head, (GFunc) log_pipe_unref, NULL);
65
g_list_free(self->head);
50
66
g_free(self->name);
56
log_process_pipe_init(LogPipe *s)
58
LogProcessPipe *self = (LogProcessPipe *) s;
60
return log_process_rule_init(self->rule, self->super.cfg);
64
log_process_pipe_deinit(LogPipe *s)
66
LogProcessPipe *self = (LogProcessPipe *) s;
68
log_process_rule_deinit(self->rule, self->super.cfg);
73
log_process_pipe_queue(LogPipe *s, LogMessage *msg, const LogPathOptions *path_options)
75
LogProcessPipe *self = (LogProcessPipe *) s;
76
if (log_process_rule_process(self->rule, msg))
80
log_pipe_queue(s->pipe_next, msg, path_options);
82
log_msg_drop(msg, path_options);
86
if (path_options->matched)
87
(*path_options->matched) = FALSE;
88
log_msg_drop(msg, path_options);
93
log_process_pipe_free(LogPipe *s)
95
LogProcessPipe *self = (LogProcessPipe *) s;
97
log_process_rule_unref(self->rule);
98
log_pipe_free_method(s);
102
log_process_pipe_new(LogProcessRule *rule)
104
LogProcessPipe *self = g_new0(LogProcessPipe, 1);
106
log_pipe_init_instance(&self->super);
107
log_process_rule_ref(rule);
109
self->super.init = log_process_pipe_init;
110
self->super.deinit = log_process_pipe_deinit;
111
self->super.queue = log_process_pipe_queue;
112
self->super.free_fn = log_process_pipe_free;