diff options
author | Zofia Abramowska <z.abramowska@samsung.com> | 2016-09-07 13:18:40 +0200 |
---|---|---|
committer | Zofia Abramowska <z.abramowska@samsung.com> | 2016-09-21 12:55:19 +0200 |
commit | 60bba3ef8e016d10c5bee4c90a47f481c6e25acc (patch) | |
tree | 2fa251f5cfd63be9a4b1a4ace3bf9c56a947f7ea | |
parent | 22166d42563a83b33cbae44efee2c4d48a2013e9 (diff) | |
download | security-manager-60bba3ef8e016d10c5bee4c90a47f481c6e25acc.tar.gz security-manager-60bba3ef8e016d10c5bee4c90a47f481c6e25acc.tar.bz2 security-manager-60bba3ef8e016d10c5bee4c90a47f481c6e25acc.zip |
Fetch is_hybrid flag from db
Change-Id: Ie77b94b551bedb4eff569379f0c0726578147d7f
-rw-r--r-- | src/common/include/privilege_db.h | 10 | ||||
-rw-r--r-- | src/common/privilege_db.cpp | 16 |
2 files changed, 26 insertions, 0 deletions
diff --git a/src/common/include/privilege_db.h b/src/common/include/privilege_db.h index 8e7f8018..9d1a6db5 100644 --- a/src/common/include/privilege_db.h +++ b/src/common/include/privilege_db.h @@ -75,6 +75,7 @@ enum class StmtType { EGetSharedROPackages, ESetPackageSharedRO, EIsPackageSharedRO, + EIsPackageHybrid, }; class PrivilegeDb { @@ -133,6 +134,7 @@ private: { StmtType::EGetSharedROPackages, "SELECT DISTINCT name FROM pkg WHERE shared_ro = 1;"}, { StmtType::ESetPackageSharedRO, "UPDATE pkg SET shared_ro=1 WHERE name=?"}, { StmtType::EIsPackageSharedRO, "SELECT shared_ro FROM pkg WHERE name=?"}, + { StmtType::EIsPackageHybrid, "SELECT is_hybrid FROM pkg WHERE name=?"}, }; /** @@ -499,6 +501,14 @@ public: * @exception DB::SqlConnection::Exception::ConstraintError on constraint violation */ bool IsPackageSharedRO(const std::string& pkgName); + + /** + * Check whether package has is_hybrid field set to 1 in db + * + * @exception DB::SqlConnection::Exception::InternalError on internal error + * @exception DB::SqlConnection::Exception::ConstraintError on constraint violation + */ + bool IsPackageHybrid(const std::string& pkgName); }; } //namespace SecurityManager diff --git a/src/common/privilege_db.cpp b/src/common/privilege_db.cpp index 75763459..a11b3e3f 100644 --- a/src/common/privilege_db.cpp +++ b/src/common/privilege_db.cpp @@ -554,4 +554,20 @@ bool PrivilegeDb::IsPackageSharedRO(const std::string &pkgName) }); } +bool PrivilegeDb::IsPackageHybrid(const std::string& pkgName) +{ + return try_catch<bool>([&]() -> bool { + auto command = getStatement(StmtType::EIsPackageHybrid); + command->BindString(1, pkgName); + int isHybrid = 0; + + if (command->Step()) + isHybrid = command->GetColumnInteger(0); + + LogDebug("Package " << pkgName << "has shared_ro set to " << isHybrid); + + return (isHybrid > 0); + }); +} + } //namespace SecurityManager |