diff --git a/Userland/Libraries/LibCore/Account.cpp b/Userland/Libraries/LibCore/Account.cpp index 106773b7021..a16407e475c 100644 --- a/Userland/Libraries/LibCore/Account.cpp +++ b/Userland/Libraries/LibCore/Account.cpp @@ -55,7 +55,7 @@ static Vector get_extra_gids(const passwd& pwd) return extra_gids; } -Result Account::from_passwd(const passwd& pwd, const spwd& spwd) +ErrorOr 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::from_name(const char* username, Read options) +ErrorOr 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(username); @@ -133,15 +132,14 @@ Result Account::from_name(const char* username, Read options) return from_passwd(*pwd, *spwd); } -Result Account::from_uid(uid_t uid, Read options) +ErrorOr 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 ade6fec5c04..d60bf450881 100644 --- a/Userland/Libraries/LibCore/Account.h +++ b/Userland/Libraries/LibCore/Account.h @@ -6,7 +6,6 @@ #pragma once -#include #include #include #include @@ -34,8 +33,8 @@ public: }; static Account self(Read options = Read::All); - static Result from_name(const char* username, Read options = Read::All); - static Result from_uid(uid_t uid, Read options = Read::All); + static ErrorOr from_name(char const* username, Read options = Read::All); + static ErrorOr 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 from_passwd(const passwd&, const spwd&); + static ErrorOr from_passwd(passwd const&, spwd const&); Account(const passwd& pwd, const spwd& spwd, Vector extra_gids);