1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-07-27 23:57:44 +00:00

LaunchServer+SystemServer: Move the portal to a user-specific directory

Various changes are needed to support this:
 - The directory is created by Core::Account on login (and located in
   /tmp).
 - Service's sockets are now deleted on exit (to allow re-creation)
 - SystemServer needs to handle SIGTERM to correctly destroy services.
This commit is contained in:
Lucas CHOLLET 2022-07-17 15:41:01 +02:00 committed by Linus Groh
parent cc0d53d6a6
commit 70846d701c
21 changed files with 47 additions and 26 deletions

View file

@ -10,6 +10,7 @@
#include <AK/Random.h>
#include <AK/ScopeGuard.h>
#include <LibCore/Account.h>
#include <LibCore/Directory.h>
#include <LibCore/System.h>
#include <LibCore/UmaskScope.h>
#include <errno.h>
@ -150,6 +151,10 @@ bool Account::login() const
if (setuid(m_uid) < 0)
return false;
auto const temporary_directory = String::formatted("/tmp/{}", m_uid);
if (auto result = Core::Directory::create(temporary_directory, Core::Directory::CreateDirectories::No); result.is_error())
dbgln("{}", result.release_error());
return true;
}