fix clear data behavior
[platform/core/appfw/pkgmgr-server.git] / src / request.c
index e4dda11..58987d9 100644 (file)
@@ -779,6 +779,7 @@ static int __handle_request_cleardata(uid_t uid,
        uid_t target_uid = (uid_t)-1;
        char *pkgtype = NULL;
        char *pkgid = NULL;
+       char *reqkey = NULL;
 
        g_variant_get(parameters, "(u&s&s)", &target_uid, &pkgtype, &pkgid);
        if (target_uid == (uid_t)-1 || pkgtype == NULL || pkgid == NULL) {
@@ -787,7 +788,11 @@ static int __handle_request_cleardata(uid_t uid,
                return -1;
        }
 
-       if (_pm_queue_push(target_uid, "", PKGMGR_REQUEST_TYPE_CLEARDATA, "pkgtool",
+       reqkey = __generate_reqkey(pkgid);
+       if (reqkey == NULL)
+               return -1;
+
+       if (_pm_queue_push(target_uid, reqkey, PKGMGR_REQUEST_TYPE_CLEARDATA, pkgtype,
                                pkgid, "")) {
                g_dbus_method_invocation_return_value(invocation,
                                g_variant_new("(i)", PKGMGR_R_ESYSTEM));
@@ -797,6 +802,8 @@ static int __handle_request_cleardata(uid_t uid,
        g_dbus_method_invocation_return_value(invocation,
                        g_variant_new("(i)", PKGMGR_R_OK));
 
+       free(reqkey);
+
        return 0;
 }