*/
#include "pkg_request.hh"
+
+#include "utils/logging.hh"
+
#include "pkgmgrinfo_debug.h"
namespace pkgmgr_server {
+PkgRequest::PkgRequest()
+ : request_type_(pkgmgr_common::REQ_TYPE_NONE), data_size_(-1),
+ privilege_checked_(false) {}
+
PkgRequest::PkgRequest(int fd)
- : fd_(fd), request_type_(pkgmgr_common::REQ_TYPE_NONE), data_size_(-1) {
+ : request_type_(pkgmgr_common::REQ_TYPE_NONE), data_size_(-1),
+ privilege_checked_(false) {
socket_ = std::unique_ptr<pkgmgr_common::socket::DataSocket>(
- new (std::nothrow) pkgmgr_common::socket::DataSocket(fd_));
- if (socket_ == nullptr) LOGE("Out of memory");
+ new (std::nothrow) pkgmgr_common::socket::DataSocket(fd));
+ if (socket_ == nullptr)
+ LOG(ERROR) << "Out of memory";
}
PkgRequest::~PkgRequest() {
- if (data_ != nullptr) delete[] data_;
+ if (data_ != nullptr)
+ delete[] data_;
}
-unsigned char* PkgRequest::GetData() { return data_; }
+const unsigned char* PkgRequest::GetData() {
+ return data_;
+}
+
+int PkgRequest::GetSize() {
+ return data_size_;
+}
-int PkgRequest::GetSize() { return data_size_; }
+int PkgRequest::GetFd() {
+ return socket_->GetFd();
+}
pid_t PkgRequest::GetSenderPID() {
return socket_->GetPID();
}
-pkgmgr_common::ReqType PkgRequest::GetRequestType() { return request_type_; }
+uid_t PkgRequest::GetSenderUID() {
+ return socket_->GetUID();
+}
+
+pkgmgr_common::ReqType PkgRequest::GetRequestType() {
+ return request_type_;
+}
bool PkgRequest::ReceiveData() {
int ret = socket_->ReceiveData(&request_type_, sizeof(request_type_));
if (ret < 0 || request_type_ == pkgmgr_common::REQ_TYPE_NONE) {
- LOGE("Failed to ReceiveData");
+ LOG(ERROR) << "Failed to ReceiveData";
return false;
}
ret = socket_->ReceiveData(&data_size_, sizeof(data_size_));
if (ret < 0) {
- LOGE("Failed to ReceiveData");
+ LOG(ERROR) << "Failed to ReceiveData";
request_type_ = pkgmgr_common::REQ_TYPE_NONE;
return false;
}
- if (data_size_ < 0) {
- LOGE("Invalid data");
+ if (data_size_ <= 0) {
+ LOG(ERROR) << "Invalid data";
request_type_ = pkgmgr_common::REQ_TYPE_NONE;
return false;
}
data_ = new (std::nothrow) unsigned char[data_size_];
if (data_ == nullptr) {
- LOGE("Out of memory");
+ LOG(ERROR) << "Out of memory";
request_type_ = pkgmgr_common::REQ_TYPE_NONE;
return false;
}
- ret = socket_->ReceiveData((void*)data_, data_size_);
+ ret = socket_->ReceiveData(reinterpret_cast<void*>(data_), data_size_);
if (ret < 0) {
- LOGE("Failed to ReceiveData");
+ LOG(ERROR) << "Failed to ReceiveData";
delete[] data_;
data_ = nullptr;
request_type_ = pkgmgr_common::REQ_TYPE_NONE;
if (socket_->SendData(&size, sizeof(size)) < 0)
return false;
- return (socket_->SendData(data, size) < 0);
+ return (socket_->SendData(data, size) == 0);
+}
+
+bool PkgRequest::GetPrivilegeChecked() {
+ return privilege_checked_;
+}
+
+void PkgRequest::SetPrivilegeChecked(bool checked) {
+ privilege_checked_ = checked;
}
} // namespace pkgmgr_server