From: Daan De Meyer Date: Fri, 28 Jul 2023 20:17:20 +0000 (+0200) Subject: creds-util: Add read_credential_bool() X-Git-Tag: v255-rc1~859^2~2 X-Git-Url: http://git-history.diyao.me/?a=commitdiff_plain;h=77c6add1820a7fb0eec59195abac4450572629fd;p=systemd%2F.git creds-util: Add read_credential_bool() --- diff --git a/src/shared/creds-util.c b/src/shared/creds-util.c index 573900f870..16df01b9ca 100644 --- a/src/shared/creds-util.c +++ b/src/shared/creds-util.c @@ -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; diff --git a/src/shared/creds-util.h b/src/shared/creds-util.h index 8fbd61e9fe..5e39a6a022 100644 --- a/src/shared/creds-util.h +++ b/src/shared/creds-util.h @@ -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,