summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorThomas Haller <thaller@redhat.com>2023-03-14 09:15:27 +0100
committerThomas Haller <thaller@redhat.com>2023-03-15 17:06:10 +0100
commit209d48513ca01ec6030d357d654e86130802bf9b (patch)
tree3863fd9394f3b5c16ede98dbf3cf013572abe118
parentb4856e825c3de3f684638c598059e3a3601a549f (diff)
ifcfg-rh: set errno from svParseBoolean()/svGetValueBoolean()/svGetValueTernary()
-rw-r--r--src/core/settings/plugins/ifcfg-rh/shvar.c21
1 files changed, 16 insertions, 5 deletions
diff --git a/src/core/settings/plugins/ifcfg-rh/shvar.c b/src/core/settings/plugins/ifcfg-rh/shvar.c
index 7230d98674..1ca2ea606f 100644
--- a/src/core/settings/plugins/ifcfg-rh/shvar.c
+++ b/src/core/settings/plugins/ifcfg-rh/shvar.c
@@ -97,23 +97,32 @@ static void _line_link_parse(shvarFile *s, const char *value, gsize len);
* in case no valid value is found, the fallback value. Valid values
* are: "yes", "true", "t", "y", "1" and "no", "false", "f", "n", "0".
*
+ * Always sets errno. Either to zero on success, to ENOKEY for NULL
+ * or to EINVAL otherwise.
+ *
* Returns: the parsed boolean value or @fallback.
*/
int
svParseBoolean(const char *value, int fallback)
{
- if (!value)
+ if (!value) {
+ errno = ENOKEY;
return fallback;
+ }
if (!g_ascii_strcasecmp("yes", value) || !g_ascii_strcasecmp("true", value)
|| !g_ascii_strcasecmp("t", value) || !g_ascii_strcasecmp("y", value)
- || !g_ascii_strcasecmp("1", value))
+ || !g_ascii_strcasecmp("1", value)) {
+ errno = 0;
return TRUE;
- else if (!g_ascii_strcasecmp("no", value) || !g_ascii_strcasecmp("false", value)
- || !g_ascii_strcasecmp("f", value) || !g_ascii_strcasecmp("n", value)
- || !g_ascii_strcasecmp("0", value))
+ } else if (!g_ascii_strcasecmp("no", value) || !g_ascii_strcasecmp("false", value)
+ || !g_ascii_strcasecmp("f", value) || !g_ascii_strcasecmp("n", value)
+ || !g_ascii_strcasecmp("0", value)) {
+ errno = 0;
return FALSE;
+ }
+ errno = EINVAL;
return fallback;
}
@@ -1253,6 +1262,7 @@ svGetValueStr_cp(shvarFile *s, const char *key)
* @fallback: the fallback value in any error case
*
* Reads a value @key and converts it to a boolean using svParseBoolean().
+ * This always sets errno, see svParseBoolean().
*
* Returns: the parsed boolean value or @fallback.
*/
@@ -1271,6 +1281,7 @@ svGetValueBoolean(shvarFile *s, const char *key, int fallback)
* @key: the name of the key to read
*
* Reads a value @key and converts it to a NMTernary value.
+ * This always sets errno, see svParseBoolean().
*
* Returns: the parsed NMTernary
*/