snprintf(conf_key, MAX_CONF_KEY_LEN, "%s_write_sock_group", log_name_by_id(i));
conf_value2 = log_config_get(conf, conf_key);
- if (!change_owners(l->socket_ctl[i].path, conf_value, conf_value2))
+ if (!change_owners(l->socket_wr[i].path, conf_value, conf_value2))
goto err7;
l->socket_wr[i]._entity.type = ENTITY_CONTROL;
}
/**
- * @brief Parse configs
- * @details Create and configurate the logger server
+ * @brief Init
+ * @details Create logger server
* @param[out] server The created server
+ * @param[out] config Configuration file
* @return 0 on success, else errno
*/
-static int parse_configs(struct logger** server)
+static int logger_init(struct logger** server, struct log_config* config)
{
- struct log_config conf;
- const char *conf_val;
- char conf_key[MAX_CONF_KEY_LEN];
- int i = 0;
+ int r = 0;
+
if (*server)
logger_free(*server);
- log_config_read(&conf);
+ log_config_read(config);
- *server = logger_create(&conf);
+ *server = logger_create(config);
if (!(*server))
- return EINVAL;
+ r = EINVAL;
+
+ return r;
+}
+
+/**
+ * @brief Parse configs
+ * @details configure the logger server
+ * @param[out] server The created server
+ * @param[out] config Configuration file
+ * @return 0 on success, else errno
+ */
+static int logger_parse_configs(struct logger* server, struct log_config* config)
+{
+ const char *conf_val;
+ char conf_key[MAX_CONF_KEY_LEN];
+ int i = 0;
while (1) {
snprintf(conf_key, MAX_CONF_KEY_LEN, "dlog_logger_conf_%d", i++);
- conf_val = log_config_get(&conf, conf_key);
+ conf_val = log_config_get(config, conf_key);
if (!conf_val)
break;
- parse_command_line(conf_val, *server, NULL);
+ parse_command_line(conf_val, server, NULL);
}
- log_config_free(&conf);
return 0;
}
+
/**
* @brief Print help
* @details Prints basic usage tips
{
int r;
struct logger* server = NULL;
+ struct log_config config;
+
signal(SIGPIPE, SIG_IGN);
- r = parse_configs(&server);
+ r = logger_init(&server, &config);
if (r) {
logger_free(server);
+ log_config_free(&config);
return r;
}
reset_self_privileges();
+ r = logger_parse_configs(server, &config);
+ log_config_free(&config);
+
+ if (r) {
+ logger_free(server);
+ return r;
+ }
+
r = parse_args(argc, argv, server);
if (r) {
logger_free(server);