}
std::string service(dataStr[0]);
- if (service.compare(0, 5, "user@") == 0) {
- userSessionServices.push_back(service);
- }
+ if (service.compare(0, 5, "user@") == 0) {
+ userSessionServices.push_back(service);
}
+ }
- for (const std::string& service : userSessionServices) {
- INFO("Stop service - " + service);
- systemDBus.methodcall("org.freedesktop.systemd1",
- "/org/freedesktop/systemd1",
- "org.freedesktop.systemd1.Manager",
- "StopUnit",
- -1, "", "(ss)", service.c_str(), "flush");
- }
+ for (const std::string& service : userSessionServices) {
+ INFO("Stop service - " + service);
+ systemDBus.methodcall("org.freedesktop.systemd1",
+ "/org/freedesktop/systemd1",
+ "org.freedesktop.systemd1.Manager",
+ "StopUnit",
+ -1, "", "(ss)", service.c_str(), "flush");
+ }
+
+ sleep(1);
}
void stopDependedSystemdServices()
std::string defaultUserHome(::tzplatform_getenv(TZ_USER_HOME));
::tzplatform_reset_user();
- runtime::File shareDirectory("/opt/home/root/share");
- if (!shareDirectory.exists()) {
- shareDirectory.makeDirectory(true);
- }
+ try {
+ runtime::File shareDirectory("/opt/home/root/share");
+ if (!shareDirectory.exists()) {
+ shareDirectory.makeDirectory(true);
+ }
- runtime::File elmConfigDir(shareDirectory.getPath() + "/.elementary");
- if (!elmConfigDir.exists()) {
- runtime::File defaultElmConfigDir(defaultUserHome + "/share/.elementary");
- defaultElmConfigDir.copyTo(shareDirectory.getPath());
+ runtime::File elmConfigDir(shareDirectory.getPath() + "/.elementary");
+ if (!elmConfigDir.exists()) {
+ runtime::File defaultElmConfigDir(defaultUserHome + "/share/.elementary");
+ defaultElmConfigDir.copyTo(shareDirectory.getPath());
+ }
+ } catch (runtime::Exception &e) {
+ ERROR("Failed to set up elm configuration");
}
std::vector<std::string> args = {
KeyManager::data MasterKey = keyManager.getMasterKey(pwData);
auto encryptWorker = [MasterKey, options, this]() {
try {
- showProgressUI("Encrypting");
-
INFO("Close all user sessions...");
stopSystemdUserSessions();
INFO("Close all processes using internal storage...");
stopDependedSystemdServices();
}
+ showProgressUI("Encrypting");
+
INFO("Encryption started...");
engine->encrypt(MasterKey, options);
setOptions(options & getSupportedOptions());
KeyManager::data MasterKey = keyManager.getMasterKey(pwData);
auto decryptWorker = [MasterKey, this]() {
try {
- showProgressUI("Decrypting");
-
+ INFO("Close all user sessions...");
+ stopSystemdUserSessions();
INFO("Close all processes using internal storage...");
stopDependedSystemdServices();
INFO("Umount internal storage...");
}
}
+ showProgressUI("Decrypting");
+
INFO("Decryption started...");
engine->decrypt(MasterKey, getOptions());
INFO("Sync disk...");