Logger : set right permission to socket and log files 06/88806/3 accepted/tizen/common/20160921.161316 accepted/tizen/ivi/20160922.042859 accepted/tizen/mobile/20160922.042806 accepted/tizen/tv/20160922.042823 accepted/tizen/wearable/20160922.042841 submit/tizen/20160920.154002
authorKarol Lewandowski <k.lewandowsk@samsung.com>
Tue, 20 Sep 2016 14:58:56 +0000 (16:58 +0200)
committerKichan Kwon <k_c.kwon@samsung.com>
Tue, 20 Sep 2016 15:17:10 +0000 (00:17 +0900)
Change-Id: Ia5793ab0ce1e15da0d16c0685258f965a64e87a2
Signed-off-by: Kichan Kwon <k_c.kwon@samsung.com>
[Split logger configuration & file parsing]
Signed-off-by: Karol Lewandowski <k.lewandowsk@samsung.com>
[Bug fix]
Signed-off-by: Kichan Kwon <k_c.kwon@samsung.com>
src/logger/logger.c

index 0ad446e..ad88142 100644 (file)
@@ -1426,7 +1426,7 @@ static struct logger* logger_create(struct log_config *conf)
                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;
@@ -1592,38 +1592,53 @@ err:
 }
 
 /**
- * @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
@@ -1692,16 +1707,27 @@ int main(int argc, char** argv)
 {
        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);