return false;
}
+ pid_t tid = gettid();
+ if (socket_->SendData(&tid, sizeof(tid)) != 0) {
+ LOG(ERROR) << "fail to send data";
+ return false;
+ }
+
if (socket_->SendData(&len, sizeof(len)) != 0) {
LOG(ERROR) << "fail to send data";
return false;
return getpid();
}
+pid_t CreateCacheRequest::GetSenderTID() {
+ return gettid();
+}
+
uid_t CreateCacheRequest::GetSenderUID() {
return uid_;
}
const unsigned char* GetData() override;
int GetSize() override;
pid_t GetSenderPID() override;
+ pid_t GetSenderTID() override;
uid_t GetSenderUID() override;
pkgmgr_common::ReqType GetRequestType() override;
bool SendData(tizen_base::Parcel parcel) override;
PkgRequest::PkgRequest()
: request_type_(pkgmgr_common::REQ_TYPE_NONE), data_size_(-1),
- privilege_checked_(false) {}
+ privilege_checked_(false), sender_tid_(0) {}
PkgRequest::PkgRequest(int fd)
: request_type_(pkgmgr_common::REQ_TYPE_NONE), data_size_(-1),
- privilege_checked_(false) {
+ privilege_checked_(false), sender_tid_(0) {
socket_ = std::unique_ptr<pkgmgr_common::socket::DataSocket>(
new (std::nothrow) pkgmgr_common::socket::DataSocket(fd));
if (socket_ == nullptr)
return socket_->GetPID();
}
+pid_t PkgRequest::GetSenderTID() {
+ return sender_tid_;
+}
+
uid_t PkgRequest::GetSenderUID() {
return socket_->GetUID();
}
LOG(ERROR) << "Failed to ReceiveData";
return false;
}
+ ret = socket_->ReceiveData(&sender_tid_, sizeof(sender_tid_));
+ if (ret < 0) {
+ LOG(ERROR) << "Failed to ReceiveData";
+ request_type_ = pkgmgr_common::REQ_TYPE_NONE;
+ return false;
+ }
ret = socket_->ReceiveData(&data_size_, sizeof(data_size_));
if (ret < 0) {
LOG(ERROR) << "Failed to ReceiveData";
virtual const unsigned char* GetData();
virtual int GetSize();
virtual pid_t GetSenderPID();
+ virtual pid_t GetSenderTID();
virtual uid_t GetSenderUID();
virtual pkgmgr_common::ReqType GetRequestType();
virtual bool SendData(tizen_base::Parcel parcel);
pkgmgr_common::ReqType request_type_;
int data_size_;
bool privilege_checked_;
+ pid_t sender_tid_;
};
} // namespace pkgmgr_server
auto type = req->GetRequestType();
LOG(WARNING) << "Request type: " << pkgmgr_common::ReqTypeToString(type)
- << " pid: " << req->GetSenderPID();
+ << " pid: " << req->GetSenderPID() << " tid: " << req->GetSenderTID();
auto handler = factory.GetRequestHandler(type);
if (handler == nullptr)
continue;
if (req->SendData(handler->ExtractResult()) == false)
LOG(ERROR) << "Failed to send response pid: " << req->GetSenderPID();
else
- LOG(WARNING) << "Success response pid: " << req->GetSenderPID();
+ LOG(WARNING) << "Success response pid: " << req->GetSenderPID()
+ << " tid: " << req->GetSenderTID();
} catch (const std::exception& err) {
LOG(ERROR) << "Exception occurred: " << err.what()
<< ", pid: " << req->GetSenderPID();