#include "muse_server_private.h"
+static char *_ms_config_get_str(dictionary *d, const char *key, char *def);
+static int _ms_config_get_int(dictionary *d, const char *key, int def);
static int _ms_config_parser(ms_config_t *conf);
+static char *_ms_config_get_str(dictionary *d, const char *key, char *def)
+{
+ char *str = NULL;
+
+ g_return_val_if_fail(d, NULL);
+ g_return_val_if_fail(key, NULL);
+
+ str = iniparser_getstring(d, key, def);
+ if (!str) {
+ LOGE("Error - iniparser_getstring (%s)", key);
+ return NULL;
+ }
+
+ return strdup(str);
+}
+
+static int _ms_config_get_int(dictionary *d, const char *key, int def)
+{
+ g_return_val_if_fail(d, PARSE_ERROR);
+ g_return_val_if_fail(key, PARSE_ERROR);
+
+ return iniparser_getint(d, key, def);
+}
+
static int _ms_config_parser(ms_config_t *conf)
{
- int host_cnt;
+ int host_idx;
char *host = NULL;
char *str = NULL;
char *ptr = NULL;
char *key = NULL;
- char gst_param_value[MUSE_MSG_LEN_MAX];
+ char gst_param_key[MUSE_MSG_LEN_MAX];
g_return_val_if_fail(conf, PARSE_ERROR);
conf->muse_dict = iniparser_load(CONFFILE);
g_return_val_if_fail(conf->muse_dict, PARSE_ERROR);
- str = iniparser_getstring(conf->muse_dict, MUSE_HOST, NULL);
- if (!str) {
- LOGE("Error - iniparser_getstring (%s)", MUSE_HOST);
- goto out;
- }
-
- conf->hosts = strdup(str);
+ conf->hosts = _ms_config_get_str(conf->muse_dict, MUSE_HOST, NULL);
if (!conf->hosts) {
LOGE("Error - hosts allocation");
goto out;
}
- str = iniparser_getstring(conf->muse_dict, MUSE_LOG, NULL);
- if (!str) {
- LOGE("Error - iniparser_getstring (%s)", MUSE_LOG);
- goto out;
- }
-
- if (strncmp(str, MUSE_USE_LOG, strlen(MUSE_USE_LOG)) == 0)
+ str = _ms_config_get_str(conf->muse_dict, MUSE_LOG, NULL);
+ if (str && strncmp(str, MUSE_USE_LOG, strlen(MUSE_USE_LOG)) == 0)
conf->log_enabled = TRUE;
else
conf->log_enabled = FALSE;
- str = iniparser_getstring(conf->muse_dict, MUSE_LOCK, NULL);
- if (!str) {
- LOGE("Error - iniparser_getstring (%s)", MUSE_LOCK);
- goto out;
- }
-
- conf->lockfile = strdup(str);
+ conf->lockfile = _ms_config_get_str(conf->muse_dict, MUSE_LOCK, NULL);
if (!conf->lockfile) {
LOGE("Error - lockfile allocation");
goto out;
}
- str = iniparser_getstring(conf->muse_dict, MUSE_MIN_TIMEOUT, NULL);
- if (!str) {
- LOGE("Error - iniparser_getstring (%s)", MUSE_MIN_TIMEOUT);
- goto out;
- }
+ conf->min_timeout = _ms_config_get_int(conf->muse_dict, MUSE_WATCHDOG_MIN_TIMEOUT, DEFAULT_WATCHDOG_MIN_TIMEOUT);
- conf->min_timeout = atoi(str);
- if (!conf->min_timeout) {
- LOGE("Error - Get minimum timeout");
- goto out;
- }
+ conf->max_timeout = _ms_config_get_int(conf->muse_dict, MUSE_WATCHDOG_MAX_TIMEOUT, DEFAULT_WATCHDOG_MAX_TIMEOUT);
- str = iniparser_getstring(conf->muse_dict, MUSE_MAX_TIMEOUT, NULL);
- if (!str) {
- LOGE("Error - iniparser_getstring (%s)", MUSE_MAX_TIMEOUT);
- goto out;
- }
+ conf->memory_threshold = _ms_config_get_int(conf->muse_dict, MUSE_MEMORY_THRESHOLD, DEFAULT_MEMORY_LEAK_THRESHOLD);
- conf->max_timeout = atoi(str);
- if (!conf->max_timeout) {
- LOGE("Error - Get maximum timeout");
- goto out;
- }
-
- str = iniparser_getstring(conf->muse_dict, MEMORY_THRESHOLD, NULL);
- if (!str) {
- LOGE("Error - iniparser_getstring (%s)", MEMORY_THRESHOLD);
- goto out;
- }
-
- conf->memory_threshold = atoi(str);
- if (conf->memory_threshold <= 0) {
- LOGE("Error - Check the memory threshold [%d]", conf->memory_threshold);
- goto out;
- }
+ for (conf->gst_param_cnt = 0; conf->gst_param_cnt < MUSE_PARAM_MAX; conf->gst_param_cnt++) {
+ memset(gst_param_key, 0, MUSE_MSG_LEN_MAX);
+ snprintf(gst_param_key, strlen(MUSE_GST) + 3, "%s%d", MUSE_GST, conf->gst_param_cnt + 1);
- conf->gst_param_cnt = 0;
- for (; conf->gst_param_cnt < MUSE_PARAM_MAX; conf->gst_param_cnt++) {
- memset(gst_param_value, 0, MUSE_MSG_LEN_MAX);
- snprintf(gst_param_value, strlen(MUSE_GST) + 3, "%s%d", MUSE_GST, conf->gst_param_cnt + 1);
+ conf->gst_param_str[conf->gst_param_cnt] = _ms_config_get_str(conf->muse_dict, gst_param_key, NULL);
- str = iniparser_getstring(conf->muse_dict, gst_param_value, NULL);
- g_strstrip(str);
- if (str == NULL || strlen(str) == 0) {
+ if (!conf->gst_param_str[conf->gst_param_cnt]) {
LOGD("updated gst_param #: %d", conf->gst_param_cnt);
break;
}
-
- conf->gst_param_str[conf->gst_param_cnt] = strdup(str);
- if (!conf->gst_param_str[conf->gst_param_cnt]) {
- LOGE("Error - gst param allocation");
- goto out;
- }
- LOGD("gstparam%d: %s",
- conf->gst_param_cnt + 1, conf->gst_param_str[conf->gst_param_cnt]);
+ LOGD("gstparam%d: %s", conf->gst_param_cnt + 1, conf->gst_param_str[conf->gst_param_cnt]);
}
conf->host_cnt = 0;
host = strtok_r(conf->hosts, INI_PARSER_COMMA, &ptr);
while (host) {
- host_cnt = conf->host_cnt;
+ host_idx = conf->host_cnt;
g_strstrip(host);
- conf->host[host_cnt] = strdup(host);
- LOGD("host: %s", conf->host[host_cnt]);
+ conf->host[host_idx] = strdup(host);
+ LOGD("host: %s", conf->host[host_idx]);
key = (char *) malloc(MUSE_MSG_LEN_MAX);
if (!key) {
LOGE("Error - null key");
goto out;
}
- /* path */
- snprintf(key, MUSE_MSG_LEN_MAX, "%s%s%s", host, INI_PARSER_COLON, PATH);
-
- conf->host_infos[host_cnt] = (host_info_t *) calloc(1, sizeof(host_info_t));
- if (!conf->host_infos[host_cnt]) {
+ conf->host_infos[host_idx] = (host_info_t *) calloc(1, sizeof(host_info_t));
+ if (!conf->host_infos[host_idx]) {
LOGE("Error - null type");
goto out;
}
- conf->host_infos[host_cnt]->path = strdup(iniparser_getstring(conf->muse_dict, key, NULL));
- if (!conf->host_infos[host_cnt]->path) {
+ /* path */
+ snprintf(key, MUSE_MSG_LEN_MAX, "%s%s%s", host, INI_PARSER_COLON, PATH);
+ conf->host_infos[host_idx]->path = _ms_config_get_str(conf->muse_dict, key, NULL);
+ if (!conf->host_infos[host_idx]->path) {
LOGE("Error - null path");
goto out;
}
- LOGD("[%d] %s", host_cnt, conf->host_infos[host_cnt]->path);
+ LOGD("[%d] %s", host_idx, conf->host_infos[host_idx]->path);
/* preloaded */
snprintf(key, MUSE_MSG_LEN_MAX, "%s%s%s", host, INI_PARSER_COLON, PRELOADED);
-
- conf->host_infos[host_cnt]->preloaded = strdup(iniparser_getstring(conf->muse_dict, key, NULL));
- if (!conf->host_infos[host_cnt]->preloaded) {
+ conf->host_infos[host_idx]->preloaded = _ms_config_get_str(conf->muse_dict, key, NULL);
+ if (!conf->host_infos[host_idx]->preloaded) {
LOGE("Error - null preloaded");
goto out;
}
/* timeout */
snprintf(key, MUSE_MSG_LEN_MAX, "%s%s%s", host, INI_PARSER_COLON, TIMEOUT);
-
- str = iniparser_getstring(conf->muse_dict, key, NULL);
- if (!str) {
- LOGE("Error - iniparser_getstring (%s)", key);
- goto out;
- }
-
- conf->host_infos[host_cnt]->timeout = atoi(str);
- if (conf->host_infos[host_cnt]->timeout < conf->min_timeout ||
- conf->host_infos[host_cnt]->timeout > conf->max_timeout) {
- LOGE("Error - set timeout value [%d] ( %d ~ %d s )", conf->host_infos[host_cnt]->timeout, conf->min_timeout, conf->max_timeout);
+ conf->host_infos[host_idx]->timeout = _ms_config_get_int(conf->muse_dict, key, DEFAULT_DISPATCH_WATCHDOG_TIMEOUT);
+ if (conf->host_infos[host_idx]->timeout < conf->min_timeout || conf->host_infos[host_idx]->timeout > conf->max_timeout) {
+ LOGE("Error - set timeout value [%d] ( %d ~ %d s )", conf->host_infos[host_idx]->timeout, conf->min_timeout, conf->max_timeout);
goto out;
}
/* disable_watchdog_api */
- snprintf(key, MUSE_MSG_LEN_MAX, "%s%s%s", host, INI_PARSER_COLON, DIABLE_WATCHDOG_API);
-
- str = iniparser_getstring(conf->muse_dict, key, NULL);
- if (!str) {
- LOGE("Error - iniparser_getstring (%s)", key);
- goto out;
- }
-
- conf->host_infos[host_cnt]->disable_watchdog_api = atoi(str);
+ snprintf(key, MUSE_MSG_LEN_MAX, "%s%s%s", host, INI_PARSER_COLON, DIABLE_WATCHDOG_API_INDEX);
+ conf->host_infos[host_idx]->disable_watchdog_api = _ms_config_get_int(conf->muse_dict, key, DEFAULT_WATCHDOG_DISABLED_API_INDEX);
/* max instance */
snprintf(key, MUSE_MSG_LEN_MAX, "%s%s%s", host, INI_PARSER_COLON, MAX_INSTANCE);
-
- str = iniparser_getstring(conf->muse_dict, key, NULL);
- if (!str) {
- LOGE("Error - iniparser_getstring (%s)", key);
- goto out;
- }
-
- conf->host_infos[host_cnt]->max_instance = atoi(str);
+ conf->host_infos[host_idx]->max_instance = _ms_config_get_int(conf->muse_dict, key, DEFAULT_MAX_INSTANCE);
host = strtok_r(NULL, INI_PARSER_COMMA, &ptr);
conf->host_cnt++;