From: Junghyun Yeon Date: Mon, 20 Mar 2017 04:21:09 +0000 (+0900) Subject: Change behavior of pkgmgr-server with DRM related operations X-Git-Tag: accepted/tizen/unified/20170407.190612~5 X-Git-Url: http://review.tizen.org/git/?p=platform%2Fcore%2Fappfw%2Fpkgmgr-server.git;a=commitdiff_plain;h=682f8c3bce2956f8c9086959cb3057d076473814 Change behavior of pkgmgr-server with DRM related operations - 3 drm related operations which are allowed by pkgmgr-server currently should be performed with same process. - these operations should be invoked sequentially so pkgmgr-server will not terminated until all operations has done. Change-Id: I9b1008bbfa4d11db7586ec96ae4124533e945788 Signed-off-by: Junghyun Yeon --- diff --git a/src/pkgmgr-server.c b/src/pkgmgr-server.c index a8be0f2..ab5a033 100644 --- a/src/pkgmgr-server.c +++ b/src/pkgmgr-server.c @@ -82,6 +82,7 @@ is dynamically determined. */ static char backend_busy = 0; extern int num_of_backends; +bool is_drm_busy = false; static GIOChannel *sio; static guint swid; @@ -294,7 +295,7 @@ gboolean exit_server(void *data) { DBG("exit_server Start"); if (__check_backend_status_for_exit() && - __check_queue_status_for_exit()) { + __check_queue_status_for_exit() && !is_drm_busy) { g_main_loop_quit(mainloop); return FALSE; } @@ -1313,13 +1314,14 @@ static int __process_generate_license_request(struct backend_job *job) ERR("drm_tizen_generate_license_request failed: %d", ret); _return_value_to_caller(job->req_id, g_variant_new("(iss)", PKGMGR_R_ESYSTEM, "", "")); + is_drm_busy = false; return -1; } _return_value_to_caller(job->req_id, g_variant_new("(iss)", PKGMGR_R_OK, req_data, license_url)); - + is_drm_busy = true; return 0; } @@ -1335,6 +1337,7 @@ static int __process_register_license(struct backend_job *job) ERR("drm_tizen_register_license failed: %d", ret); _return_value_to_caller(job->req_id, g_variant_new("(i)", PKGMGR_R_ESYSTEM)); + is_drm_busy = false; return -1; } @@ -1360,11 +1363,13 @@ static int __process_decrypt_package(struct backend_job *job) ERR("drm_tizen_register_license failed: %d", ret); _return_value_to_caller(job->req_id, g_variant_new("(i)", PKGMGR_R_ESYSTEM)); + is_drm_busy = false; return -1; } _return_value_to_caller(job->req_id, g_variant_new("(i)", PKGMGR_R_OK)); + is_drm_busy = false; return 0; }