*/
config_param_register("port");
+
+static config_t *global_config = NULL;
+
static inline config_t *config_new(void)
{
config_t *config = p_new(config_t, 1);
+ global_config = config;
return config;
}
if (*config) {
config_close(*config);
p_delete(config);
+ global_config = NULL;
}
}
+static void config_exit()
+{
+ if (global_config) {
+ config_delete(&global_config);
+ }
+}
+module_exit(config_exit);
static bool config_second_pass(config_t *config)
{
ok = false;
#define PARSE_CHECK(Expr, Fmt, ...) \
if (!(Expr)) { \
- syslog(LOG_ERR, Fmt, ##__VA_ARGS__); \
+ err(Fmt, ##__VA_ARGS__); \
return false; \
}
foreach (filter_param_t *param, config->params) {
array_deep_wipe(config->params, filter_params_wipe);
if (!ok) {
- syslog(LOG_ERR, "no entry point defined");
+ err("no entry point defined");
}
return ok;
char key[BUFSIZ];
char value[BUFSIZ];
- ssize_t key_len, value_len;
+ int key_len, value_len;
if (!file_map_open(&map, config->filename, false)) {
return false;
linep = p = map.map;
#define READ_LOG(Lev, Fmt, ...) \
- syslog(LOG_ ## Lev, "config file %s:%d:%d: " Fmt, config->filename, \
- line + 1, p - linep + 1, ##__VA_ARGS__)
+ __log(LOG_ ## Lev, "config file %s:%d:%d: " Fmt, config->filename, \
+ line + 1, (int)(p - linep + 1), ##__VA_ARGS__)
#define READ_ERROR(Fmt, ...) \
do { \
READ_LOG(ERR, Fmt, ##__VA_ARGS__); \
return true;
badeof:
- syslog(LOG_ERR, "Unexpected end of file");
+ err("Unexpected end of file");
error:
if (filter.name) {
config_t *config = config_new();
config->filename = file;
if (!config_reload(config)) {
- p_delete(&config);
+ config_delete(&config);
return NULL;
}
return config;