return op_type_;
}
+uid_t AbstractDBHandler::GetDefaultUser() {
+ static uid_t default_user = tzplatform_getuid(TZ_SYS_DEFAULT_USER);
+
+ return default_user;
+}
+
} // namespace database
} // namespace pkgmgr_server
virtual std::vector<std::pair<sqlite3*, uid_t>> GetConnection();
void ClearDBHandle();
const std::string& GetLocale();
+ static uid_t GetDefaultUser();
static std::shared_timed_mutex lock_;
if (is_writer)
return GetHandleFromDB(conn_list);
- if (CacheFlag::GetStatus() == CacheFlag::Status::PREPARED) {
+ if (uid_ <= GetDefaultUser() &&
+ CacheFlag::GetStatus() == CacheFlag::Status::PREPARED) {
auto cache_lock = CacheFlag::GetReaderLock();
if (cache_lock.try_lock() &&
CacheFlag::GetStatus() == CacheFlag::Status::PREPARED)
if (is_writer)
return GetHandleFromDB(conn_list);
- if (CacheFlag::GetStatus() == CacheFlag::Status::PREPARED) {
+ if (uid_ <= GetDefaultUser() &&
+ CacheFlag::GetStatus() == CacheFlag::Status::PREPARED) {
auto cache_lock = CacheFlag::GetReaderLock();
if (cache_lock.try_lock() &&
CacheFlag::GetStatus() == CacheFlag::Status::PREPARED)
SetCPUInheritance();
auto condition = static_cast<GIOCondition>(G_IO_IN);
sid_ = g_unix_fd_add(server_->GetFd(), condition, OnReceiveRequest, this);
+ default_uid_ = tzplatform_getuid(TZ_SYS_DEFAULT_USER);
pkgmgr_common::SystemLocale::GetInst().RegisterEvent(this);
thread_pool_->SetLocale(pkgmgr_common::SystemLocale::GetInst().Get());
- if (CacheFlag::SetPreparing()) {
- QueueRequest(
- std::make_shared<CreateCacheRequest>(
- tzplatform_getuid(TZ_SYS_DEFAULT_USER)));
- }
+ if (CacheFlag::SetPreparing())
+ QueueRequest(std::make_shared<CreateCacheRequest>(default_uid_));
+
LOGI("Start Runner");
}
if (CacheFlag::SetPreparing()) {
runner->QueueRequest(
- std::make_shared<CreateCacheRequest>(req->GetSenderUID()));
+ std::make_shared<CreateCacheRequest>(runner->default_uid_));
}
runner->QueueRequest(std::move(req));
private:
int sid_;
unsigned int thread_num_;
+ uid_t default_uid_;
std::unique_ptr<pkgmgr_common::socket::ServerSocket> server_;
std::unique_ptr<WorkerThread> thread_pool_;
};