From: Junghyun Yeon Date: Mon, 8 Mar 2021 08:04:48 +0000 (+0900) Subject: Add pid set logic at request handlers X-Git-Tag: submit/tizen/20210317.082331~53^2~8 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=78ccc5a0aafa0ffbe39d32a03140844b305828c4;p=platform%2Fcore%2Fappfw%2Fpkgmgr-info.git Add pid set logic at request handlers Signed-off-by: Junghyun Yeon --- diff --git a/src/common/database/cert_set_db_handler.cc b/src/common/database/cert_set_db_handler.cc index dc021ed..5e18075 100644 --- a/src/common/database/cert_set_db_handler.cc +++ b/src/common/database/cert_set_db_handler.cc @@ -37,7 +37,7 @@ int CertSetDBHandler::Execute() { SetOpType(OPERATION_TYPE_WRITE); SetDBType(DB_TYPE_FILE_CERTDB); - DBHandleProvider::GetInst(uid_).SetMemoryMode(true); + DBHandleProvider::GetInst(uid_).SetMemoryMode(GetPID(), true); sqlite3 *conn = GetConnection().front(); int ret = certinfo_internal_set(conn, handle_->pkgid, handle_, uid_); diff --git a/src/common/database/db_handle_provider.cc b/src/common/database/db_handle_provider.cc index d65e691..9354588 100644 --- a/src/common/database/db_handle_provider.cc +++ b/src/common/database/db_handle_provider.cc @@ -159,7 +159,7 @@ sqlite3* DBHandleProvider::GetMemoryDBHandle(const std::string& filedb_path, return memorydb; } -void DBHandleProvider::SetMemoryMode(bool flag) { +void DBHandleProvider::SetMemoryMode(int pid, bool flag) { std::unique_lock u(lock_); if (is_memory_ == flag) return; @@ -182,6 +182,12 @@ void DBHandleProvider::SetMemoryMode(bool flag) { parser_memory_db_handle_.reset(nullptr); cert_memory_db_handle_.reset(nullptr); global_parser_memory_db_handle_.reset(nullptr); + std::vector::iterator it = + std::find(pid_list_.begin(), pid_list_.end(), pid); + if (it != pid_list_.end()) + pid_list_.erase(it); + else + LOGE("Given pid is not exists in pid list : %d", pid); } LOGD("Set Memory mode : %s", flag ? "Memory" : "File"); diff --git a/src/common/database/db_handle_provider.hh b/src/common/database/db_handle_provider.hh index c1eb90c..5c673c4 100644 --- a/src/common/database/db_handle_provider.hh +++ b/src/common/database/db_handle_provider.hh @@ -40,7 +40,7 @@ class EXPORT_API DBHandleProvider { static DBHandleProvider& GetInst(uid_t uid); std::vector GetParserDBPath(int pid); std::string GetCertDBPath(int pid); - void SetMemoryMode(bool flag); + void SetMemoryMode(int pid, bool flag); private: DBHandleProvider(uid_t uid); diff --git a/src/common/database/pkg_set_db_handler.cc b/src/common/database/pkg_set_db_handler.cc index cda746c..1f95172 100644 --- a/src/common/database/pkg_set_db_handler.cc +++ b/src/common/database/pkg_set_db_handler.cc @@ -51,7 +51,7 @@ int PkgSetDBHandler::Execute() { int ret = 0; - DBHandleProvider::GetInst(uid_).SetMemoryMode(true); + DBHandleProvider::GetInst(uid_).SetMemoryMode(GetPID(), true); std::vector conn_list = GetConnection(); sqlite3* conn = conn_list.front(); if (write_type_ == Insert) { diff --git a/src/common/request_handler/command_request_handler.cc b/src/common/request_handler/command_request_handler.cc index 45d428b..8ba821e 100644 --- a/src/common/request_handler/command_request_handler.cc +++ b/src/common/request_handler/command_request_handler.cc @@ -36,7 +36,7 @@ bool CommandRequestHandler::HandleRequest(unsigned char* data, int size, } if (parcel->GetCmd() == CommandType::RemoveCache) { - pkgmgr_common::DBHandleProvider::GetInst(parcel->GetUid()).SetMemoryMode(false); + pkgmgr_common::DBHandleProvider::GetInst(parcel->GetUid()).SetMemoryMode(GetPID(), false); result_.WriteInt32(0); } diff --git a/src/common/request_handler/get_cert_request_handler.cc b/src/common/request_handler/get_cert_request_handler.cc index 82b704d..0e8cd79 100644 --- a/src/common/request_handler/get_cert_request_handler.cc +++ b/src/common/request_handler/get_cert_request_handler.cc @@ -37,6 +37,7 @@ bool GetCertRequestHandler::HandleRequest(unsigned char* data, int size, } CertGetDBHandler db(parcel->GetUid()); + db.SetPID(GetPID()); db.SetLocale(locale); db.SetPkgID(parcel->GetPkgId()); diff --git a/src/common/request_handler/get_depinfo_request_handler.cc b/src/common/request_handler/get_depinfo_request_handler.cc index 3765672..bb7b628 100644 --- a/src/common/request_handler/get_depinfo_request_handler.cc +++ b/src/common/request_handler/get_depinfo_request_handler.cc @@ -38,6 +38,7 @@ bool GetDepinfoRequestHandler::HandleRequest(unsigned char* data, int size, } DepInfoGetDBHandler db(parcel->GetUid()); + db.SetPID(GetPID()); db.SetPkgID(parcel->GetPkgID()); int ret = db.Execute(); diff --git a/src/common/request_handler/get_pkginfo_request_handler.cc b/src/common/request_handler/get_pkginfo_request_handler.cc index f2b8da3..46e6350 100644 --- a/src/common/request_handler/get_pkginfo_request_handler.cc +++ b/src/common/request_handler/get_pkginfo_request_handler.cc @@ -38,6 +38,7 @@ bool GetPkginfoRequestHandler::HandleRequest(unsigned char* data, int size, } PkgGetDBHandler db(parcel->GetUid()); + db.SetPID(GetPID()); db.SetLocale(locale); db.SetFilter(const_cast(parcel->GetFilter())); int ret = db.Execute(); diff --git a/src/common/request_handler/query_request_handler.cc b/src/common/request_handler/query_request_handler.cc index 7949a71..ace0c19 100644 --- a/src/common/request_handler/query_request_handler.cc +++ b/src/common/request_handler/query_request_handler.cc @@ -38,6 +38,7 @@ bool QueryRequestHandler::HandleRequest(unsigned char* data, int size, } QueryHandler db(parcel->GetUid()); + db.SetPID(GetPID()); db.SetLocale(locale); db.SetQuery(parcel->GetQueries()); db.SetDBType(parcel->GetDBType()); diff --git a/src/common/request_handler/set_cert_request_handler.cc b/src/common/request_handler/set_cert_request_handler.cc index b28c063..99bd010 100644 --- a/src/common/request_handler/set_cert_request_handler.cc +++ b/src/common/request_handler/set_cert_request_handler.cc @@ -32,6 +32,7 @@ bool SetCertRequestHandler::HandleRequest(unsigned char* data, int size, } CertSetDBHandler db(parcel->GetUid()); + db.SetPID(GetPID()); db.SetLocale(locale); db.SetCertHandle(const_cast(parcel->GetCertInfo())); diff --git a/src/common/request_handler/set_pkginfo_request_handler.cc b/src/common/request_handler/set_pkginfo_request_handler.cc index 5823f72..49e52af 100644 --- a/src/common/request_handler/set_pkginfo_request_handler.cc +++ b/src/common/request_handler/set_pkginfo_request_handler.cc @@ -39,6 +39,7 @@ bool SetPkginfoRequestHandler::HandleRequest(unsigned char* data, int size, } PkgSetDBHandler db(parcel->GetUid()); + db.SetPID(GetPID()); db.SetLocale(locale); db.SetWriteType(parcel->GetWriteType());