diff options
Diffstat (limited to 'ext4_utils/unencrypted_properties.cpp')
-rw-r--r-- | ext4_utils/unencrypted_properties.cpp | 31 |
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) |