return true;
}
-bool SendUninstallRequest(const std::string& pkgid, uid_t uid) {
+int SendUninstallRequest(const std::string& pkgid, uid_t uid) {
pkgmgr_client *pc = pkgmgr_client_new(PC_REQUEST);
int ret = pkgmgr_client_res_usr_uninstall(pc, pkgid.c_str(), uid);
pkgmgr_client_free(pc);
- return (ret == PKGMGR_R_OK) ? true : false;
+ return ret;
}
} // namespace
common_installer::UserList user_list = common_installer::GetUserList();
for (auto l : user_list) {
uid_t uid = std::get<0>(l);
- if (!SendUninstallRequest(context_->pkgid.get(), uid)) {
- LOG(ERROR) << "Failed to remove privileged shared resources";
- return Status::ERROR;
+ int ret = SendUninstallRequest(context_->pkgid.get(), uid);
+ if (ret == PKGMGR_R_OK) {
+ return Status::OK;
+ } else if (ret == PKGMGR_R_ECOMM) {
+ return OfflineRemove();
+ } else {
+ LOG(ERROR) << "Failed to remove privileged shared resources";
+ return Status::ERROR;
}
}
} else {