Add AUL_SVC_RET_ETIMEOUT error 79/284079/2
authorChanggyu Choi <changyu.choi@samsung.com>
Wed, 9 Nov 2022 08:46:59 +0000 (17:46 +0900)
committerChanggyu Choi <changyu.choi@samsung.com>
Fri, 11 Nov 2022 05:11:30 +0000 (14:11 +0900)
Currently, app_control_send_launch_request() has returned REJECTED error
even though timeout.
After applying this patch, app receive APP_CONTROL_ERROR_TIMED_OUT when
app_control_send_launch_request() occurs time out.

Change-Id: I2b32627cd1c6189d97834d926009720b55e49a6c
Signed-off-by: Changgyu Choi <changyu.choi@samsung.com>
include/aul_svc.h
src/aul_svc.cc
src/launch_with_result.cc

index 1eaff91..af8f290 100644 (file)
@@ -126,6 +126,7 @@ extern "C" {
  * @brief Return values in appsvc.
  */
 typedef enum _aul_svc_return_val {
+       AUL_SVC_RET_ETIMEOUT = -10,     /**< Timeout */
        AUL_SVC_RET_ENOMEM = -9,        /**< Out of memory */
        AUL_SVC_RET_ECANCELED = -8,     /**< Operation is canceled */
        AUL_SVC_RET_EREJECTED = -7,     /**< application launch rejected */
index 7e2956c..df63a25 100644 (file)
@@ -219,6 +219,8 @@ int AulErrorConvert(int res) {
     return AUL_SVC_RET_ENOMATCH;
   case AUL_R_ECANCELED:
     return AUL_SVC_RET_ECANCELED;
+  case AUL_R_ETIMEOUT:
+    return AUL_SVC_RET_ETIMEOUT;
   default:
     return AUL_SVC_RET_ELAUNCH;
   }
index a932416..9a95d49 100644 (file)
@@ -394,6 +394,9 @@ int __recv_reply_bundle(int fd, bundle** reply_b) {
   int ret = aul_sock_recv_reply_pkt(fd, &pkt);
   if (ret != 0) {
     _E("Failed to receive the packet. result(%d)", ret);
+    if (ret == -EAGAIN)
+      return AUL_R_ETIMEOUT;
+
     return AUL_R_ECOMM;
   }
 
@@ -406,6 +409,9 @@ int __recv_reply_bundle(int fd, bundle** reply_b) {
   ret = pkt_auto->cmd;
   if (ret < 0) {
     _E("The launch request is failed. result(%d)", ret);
+    if (ret == -EAGAIN)
+      return AUL_R_ETIMEOUT;
+
     return AUL_R_ERROR;
   }
 
@@ -761,7 +767,7 @@ extern "C" API int aul_send_launch_request_for_uid(const char* appid,
       uid, reply_cb, error_cb, user_data);
 }
 
-extern "C"  API int aul_send_launch_request_sync_for_uid(const char* appid,
+extern "C" API int aul_send_launch_request_sync_for_uid(const char* appid,
     bundle* b, uid_t uid, bundle** res_b) {
   if (!aul_is_initialized()) {
     if (aul_launch_init(nullptr, nullptr) < 0) {