static gboolean log_reader_init(LogPipe *s) { LogReader *self = (LogReader *) s; if (!log_source_init(s)) return FALSE; if (!log_proto_server_validate_options(self->proto)) return FALSE; if (!self->options->parse_options.format_handler) { msg_error("Unknown format plugin specified", evt_tag_str("format", self->options->parse_options.format)); return FALSE; } poll_events_set_callback(self->poll_events, log_reader_io_process_input, self); log_reader_update_watches(self); iv_event_register(&self->schedule_wakeup); iv_event_register(&self->last_msg_sent_event); return TRUE; }
static gboolean _add_poll_events(JournalReader *self) { gint fd = journald_get_fd(self->journal); if (fd < 0) { msg_error("Error setting up journal polling, journald_get_fd() returned failure", evt_tag_errno("error", errno)); journald_close(self->journal); return FALSE; } self->poll_events = poll_fd_events_new(fd); poll_events_set_callback(self->poll_events, _io_process_async_input, self); return TRUE; }