summaryrefslogtreecommitdiff
path: root/ext4_utils/unencrypted_properties.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'ext4_utils/unencrypted_properties.cpp')
-rw-r--r--ext4_utils/unencrypted_properties.cpp31
1 files changed, 21 insertions, 10 deletions
diff --git a/ext4_utils/unencrypted_properties.cpp b/ext4_utils/unencrypted_properties.cpp
index bef7c57b..5086c64b 100644
--- a/ext4_utils/unencrypted_properties.cpp
+++ b/ext4_utils/unencrypted_properties.cpp
@@ -1,12 +1,12 @@
#include "unencrypted_properties.h"
#include <sys/stat.h>
+#include <dirent.h>
namespace properties {
const char* key = "key";
const char* ref = "ref";
- const char* type = "type";
- const char* password = "password";
+ const char* is_default = "is_default";
}
namespace
@@ -14,9 +14,20 @@ namespace
const char* unencrypted_folder = "unencrypted";
}
+std::string UnencryptedProperties::GetPath(const char* device)
+{
+ return std::string() + device + "/" + unencrypted_folder;
+}
+
UnencryptedProperties::UnencryptedProperties(const char* device)
- : folder_(std::string() + device + "/" + unencrypted_folder)
+ : folder_(GetPath(device))
{
+ DIR* dir = opendir(folder_.c_str());
+ if (dir) {
+ closedir(dir);
+ } else {
+ folder_.clear();
+ }
}
UnencryptedProperties::UnencryptedProperties()
@@ -24,7 +35,7 @@ UnencryptedProperties::UnencryptedProperties()
}
template<> std::string UnencryptedProperties::Get(const char* name,
- std::string default_value)
+ std::string default_value) const
{
if (!OK()) return default_value;
std::ifstream i(folder_ + "/" + name, std::ios::binary);
@@ -56,18 +67,18 @@ template<> bool UnencryptedProperties::Set(const char* name, std::string const&
return !o.fail();
}
-UnencryptedProperties UnencryptedProperties::GetChild(const char* name)
+UnencryptedProperties UnencryptedProperties::GetChild(const char* name) const
{
- UnencryptedProperties e4p;
- if (!OK()) return e4p;
+ UnencryptedProperties up;
+ if (!OK()) return up;
std::string directory(folder_ + "/" + name);
if (mkdir(directory.c_str(), 700) == -1 && errno != EEXIST) {
- return e4p;
+ return up;
}
- e4p.folder_ = directory;
- return e4p;
+ up.folder_ = directory;
+ return up;
}
bool UnencryptedProperties::Remove(const char* name)