syslog-ng source
logreader.h
Go to the documentation of this file.
1 /*
2  * Copyright (c) 2002-2012 Balabit
3  * Copyright (c) 1998-2012 Balázs Scheidler
4  *
5  * This library is free software; you can redistribute it and/or
6  * modify it under the terms of the GNU Lesser General Public
7  * License as published by the Free Software Foundation; either
8  * version 2.1 of the License, or (at your option) any later version.
9  *
10  * This library is distributed in the hope that it will be useful,
11  * but WITHOUT ANY WARRANTY; without even the implied warranty of
12  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
13  * Lesser General Public License for more details.
14  *
15  * You should have received a copy of the GNU Lesser General Public
16  * License along with this library; if not, write to the Free Software
17  * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
18  *
19  * As an additional exemption you are allowed to compile & link against the
20  * OpenSSL libraries as published by the OpenSSL project. See the file
21  * COPYING for details.
22  *
23  */
24 
25 #ifndef LOGREADER_H_INCLUDED
26 #define LOGREADER_H_INCLUDED
27 
28 #include "logsource.h"
32 #include "poll-events.h"
33 #include "mainloop-io-worker.h"
34 #include "msg-format.h"
35 #include <iv_event.h>
36 
37 /* flags */
38 #define LR_KERNEL 0x0002
39 #define LR_EMPTY_LINES 0x0004
40 #define LR_IGNORE_AUX_DATA 0x0008
41 #define LR_THREADED 0x0040
42 #define LR_EXIT_ON_EOF 0x0080
43 
44 /* options */
45 
46 typedef struct _LogReaderOptions
47 {
48  gboolean initialized;
51  LogProtoServerOptionsStorage proto_options;
52  guint32 flags;
54  const gchar *group_name;
55  gboolean check_hostname;
56  gboolean check_program;
58 
59 typedef struct _LogReader LogReader;
60 
61 struct _LogReader
62 {
63  LogSource super;
64  LogProtoServer *proto;
65  LogPipe *control;
67  PollEvents *poll_events;
70  StatsAggregator *max_message_size;
71  StatsAggregator *average_messages_size;
72  StatsAggregator *CPS;
73  struct iv_task restart_task;
74  struct iv_event schedule_wakeup;
76  guint watches_running: 1,
82 
83  /* proto & poll_events pending to be applied. As long as the previous
84  * processing is being done, we can't replace these in self->proto and
85  * self->poll_events, they get applied to the production ones as soon as
86  * the previous work is finished */
87  gboolean pending_close;
90 
91  struct iv_timer idle_timer;
92 };
93 
94 void log_reader_set_options(LogReader *s, LogPipe *control, LogReaderOptions *options, const gchar *stats_id,
95  StatsClusterKeyBuilder *kb);
96 void log_reader_set_follow_filename(LogReader *self, const gchar *follow_filename);
97 void log_reader_set_name(LogReader *s, const gchar *name);
98 void log_reader_set_peer_addr(LogReader *s, GSockAddr *peer_addr);
99 void log_reader_set_local_addr(LogReader *s, GSockAddr *local_addr);
100 void log_reader_disable_bookmark_saving(LogReader *s);
101 void log_reader_trigger_one_check(LogReader *s);
102 gboolean log_reader_is_opened(LogReader *s);
103 void log_reader_open(LogReader *s, LogProtoServer *proto, PollEvents *poll_events);
104 void log_reader_close_proto(LogReader *s);
105 LogReader *log_reader_new(GlobalConfig *cfg);
106 
108 void log_reader_options_init(LogReaderOptions *options, GlobalConfig *cfg, const gchar *group_name);
110 void log_reader_options_set_tags(LogReaderOptions *options, GList *tags);
111 gboolean log_reader_options_process_flag(LogReaderOptions *options, const gchar *flag);
112 
113 #endif
const gchar * name
Definition: debugger.c:265
void log_reader_trigger_one_check(LogReader *s)
Definition: logreader.c:358
LogReader * log_reader_new(GlobalConfig *cfg)
Definition: logreader.c:833
void log_reader_disable_bookmark_saving(LogReader *s)
Definition: logreader.c:91
void log_reader_set_peer_addr(LogReader *s, GSockAddr *peer_addr)
Definition: logreader.c:42
void log_reader_options_destroy(LogReaderOptions *options)
Definition: logreader.c:927
void log_reader_set_local_addr(LogReader *s, GSockAddr *local_addr)
Definition: logreader.c:51
void log_reader_set_name(LogReader *s, const gchar *name)
Definition: logreader.c:85
void log_reader_options_defaults(LogReaderOptions *options)
Definition: logreader.c:855
void log_reader_set_options(LogReader *s, LogPipe *control, LogReaderOptions *options, const gchar *stats_id, StatsClusterKeyBuilder *kb)
Definition: logreader.c:60
gboolean log_reader_is_opened(LogReader *s)
Definition: logreader.c:278
void log_reader_options_set_tags(LogReaderOptions *options, GList *tags)
gboolean log_reader_options_process_flag(LogReaderOptions *options, const gchar *flag)
Definition: logreader.c:949
void log_reader_open(LogReader *s, LogProtoServer *proto, PollEvents *poll_events)
Definition: logreader.c:269
void log_reader_close_proto(LogReader *s)
Definition: logreader.c:252
void log_reader_set_follow_filename(LogReader *self, const gchar *follow_filename)
void log_reader_options_init(LogReaderOptions *options, GlobalConfig *cfg, const gchar *group_name)
Definition: logreader.c:888
Definition: gsockaddr.h:46
Definition: logreader.h:47
MsgFormatOptions parse_options
Definition: logreader.h:50
guint32 flags
Definition: logreader.h:52
LogProtoServerOptionsStorage proto_options
Definition: logreader.h:51
gboolean initialized
Definition: logreader.h:48
gint fetch_limit
Definition: logreader.h:53
gboolean check_program
Definition: logreader.h:56
gboolean check_hostname
Definition: logreader.h:55
const gchar * group_name
Definition: logreader.h:54
LogSourceOptions super
Definition: logreader.h:49
Definition: logsource.h:36
Definition: mainloop-io-worker.h:32
Definition: msg-format.h:69
Definition: logreader.h:62
guint realloc_window_after_fetch
Definition: logreader.h:78
LogSource super
Definition: logreader.h:63
struct iv_timer idle_timer
Definition: logreader.h:91
guint suspended
Definition: logreader.h:77
GMutex pending_close_lock
Definition: logreader.h:89
gint notify_code
Definition: logreader.h:81
GSockAddr * local_addr
Definition: logreader.h:69
LogReaderOptions * options
Definition: logreader.h:66
StatsAggregator * CPS
Definition: logreader.h:72
guint can_fetch_after_handshake
Definition: logreader.h:80
struct iv_task restart_task
Definition: logreader.h:73
GSockAddr * peer_addr
Definition: logreader.h:68
PollEvents * poll_events
Definition: logreader.h:67
StatsAggregator * average_messages_size
Definition: logreader.h:71
GCond pending_close_cond
Definition: logreader.h:88
gboolean pending_close
Definition: logreader.h:87
MainLoopIOWorkerJob io_job
Definition: logreader.h:75
LogPipe * control
Definition: logreader.h:65
guint handshake_in_progress
Definition: logreader.h:79
StatsAggregator * max_message_size
Definition: logreader.h:70
LogProtoServer * proto
Definition: logreader.h:64
guint watches_running
Definition: logreader.h:76
struct iv_event schedule_wakeup
Definition: logreader.h:74
GlobalConfig * cfg
Definition: test_batched_ack_tracker.c:34