creds-util: Add read_credential_bool()
authorDaan De Meyer <daan.j.demeyer@gmail.com>
Fri, 28 Jul 2023 20:17:20 +0000 (22:17 +0200)
committerDaan De Meyer <daan.j.demeyer@gmail.com>
Tue, 1 Aug 2023 05:53:34 +0000 (07:53 +0200)
src/shared/creds-util.c
src/shared/creds-util.h

index 573900f870427e095f71be2512b9f8f937bbb213..16df01b9ca82808ac46435bf502d54470f3e9d25 100644 (file)
@@ -22,6 +22,7 @@
 #include "memory-util.h"
 #include "mkdir.h"
 #include "openssl-util.h"
+#include "parse-util.h"
 #include "path-util.h"
 #include "random-util.h"
 #include "sparse-endian.h"
@@ -253,6 +254,17 @@ int read_credential_strings_many_internal(
         return ret;
 }
 
+int read_credential_bool(const char *name) {
+        _cleanup_free_ void *data = NULL;
+        int r;
+
+        r = read_credential(name, &data, NULL);
+        if (r < 0)
+                return IN_SET(r, -ENXIO, -ENOENT) ? 0 : r;
+
+        return parse_boolean(data);
+}
+
 int get_credential_user_password(const char *username, char **ret_password, bool *ret_is_hashed) {
         _cleanup_(erase_and_freep) char *creds_password = NULL;
         _cleanup_free_ char *cn = NULL;
index 8fbd61e9fe6b48780e0a1cc145116d27aa8f73fd..5e39a6a022f6dc159e2b50627dbf9ec8b8412229 100644 (file)
@@ -43,6 +43,8 @@ int read_credential_strings_many_internal(const char *first_name, char **first_v
 #define read_credential_strings_many(first_name, first_value, ...) \
         read_credential_strings_many_internal(first_name, first_value, __VA_ARGS__, NULL)
 
+int read_credential_bool(const char *name);
+
 typedef enum CredentialSecretFlags {
         CREDENTIAL_SECRET_GENERATE             = 1 << 0,
         CREDENTIAL_SECRET_WARN_NOT_ENCRYPTED   = 1 << 1,