/* * 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; }
/* * 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; }