Fix codes for setting certificate
authorJunghyun Yeon <jungh.yeon@samsung.com>
Mon, 8 Mar 2021 11:11:10 +0000 (20:11 +0900)
committer연정현/Tizen Platform Lab(SR)/Staff Engineer/삼성전자 <jungh.yeon@samsung.com>
Tue, 9 Mar 2021 01:20:38 +0000 (10:20 +0900)
- Set PkgID into certificate handle.
- Set ResultParcelable at setting certificate.

Signed-off-by: Junghyun Yeon <jungh.yeon@samsung.com>
src/common/request_handler/set_cert_request_handler.cc
src/common/request_handler/set_cert_request_handler.hh
src/pkgmgrinfo_certinfo.c

index b28c063b60a0ad98767453cdab7ba213c652df0d..06f76a96a099ab94cd6441549f9d44fa8f03b12e 100644 (file)
@@ -36,15 +36,19 @@ bool SetCertRequestHandler::HandleRequest(unsigned char* data, int size,
   db.SetCertHandle(const_cast<pkgmgr_certinfo_x*>(parcel->GetCertInfo()));
 
   int ret = db.Execute();
-
+  result_ = std::make_shared<ResultParcelable>(ret, std::vector<std::vector<std::string>>{});
   //need to set result
 
   return true;
 }
 
 std::vector<uint8_t> SetCertRequestHandler::GetResult() {
-  //need to return valid result
-  return std::vector<uint8_t>('0');
+  tizen_base::Parcel parcel;
+
+  parcel.WriteParcelable(*result_.get());
+  std::vector<uint8_t> raw = parcel.GetRaw();
+
+  return raw;
 }
 
 }  // namespace request_handler
index 7229e616b5fc80d88822b8ce8e48037a2cfb4d7e..68ac9d7eec2faa57028122e8c9cd8ad8a92e689a 100644 (file)
@@ -6,6 +6,7 @@
 #define SERVER_SET_CERT_REQUEST_HANDLER_HH_
 
 #include "abstract_request_handler.hh"
+#include "result_parcelable.hh"
 
 #include <string>
 
@@ -21,6 +22,9 @@ class EXPORT_API SetCertRequestHandler : public AbstractRequestHandler {
   bool HandleRequest(unsigned char* data, int size, std::string locale) override;
 
   std::vector<uint8_t> GetResult() override;
+
+ private:
+  std::shared_ptr<pkgmgr_common::parcel::ResultParcelable> result_;
 };
 
 }  // namespace request_handler
index 8dee52729e4ab8b8d54cf4aadbf0db9e62b753e9..dfd2b52aebc1a3226ec2f6eb99508e33558ad698 100644 (file)
@@ -156,6 +156,13 @@ API int pkgmgrinfo_save_certinfo(const char *pkgid,
     return PMINFO_R_EINVAL;
   }
   pkgmgr_certinfo_x *certinfo = (pkgmgr_certinfo_x *)handle;
+  if (certinfo->pkgid == NULL) {
+    certinfo->pkgid = strdup(pkgid);
+    if (certinfo->pkgid == NULL) {
+      _LOGE("Out of memory");
+      return PMINFO_R_ERROR;
+    }
+  }
   return _pkginfo_insert_certinfo(pkgid, certinfo, uid);
 }