Add a new installer option 36/139436/2
authorSangyoon Jang <jeremy.jang@samsung.com>
Wed, 19 Jul 2017 03:21:07 +0000 (12:21 +0900)
committerSangyoon Jang <jeremy.jang@samsung.com>
Tue, 25 Jul 2017 06:35:36 +0000 (15:35 +0900)
Change-Id: I21c2b3ad905e2eb3ae27b7ead4aac12d89db21db
Signed-off-by: Sangyoon Jang <jeremy.jang@samsung.com>
installer/pkgmgr_installer.c
installer/pkgmgr_installer.h

index e9a0aa7800756ebdff659e80d65c8aa42692dea3..fc4950a25a85c868d271a09c3a8d9e2a447f4c51 100644 (file)
@@ -59,6 +59,7 @@
 #define OPTVAL_KEEP_RWDATA 1004
 #define OPTVAL_PARTIAL_RW 1005
 #define OPTVAL_MIGRATE_EXTIMG 1006
+#define OPTVAL_SKIP_CHECK_REFERENCE 1007
 
 /* Supported options */
 const char *short_opts = "k:l:i:d:c:m:t:o:r:p:s:b:e:M:y:u:w:D:A:qG";
@@ -87,6 +88,7 @@ const struct option long_opts[] = {
        { "keep-rwdata", 0, NULL, OPTVAL_KEEP_RWDATA }, /* for preload RW */
        { "partial-rw", 0, NULL, OPTVAL_PARTIAL_RW }, /* for preload RO */
        { "migrate-extimg", 1, NULL, OPTVAL_MIGRATE_EXTIMG },
+       { "skip-check-reference", 0, NULL, OPTVAL_SKIP_CHECK_REFERENCE },
        { 0, 0, 0, 0 }  /* sentinel */
 };
 
@@ -109,6 +111,7 @@ struct pkgmgr_installer {
        int keep_rwdata;
        int partial_rw;
        int debug_mode;
+       int skip_check_reference;
        GDBusConnection *conn;
 };
 
@@ -421,6 +424,9 @@ pkgmgr_installer_receive_request(pkgmgr_installer *pi,
                        pi->pkgmgr_info = strndup(optarg, MAX_STRLEN);
                        DBG("legacy extimg migration requested");
                        break;
+               case OPTVAL_SKIP_CHECK_REFERENCE:
+                       pi->skip_check_reference = 1;
+                       break;
                case 'k':       /* session id */
                        if (pi->session_id)
                                free(pi->session_id);
@@ -715,6 +721,12 @@ API int pkgmgr_installer_get_debug_mode(pkgmgr_installer *pi)
        return pi->debug_mode;
 }
 
+API int pkgmgr_installer_get_skip_check_reference(pkgmgr_installer *pi)
+{
+       CHK_PI_RET(PKGMGR_REQ_INVALID);
+       return pi->skip_check_reference;
+}
+
 API int pkgmgr_installer_send_app_uninstall_signal(pkgmgr_installer *pi,
                             const char *pkg_type,
                             const char *pkgid,
index 73ffbd37386300730114896ada47d36688d6ab84..c0ca9a24e7a66ad12b97fc8d1729748b49ddee67 100644 (file)
@@ -697,6 +697,41 @@ int main(int argc, char **argv)
 */
 int pkgmgr_installer_get_debug_mode(pkgmgr_installer *pi);
 
+/**
+       @brief          Get skip_check_reference value
+       @pre            pkgmgr_installer_receive_request() must be called.
+       @post           None
+       @see            pkgmgr_installer_receive_request
+       @param[in]      pi      pkgmgr_installer object
+       @return         Operation result
+       @retval         0 if a request does not skip checking reference
+       @retval         1 if a request skip checking reference
+       @remark         None
+       @code
+#include <pkgmgr_installer.h>
+int main(int argc, char **argv)
+{
+       pkgmgr_installer *pi;
+       int r = 0;
+       int check_reference = 0;
+
+       pi = pkgmgr_installer_new();
+       if(!pi) return -1;
+       if(pkgmgr_installer_receive_request(pi, argc, argv)) {
+               r = -1;
+               goto CLEANUP_RET;
+       }
+       check_reference = pkgmgr_installer_get_skip_check_reference(pi);
+
+       // Do something...
+
+       pkgmgr_installer_free(pi);
+       return r;
+}
+       @endcode
+*/
+int pkgmgr_installer_get_skip_check_reference(pkgmgr_installer *pi);
+
 /**
        @brief          Send a app status signal
        @pre            None