diff options
author | Andreas Kling <kling@serenityos.org> | 2021-11-07 11:41:48 +0100 |
---|---|---|
committer | Andreas Kling <kling@serenityos.org> | 2021-11-08 00:35:27 +0100 |
commit | 4eeab4cfc8e9bc5de9704a1504f4065a4fbaa1c2 (patch) | |
tree | 88d99d2444324591e87b8696a8af383275941210 /Userland | |
parent | 01a6a4f7c4f6a44f3b96eaff2b922d7376885333 (diff) | |
download | serenity-4eeab4cfc8e9bc5de9704a1504f4065a4fbaa1c2.zip |
LibCore: Replace Result<T, E> use with ErrorOr<T> in Core::Account
Diffstat (limited to 'Userland')
-rw-r--r-- | Userland/Libraries/LibCore/Account.cpp | 16 | ||||
-rw-r--r-- | Userland/Libraries/LibCore/Account.h | 7 |
2 files changed, 10 insertions, 13 deletions
diff --git a/Userland/Libraries/LibCore/Account.cpp b/Userland/Libraries/LibCore/Account.cpp index 106773b702..a16407e475 100644 --- a/Userland/Libraries/LibCore/Account.cpp +++ b/Userland/Libraries/LibCore/Account.cpp @@ -55,7 +55,7 @@ static Vector<gid_t> get_extra_gids(const passwd& pwd) return extra_gids; } -Result<Account, String> Account::from_passwd(const passwd& pwd, const spwd& spwd) +ErrorOr<Account> Account::from_passwd(const passwd& pwd, const spwd& spwd) { Account account(pwd, spwd, get_extra_gids(pwd)); endpwent(); @@ -107,15 +107,14 @@ Account Account::self(Read options) return Account(*pwd, *spwd, extra_gids); } -Result<Account, String> Account::from_name(const char* username, Read options) +ErrorOr<Account> Account::from_name(const char* username, Read options) { errno = 0; auto* pwd = getpwnam(username); if (!pwd) { if (errno == 0) - return String("No such user"); - - return String(strerror(errno)); + return Error::from_string_literal("No such user"sv); + return Error::from_errno(errno); } spwd spwd_dummy = {}; spwd_dummy.sp_namp = const_cast<char*>(username); @@ -133,15 +132,14 @@ Result<Account, String> Account::from_name(const char* username, Read options) return from_passwd(*pwd, *spwd); } -Result<Account, String> Account::from_uid(uid_t uid, Read options) +ErrorOr<Account> Account::from_uid(uid_t uid, Read options) { errno = 0; auto* pwd = getpwuid(uid); if (!pwd) { if (errno == 0) - return String("No such user"); - - return String(strerror(errno)); + return Error::from_string_literal("No such user"sv); + return Error::from_errno(errno); } spwd spwd_dummy = {}; spwd_dummy.sp_namp = pwd->pw_name; diff --git a/Userland/Libraries/LibCore/Account.h b/Userland/Libraries/LibCore/Account.h index ade6fec5c0..d60bf45088 100644 --- a/Userland/Libraries/LibCore/Account.h +++ b/Userland/Libraries/LibCore/Account.h @@ -6,7 +6,6 @@ #pragma once -#include <AK/Result.h> #include <AK/String.h> #include <AK/Types.h> #include <AK/Vector.h> @@ -34,8 +33,8 @@ public: }; static Account self(Read options = Read::All); - static Result<Account, String> from_name(const char* username, Read options = Read::All); - static Result<Account, String> from_uid(uid_t uid, Read options = Read::All); + static ErrorOr<Account> from_name(char const* username, Read options = Read::All); + static ErrorOr<Account> from_uid(uid_t uid, Read options = Read::All); bool authenticate(SecretString const& password) const; bool login() const; @@ -68,7 +67,7 @@ public: bool sync(); private: - static Result<Account, String> from_passwd(const passwd&, const spwd&); + static ErrorOr<Account> from_passwd(passwd const&, spwd const&); Account(const passwd& pwd, const spwd& spwd, Vector<gid_t> extra_gids); |