Fix package management notification 53/31953/5 accepted/tizen/common/20141215.135517 accepted/tizen/ivi/20141219.050312 submit/tizen_common/20141215.091901 submit/tizen_ivi/20141217.025653 submit/tizen_ivi/20141218.004913
authorBaptiste DURAND <baptiste.durand@gmail.com>
Fri, 12 Dec 2014 11:42:24 +0000 (12:42 +0100)
committerBaptiste DURAND <baptiste.durand@open.eurogiciel.org>
Fri, 12 Dec 2014 17:17:55 +0000 (09:17 -0800)
If the installation backend  child process fails, send a notification to
the package manager client

BUG-Tizen=TC-2127
Change-Id: I68a5b7f1516814b14432639554548aad4c83e873
Signed-off-by: Baptiste DURAND <baptiste.durand@open.eurogiciel.org>
server/src/pkgmgr-server.c

index 3b9e343..fdfaeff 100644 (file)
@@ -884,8 +884,13 @@ static void _wait_backend(pid_t pid)
                                        __set_backend_free(i);
                                        __set_backend_mode(i);
                                        __unset_recovery_mode((ptr + i)->pkgid, (ptr + i)->pkgtype);
-                                       DBG("clear the status of [%d] nb %d \n", cpid, i);
-
+                                       ERR(" STATUS = %d \n",(WEXITSTATUS (status)));
+                                       if (WEXITSTATUS (status) != 0) {
+                                               strncpy(pname, (ptr + i)->pkgid, MAX_PKG_NAME_LEN-1);
+                                               strncpy(ptype, (ptr + i)->pkgtype, MAX_PKG_TYPE_LEN-1);
+                                               strncpy(args, (ptr + i)->args, MAX_PKG_ARGS_LEN-1);
+                                               g_idle_add(send_fail_signal, NULL);
+                                       }
                                        break;
                                }
                                else
@@ -931,8 +936,13 @@ static void sighandler(int signo)
                                        __set_backend_free(i);
                                        __set_backend_mode(i);
                                        __unset_recovery_mode((ptr + i)->pkgid, (ptr + i)->pkgtype);
-                                       DBG("clear the status of [%d] nb %d \n", cpid, i);
 
+                                       if (WEXITSTATUS (status) != 0) {
+                                               strncpy(pname, (ptr + i)->pkgid, MAX_PKG_NAME_LEN-1);
+                                               strncpy(ptype, (ptr + i)->pkgtype, MAX_PKG_TYPE_LEN-1);
+                                               strncpy(args, (ptr + i)->args, MAX_PKG_ARGS_LEN-1);
+                                               g_idle_add(send_fail_signal, NULL);
+                                       }
                                        break;
                                }
                                else