diff --git a/External/FEXCore/Source/Interface/Config/Config.json.in b/External/FEXCore/Source/Interface/Config/Config.json.in index a4b3a9962..3f3af3b5a 100644 --- a/External/FEXCore/Source/Interface/Config/Config.json.in +++ b/External/FEXCore/Source/Interface/Config/Config.json.in @@ -351,6 +351,13 @@ "Desc": [ "Loads an AOT IR cache for the loaded executable." ] + }, + "ServerSocketPath": { + "Type": "str", + "Default": "", + "Desc": [ + "Override for a FEXServer socket path. Only useful for chroots." + ] } } }, diff --git a/Source/Common/FEXServerClient.cpp b/Source/Common/FEXServerClient.cpp index b61c8a85b..0d8667a2c 100644 --- a/Source/Common/FEXServerClient.cpp +++ b/Source/Common/FEXServerClient.cpp @@ -101,7 +101,12 @@ namespace FEXServerClient { } std::string GetServerSocketFile() { - return fmt::format("{}/{}.FEXServer.socket", std::filesystem::temp_directory_path().string(), ::geteuid()); + FEX_CONFIG_OPT(ServerSocketPath, SERVERSOCKETPATH); + if (ServerSocketPath().empty()) { + return fmt::format("{}/{}.FEXServer.socket", std::filesystem::temp_directory_path().string(), ::geteuid()); + } + + return ServerSocketPath; } int GetServerFD() {