コード例 #1
0
ファイル: rpmemd_config.c プロジェクト: JLLLinn/nvml
/*
 * set_option -- (internal) set single config option
 */
static int
set_option(enum rpmemd_option option, const char *value,
	struct rpmemd_config *config)
{
	errno = 0;

	switch (option) {
	case RPD_OPT_LOG_FILE:
		free(config->log_file);
		config->log_file = parse_config_string(value);
		config->use_syslog = false;
		break;
	case RPD_OPT_POOLSET_DIR:
		free(config->poolset_dir);
		config->poolset_dir = parse_config_string(value);
		break;
	case RPD_OPT_PERSIST_APM:
		parse_config_bool(&config->persist_apm, value);
		break;
	case RPD_OPT_PERSIST_GENERAL:
		parse_config_bool(&config->persist_general, value);
		break;
	case RPD_OPT_USE_SYSLOG:
		parse_config_bool(&config->use_syslog, value);
		break;
	case RPD_OPT_LOG_LEVEL:
		config->log_level = rpmemd_log_level_from_str(value);
		if (config->log_level == MAX_RPD_LOG)
			errno = EINVAL;
		break;
	default:
		errno = EINVAL;
	}

	if (errno != 0)
		return 1;
	else
		return 0;
}
コード例 #2
0
ファイル: rpmemd_config.c プロジェクト: AmesianX/nvml
/*
 * set_option -- set single config option
 */
static int
set_option(uint64_t key, const char *value, struct rpmemd_config *config)
{
	switch (key) {
	case RPD_OPT_PID_FILE:
		free(config->pid_file);
		config->pid_file = parse_config_string(value);
		break;
	case RPD_OPT_LOG_FILE:
		free(config->log_file);
		config->log_file = parse_config_string(value);
		break;
	case RPD_OPT_POOLSET_DIR:
		free(config->poolset_dir);
		config->poolset_dir = parse_config_string(value);
		break;
	case RPD_OPT_ENABLE_CREATE:
		parse_config_bool(&config->enable_create, value);
		break;
	case RPD_OPT_ENABLE_REMOVE:
		parse_config_bool(&config->enable_remove, value);
		break;
	case RPD_OPT_PERSIST_APM:
		parse_config_bool(&config->persist_apm, value);
		break;
	case RPD_OPT_PERSIST_GENERAL:
		parse_config_bool(&config->persist_general, value);
		break;
	case RPD_OPT_PROVIDER_SOCKETS:
		parse_config_bool(&config->provider_sockets, value);
		break;
	case RPD_OPT_PROVIDER_VERBS:
		parse_config_bool(&config->provider_verbs, value);
		break;
	case RPD_OPT_USE_SYSLOG:
		parse_config_bool(&config->use_syslog, value);
		break;
	case RPD_OPT_VERIFY_POOL_SETS:
		parse_config_bool(&config->verify_pool_sets, value);

		if (errno == 0)
			config->verify_pool_sets_auto = false;
		else if (strcmp("auto", value) == 0) {
			config->verify_pool_sets_auto = true;
			errno = 0;
		}
		break;
	case RPD_OPT_PORT:
		config->port = (uint16_t)parse_config_integer(value,
			UINT16_MAX);
		break;
	case RPD_OPT_MAX_LANES:
		config->max_lanes =
			(uint32_t)parse_config_integer(value, UINT32_MAX);
		break;
	case RPD_OPT_LOG_LEVEL:
		config->log_level = rpmemd_log_level_from_str(value);
		if (config->log_level == MAX_RPD_LOG)
			errno = EINVAL;
		break;
	default:
		errno = EINVAL;
	}

	if (errno != 0)
		return 1;
	else
		return 0;
}