Skip to content

system/settings: general code cleaning #3110

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 2 commits into from
Jun 26, 2025
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
205 changes: 86 additions & 119 deletions system/settings/settings.c
Original file line number Diff line number Diff line change
Expand Up @@ -249,7 +249,6 @@ static int set_string(FAR setting_t *setting, FAR char *str)
return -EACCES;
}

ASSERT(strlen(str) < CONFIG_SYSTEM_SETTINGS_VALUE_SIZE);
if (strlen(str) >= CONFIG_SYSTEM_SETTINGS_VALUE_SIZE)
{
return -EINVAL;
Expand Down Expand Up @@ -284,28 +283,32 @@ static int set_string(FAR setting_t *setting, FAR char *str)
static int get_int(FAR setting_t *setting, FAR int *i)
{
assert(setting);
if ((setting->type != SETTING_INT) &&
(setting->type != SETTING_BOOL) &&
(setting->type != SETTING_FLOAT))
{
return -EACCES;
}

if (setting->type == SETTING_INT)
{
*i = setting->val.i;
}
else if (setting->type == SETTING_BOOL)
switch (setting->type)
{
*i = !!setting->val.i;
}
else if (setting->type == SETTING_FLOAT)
{
*i = (int)setting->val.f;
}
else
{
return -EINVAL;
case SETTING_INT:
{
*i = setting->val.i;
}
break;

case SETTING_BOOL:
{
*i = !!setting->val.i;
}
break;

case SETTING_FLOAT:
{
*i = (int)setting->val.f;
}
break;

default:
{
return -EACCES;
}
break;
}

return OK;
Expand Down Expand Up @@ -359,19 +362,21 @@ static int set_int(FAR setting_t *setting, int i)
static int get_bool(FAR setting_t *setting, FAR int *i)
{
assert(setting);
if ((setting->type != SETTING_BOOL) &&
(setting->type != SETTING_INT))
{
return -EACCES;
}

if ((setting->type == SETTING_INT) || (setting->type == SETTING_BOOL))
{
*i = !!setting->val.i;
}
else
switch (setting->type)
{
return -EINVAL;
case SETTING_INT:
case SETTING_BOOL:
{
*i = !!setting->val.i;
}
break;

default:
{
return -EACCES;
}
break;
}

return OK;
Expand Down Expand Up @@ -423,23 +428,26 @@ static int set_bool(FAR setting_t *setting, int i)
static int get_float(FAR setting_t *setting, FAR double *f)
{
assert(setting);
if ((setting->type != SETTING_FLOAT) &&
(setting->type != SETTING_INT))
{
return -EACCES;
}

if (setting->type == SETTING_FLOAT)
{
*f = setting->val.f;
}
else if (setting->type == SETTING_INT)
{
*f = (double)setting->val.i;
}
else
switch (setting->type)
{
return -EINVAL;
case SETTING_FLOAT:
{
*f = setting->val.f;
}
break;

case SETTING_INT:
{
*f = (double)setting->val.i;
}
break;

default:
{
return -EACCES;
}
break;
}

return OK;
Expand Down Expand Up @@ -494,24 +502,26 @@ static int get_ip(FAR setting_t *setting, FAR struct in_addr *ip)
{
int ret;
assert(setting);
if ((setting->type != SETTING_IP_ADDR) &&
(setting->type != SETTING_STRING))
{
return -EACCES;
}

if (setting->type == SETTING_IP_ADDR)
{
memcpy(ip, &setting->val.ip, sizeof(struct in_addr));
ret = OK;
}
else if (setting->type == SETTING_STRING)
{
ret = inet_pton(AF_INET, setting->val.s, ip);
}
else
switch (setting->type)
{
ret = -EINVAL;
case SETTING_IP_ADDR:
{
memcpy(ip, &setting->val.ip, sizeof(struct in_addr));
ret = OK;
}
break;

case SETTING_STRING:
{
ret = inet_pton(AF_INET, setting->val.s, ip);
}
break;

default:
{
return -EACCES;
}
}

return ret;
Expand Down Expand Up @@ -673,10 +683,7 @@ static void dump_cache(union sigval ptr)
int i;

ret = pthread_mutex_lock(&g_settings.mtx);
if (ret < 0)
{
assert(0);
}
assert(ret >= 0);

for (i = 0; i < CONFIG_SYSTEM_SETTINGS_MAX_STORAGES; i++)
{
Expand Down Expand Up @@ -809,10 +816,7 @@ int settings_setstorage(FAR char *file, enum storage_type_e type)
int idx = 0;
uint32_t h;

if (!g_settings.initialized)
{
assert(0);
}
assert(g_settings.initialized);

ret = pthread_mutex_lock(&g_settings.mtx);
if (ret < 0)
Expand Down Expand Up @@ -908,10 +912,7 @@ int settings_sync(bool wait_dump)
int ret = OK;
uint32_t h;

if (!g_settings.initialized)
{
assert(0);
}
assert(g_settings.initialized);

ret = pthread_mutex_lock(&g_settings.mtx);
if (ret < 0)
Expand Down Expand Up @@ -971,10 +972,7 @@ int settings_notify(void)
int ret;
int idx = 0;

if (!g_settings.initialized)
{
assert(0);
}
assert(g_settings.initialized);

ret = pthread_mutex_lock(&g_settings.mtx);
if (ret < 0)
Expand Down Expand Up @@ -1026,10 +1024,7 @@ int settings_notify(void)

int settings_hash(FAR uint32_t *h)
{
if (!g_settings.initialized)
{
assert(0);
}
assert(g_settings.initialized);

*h = g_settings.hash;

Expand Down Expand Up @@ -1062,10 +1057,7 @@ int settings_clear(void)
{
int ret;

if (!g_settings.initialized)
{
assert(0);
}
assert(g_settings.initialized);

ret = pthread_mutex_lock(&g_settings.mtx);
if (ret < 0)
Expand Down Expand Up @@ -1114,26 +1106,18 @@ int settings_create(FAR char *key, enum settings_type_e type, ...)
FAR setting_t *setting = NULL;
int j;

if (!g_settings.initialized)
{
assert(0);
}

assert(type != SETTING_EMPTY);
assert(g_settings.initialized);

assert(strlen(key));
if (strlen(key) == 0)
if (type == SETTING_EMPTY)
{
return -EINVAL;
}

assert(strlen(key) < CONFIG_SYSTEM_SETTINGS_KEY_SIZE);
if (strlen(key) >= CONFIG_SYSTEM_SETTINGS_KEY_SIZE)
if (strlen(key) == 0 || strlen(key) >= CONFIG_SYSTEM_SETTINGS_KEY_SIZE)
{
return -EINVAL;
}

assert(isalpha(key[0]) && (sanity_check(key) == OK));
if (!isalpha(key[0]) || (sanity_check(key) < 0))
{
return -EINVAL;
Expand Down Expand Up @@ -1168,7 +1152,6 @@ int settings_create(FAR char *key, enum settings_type_e type, ...)
}
}

assert(setting);
if (setting == NULL)
{
goto errout;
Expand Down Expand Up @@ -1314,11 +1297,7 @@ int settings_type(FAR char *key, FAR enum settings_type_e *stype)
int ret;
FAR setting_t *setting;

if (!g_settings.initialized)
{
assert(0);
}

assert(g_settings.initialized);
assert(stype != NULL);
assert(key != NULL);

Expand Down Expand Up @@ -1362,11 +1341,7 @@ int settings_get(FAR char *key, enum settings_type_e type, ...)
int ret;
FAR setting_t *setting;

if (!g_settings.initialized)
{
assert(0);
}

assert(g_settings.initialized);
assert(type != SETTING_EMPTY);
assert(key[0] != '\0');

Expand Down Expand Up @@ -1461,11 +1436,7 @@ int settings_set(FAR char *key, enum settings_type_e type, ...)
FAR setting_t *setting;
uint32_t h;

if (!g_settings.initialized)
{
assert(0);
}

assert(g_settings.initialized);
assert(type != SETTING_EMPTY);
assert(key[0] != '\0');

Expand Down Expand Up @@ -1568,11 +1539,7 @@ int settings_iterate(int idx, FAR setting_t *setting)
{
int ret;

if (!g_settings.initialized)
{
assert(0);
}

assert(g_settings.initialized);
assert(setting);

if ((idx < 0) || (idx >= CONFIG_SYSTEM_SETTINGS_MAP_SIZE))
Expand Down
Loading