25 #ifndef CFG_H_INCLUDED
26 #define CFG_H_INCLUDED
43 #include <sys/types.h>
138 Plugin *
cfg_find_plugin(GlobalConfig *
cfg, gint plugin_type,
const gchar *plugin_name);
165 gpointer arg,
const gchar *desc);
166 gboolean
cfg_read_config(GlobalConfig *
cfg,
const gchar *fname, gchar *preprocess_into);
186 static inline gboolean
187 __cfg_is_config_version_older(GlobalConfig *
cfg, gint req)
203 #define cfg_is_config_version_older(__cfg, __req) \
205 G_STATIC_ASSERT((__req) <= VERSION_VALUE_LAST_SEMANTIC_CHANGE || (__req) == VERSION_VALUE_NEXT_MAJOR); \
206 __cfg_is_config_version_older(__cfg, __req); \
225 #define __cfg_is_feature_enabled(cfg, min_version) \
227 G_STATIC_ASSERT(min_version == 0 || VERSION_VALUE_CURRENT < ((min_version) - 1)); \
228 version_convert_from_user(cfg->user_version) >= (min_version) - 1; \
231 #define cfg_is_feature_enabled(cfg, topic) __cfg_is_feature_enabled(cfg, FEATURE_ ## topic ## _MIN_VERSION)
232 #define cfg_is_typing_feature_enabled(cfg) cfg_is_feature_enabled(cfg, TYPING)
234 #define cfg_is_experimental_feature_enabled(cfg) 0
237 cfg_set_use_uniqid(gboolean flag)
246 static inline EVTTAG *
247 cfg_format_version_tag(
const gchar *tag_name, gint
version)
252 static inline EVTTAG *
253 cfg_format_config_version_tag(GlobalConfig *
self)
255 return cfg_format_version_tag(
"config-version",
self->user_version);
PersistConfig * persist_config_new(void)
Definition: cfg-persist.c:88
gboolean cfg_is_module_available(GlobalConfig *self, const gchar *module_name)
Definition: cfg.c:190
guint cfg_get_parsed_version(const GlobalConfig *cfg)
gpointer cfg_parse_plugin(GlobalConfig *cfg, Plugin *plugin, CFG_LTYPE *yylloc, gpointer arg)
Definition: cfg.c:246
void cfg_set_global_paths(GlobalConfig *self)
Definition: cfg.c:532
gboolean cfg_load_module_with_args(GlobalConfig *cfg, const gchar *module_name, CfgArgs *args)
Definition: cfg.c:142
void cfg_bad_hostname_set(GlobalConfig *self, gchar *bad_hostname_re)
Definition: cfg.c:80
void cfg_persist_config_add(GlobalConfig *cfg, const gchar *name, gpointer value, GDestroyNotify destroy)
Definition: cfg.c:774
gboolean cfg_run_parser_with_main_context(GlobalConfig *self, CfgLexer *lexer, CfgParser *parser, gpointer *result, gpointer arg, const gchar *desc)
Definition: cfg.c:575
gint cfg_get_user_version(const GlobalConfig *cfg)
Definition: cfg.c:797
gpointer cfg_persist_config_fetch(GlobalConfig *cfg, const gchar *name)
Definition: cfg.c:789
const gchar * cfg_get_filename(const GlobalConfig *cfg)
Definition: cfg.c:819
gboolean cfg_set_log_level(GlobalConfig *self, const gchar *log_level)
Definition: cfg.c:113
void persist_config_free(PersistConfig *self)
Definition: cfg-persist.c:98
GlobalConfig * cfg_new(gint version)
Definition: cfg.c:457
gint cfg_lookup_mark_mode(const gchar *mark_mode)
Definition: cfg.c:88
gboolean cfg_load_module(GlobalConfig *cfg, const gchar *module_name)
Definition: cfg.c:148
void cfg_persist_config_move(GlobalConfig *src, GlobalConfig *dest)
Definition: cfg.c:763
gboolean is_source_mangle_callback_registered(GlobalConfig *src, mangle_callback cb)
Definition: cfg.c:808
gint cfg_ts_format_value(gchar *format)
Definition: cfg.c:61
gboolean(* mangle_callback)(GlobalConfig *cfg, LogMessage *msg, gpointer user_data)
Definition: cfg.h:180
gboolean cfg_is_shutting_down(GlobalConfig *cfg)
Definition: cfg.c:283
void cfg_set_user_config_id(GlobalConfig *self, const gchar *id)
Definition: cfg.c:646
gboolean cfg_set_version(GlobalConfig *self, gint version)
Definition: cfg.c:363
Plugin * cfg_find_plugin(GlobalConfig *cfg, gint plugin_type, const gchar *plugin_name)
Definition: cfg.c:202
gboolean cfg_set_current_version(GlobalConfig *self)
Definition: cfg.c:423
void cfg_free(GlobalConfig *self)
Definition: cfg.c:722
gboolean cfg_init(GlobalConfig *cfg)
Definition: cfg.c:290
void cfg_set_mark_mode(GlobalConfig *self, const gchar *mark_mode)
Definition: cfg.c:107
void cfg_load_forced_modules(GlobalConfig *self)
Definition: cfg.c:154
@ MM_INTERNAL
Definition: cfg.h:49
@ MM_DST_IDLE
Definition: cfg.h:50
@ MM_HOST_IDLE
Definition: cfg.h:51
@ MM_PERIODICAL
Definition: cfg.h:52
@ MM_NONE
Definition: cfg.h:53
@ MM_GLOBAL
Definition: cfg.h:54
void register_source_mangle_callback(GlobalConfig *src, mangle_callback cb)
Definition: cfg.c:802
gboolean cfg_run_parser(GlobalConfig *self, CfgLexer *lexer, CfgParser *parser, gpointer *result, gpointer arg)
Definition: cfg.c:552
GlobalConfig * cfg_new_subordinate(GlobalConfig *master)
Definition: cfg.c:523
void cfg_set_version_without_validation(GlobalConfig *self, gint version)
Definition: cfg.c:357
gint cfg_tz_convert_value(gchar *convert)
void cfg_shutdown(GlobalConfig *self)
Definition: cfg.c:276
void cfg_discover_candidate_modules(GlobalConfig *self)
Definition: cfg.c:180
gboolean cfg_deinit(GlobalConfig *cfg)
Definition: cfg.c:349
GlobalConfig * cfg_new_snippet(void)
Definition: cfg.c:511
gboolean cfg_read_config(GlobalConfig *cfg, const gchar *fname, gchar *preprocess_into)
Definition: cfg.c:670
gboolean cfg_allow_config_dups(GlobalConfig *self)
Definition: cfg.c:430
void uregister_source_mangle_callback(GlobalConfig *src, mangle_callback cb)
Definition: cfg.c:813
void cfg_format_id(GlobalConfig *self, GString *id)
Definition: cfg.c:653
const gchar * name
Definition: debugger.c:265
EVTTAG * evt_tag_printf(const char *tag, const char *format,...) G_GNUC_PRINTF(2
GlobalConfig * configuration
Definition: globals.c:27
#define self
Definition: rcptid.c:38
Definition: cfg-lexer.h:88
Definition: cfg-parser.h:34
Definition: cfg-tree.h:165
Definition: dnscache.h:32
Definition: file-perms.h:31
Definition: healthcheck-stats.h:30
Definition: host-resolve.h:30
Definition: cfg-persist.h:31
gchar * bad_hostname_re
Definition: cfg.h:89
gchar * recv_time_zone
Definition: cfg.h:109
LogTemplate * proto_template
Definition: cfg.h:117
GHashTable * module_config
Definition: cfg.h:123
gint type_cast_strictness
Definition: cfg.h:95
gint time_reap
Definition: cfg.h:93
CfgArgs * globals
Definition: cfg.h:74
gint time_reopen
Definition: cfg.h:92
gboolean enable_forced_modules
Definition: cfg.h:72
gint mark_mode
Definition: cfg.h:80
gboolean create_dirs
Definition: cfg.h:102
gint suppress
Definition: cfg.h:94
PluginContext plugin_context
Definition: cfg.h:70
gboolean trim_large_messages
Definition: cfg.h:99
gint log_fifo_size
Definition: cfg.h:97
gboolean bad_hostname_compiled
Definition: cfg.h:87
gint log_level
Definition: cfg.h:100
gboolean use_plugin_discovery
Definition: cfg.h:71
gchar * user_config_id
Definition: cfg.h:65
PersistConfig * persist
Definition: cfg.h:121
CfgTree tree
Definition: cfg.h:125
gchar * custom_domain
Definition: cfg.h:90
gboolean use_uniqid
Definition: cfg.h:105
gboolean pass_unix_credentials
Definition: cfg.h:82
LogTemplateOptions template_options
Definition: cfg.h:110
gboolean threaded
Definition: cfg.h:81
LogTemplate * file_template
Definition: cfg.h:116
HostResolveOptions host_resolve_options
Definition: cfg.h:111
gint log_msg_size
Definition: cfg.h:98
HealthCheckStatsOptions healthcheck_options
Definition: cfg.h:77
gboolean check_hostname
Definition: cfg.h:85
gboolean keep_hostname
Definition: cfg.h:84
gboolean chain_hostnames
Definition: cfg.h:83
gboolean check_program
Definition: cfg.h:86
gchar * proto_template_name
Definition: cfg.h:114
GString * preprocess_config
Definition: cfg.h:127
DNSCacheOptions dns_cache_options
Definition: cfg.h:91
const gchar * filename
Definition: cfg.h:69
gint user_version
Definition: cfg.h:62
StatsOptions stats_options
Definition: cfg.h:76
GList * source_mangle_callback_list
Definition: cfg.h:104
guint8 * config_hash
Definition: cfg.h:67
GString * original_config
Definition: cfg.h:128
FilePermOptions file_perm_options
Definition: cfg.h:103
gint mark_freq
Definition: cfg.h:78
CfgLexer * lexer
Definition: cfg.h:73
gboolean keep_timestamp
Definition: cfg.h:107
PersistState * state
Definition: cfg.h:122
guint min_iw_size_per_reader
Definition: cfg.h:119
gint flush_lines
Definition: cfg.h:79
GList * file_list
Definition: cfg.h:130
gchar * file_template_name
Definition: cfg.h:113
regex_t bad_hostname
Definition: cfg.h:88
GlobalConfig * cfg
Definition: test_batched_ack_tracker.c:34
GString * value
Definition: test_decode.c:28
CfgParserMock * parser
Definition: test_lexer.c:36
GString * result
Definition: test_lexer_block.c:34
LogMessage * msg
Definition: test_rename.c:35
#define version_convert_from_user(v)
Definition: versioning.h:217