From ca23644397025f041370a14e50928f186c2ff721 Mon Sep 17 00:00:00 2001 From: Andreas Kling Date: Tue, 23 Nov 2021 16:07:18 +0100 Subject: [PATCH] logout: Port to LibMain :^) --- Userland/Utilities/CMakeLists.txt | 1 + Userland/Utilities/logout.cpp | 29 ++++++++--------------------- 2 files changed, 9 insertions(+), 21 deletions(-) diff --git a/Userland/Utilities/CMakeLists.txt b/Userland/Utilities/CMakeLists.txt index 0801d34b838..83df36fe915 100644 --- a/Userland/Utilities/CMakeLists.txt +++ b/Userland/Utilities/CMakeLists.txt @@ -76,6 +76,7 @@ target_link_libraries(gzip LibCompress) target_link_libraries(id LibMain) target_link_libraries(js LibJS LibLine LibMain) target_link_libraries(keymap LibKeyboard LibMain) +target_link_libraries(logout LibMain) target_link_libraries(lspci LibPCIDB) target_link_libraries(lsusb LibUSBDB LibMain) target_link_libraries(man LibMarkdown) diff --git a/Userland/Utilities/logout.cpp b/Userland/Utilities/logout.cpp index 0aedb639530..b9597c32eee 100644 --- a/Userland/Utilities/logout.cpp +++ b/Userland/Utilities/logout.cpp @@ -5,6 +5,8 @@ */ #include +#include +#include #include static Core::ProcessStatistics const& get_proc(Core::AllProcessesStatistics const& stats, pid_t pid) @@ -16,24 +18,12 @@ static Core::ProcessStatistics const& get_proc(Core::AllProcessesStatistics cons VERIFY_NOT_REACHED(); } -int main(int, char**) +ErrorOr serenity_main(Main::Arguments) { - if (pledge("stdio proc rpath", nullptr) < 0) { - perror("pledge"); - return 1; - } - - if (unveil("/proc/all", "r") < 0) { - perror("unveil"); - return 1; - } - - if (unveil("/etc/passwd", "r") < 0) { - perror("unveil"); - return 1; - } - - unveil(nullptr, nullptr); + TRY(Core::System::pledge("stdio proc rpath", nullptr)); + TRY(Core::System::unveil("/proc/all", "r")); + TRY(Core::System::unveil("/etc/passwd", "r")); + TRY(Core::System::unveil(nullptr, nullptr)); // logout finds the highest session up all nested sessions, and kills it. auto stats = Core::ProcessStatisticsReader::get_all(); @@ -53,10 +43,7 @@ int main(int, char**) sid = parent_sid; } - if (kill(-sid, SIGTERM) == -1) { - perror("kill(2)"); - return 1; - } + TRY(Core::System::kill(-sid, SIGTERM)); return 0; }