#define PKGMGR_CLIENT_STATUS_CLEAR_DATA 0x10
#define PKGMGR_CLIENT_STATUS_INSTALL_PROGRESS 0x20
#define PKGMGR_CLIENT_STATUS_GET_SIZE 0x40
+#define PKGMGR_CLIENT_STATUS_ENABLE_DISABLE_APP 0x80
/** @} */
/* new common error codes */
const char *pkgid, const char *key,
const char *val, const void *pmsg, void *data);
+typedef int (*pkgmgr_app_handler)(uid_t target_uid, int req_id, const char *pkg_type,
+ const char *pkgid, const char *appid, const char *key,
+ const char *val, const void *pmsg, void *data);
+
typedef void (*pkgmgr_pkg_size_info_receive_cb)(pkgmgr_client *pc, const char *pkgid,
const pkg_size_info_t *size_info, void *user_data);
const char *pkgid);
int pkgmgr_client_usr_deactivate(pkgmgr_client *pc, const char *pkg_type,
const char *pkgid, uid_t uid);
+
/**
* @brief This API activates package.
*
*
* @param[in] pc pkgmgr_client
* @param[in] appid applicaiton id
+ * @param[in] argv argument vector
* @return request_id (>0) if success, error code(<0) if fail\n
* @retval PKGMGR_R_OK success
* @retval PKGMGR_R_EINVAL invalid argument
* @retval PKGMGR_R_ECOMM communication error
*/
-int pkgmgr_client_activate_app(pkgmgr_client *pc, const char *appid);
-int pkgmgr_client_usr_activate_app(pkgmgr_client *pc, const char *appid, uid_t uid);
+int pkgmgr_client_activate_appv(pkgmgr_client * pc, const char *appid, char *const argv[]);
+int pkgmgr_client_usr_activate_appv(pkgmgr_client * pc, const char *appid, char *const argv[], uid_t uid);
+
/**
- * @brief This API activates package.
+ * @brief This API deactivates app.
*
* This API is for package-manager client application.\n
*
* @param[in] pc pkgmgr_client
* @param[in] appid applicaiton id
- * @param[in] argv argument vector
+ * @param[in] app_event_cb user callback
* @return request_id (>0) if success, error code(<0) if fail\n
* @retval PKGMGR_R_OK success
* @retval PKGMGR_R_EINVAL invalid argument
* @retval PKGMGR_R_ECOMM communication error
*/
-int pkgmgr_client_activate_appv(pkgmgr_client * pc, const char *appid, char *const argv[]);
-int pkgmgr_client_usr_activate_appv(pkgmgr_client * pc, const char *appid, char *const argv[], uid_t uid);
+int pkgmgr_client_deactivate_app(pkgmgr_client *pc, const char *appid, pkgmgr_app_handler app_event_cb);
+int pkgmgr_client_usr_deactivate_app(pkgmgr_client *pc, const char *appid, pkgmgr_app_handler app_event_cb, uid_t uid);
+
/**
- * @brief This API deactivates package.
+ * @brief This API deactivates global app for user specified by uid.
*
* This API is for package-manager client application.\n
*
* @param[in] pc pkgmgr_client
* @param[in] appid applicaiton id
+ * @param[in] app_event_cb user callback
+ * @param[in] uid user id
* @return request_id (>0) if success, error code(<0) if fail\n
* @retval PKGMGR_R_OK success
* @retval PKGMGR_R_EINVAL invalid argument
* @retval PKGMGR_R_ECOMM communication error
*/
-int pkgmgr_client_deactivate_app(pkgmgr_client *pc, const char *appid);
-int pkgmgr_client_usr_deactivate_app(pkgmgr_client *pc, const char *appid, uid_t uid);
+int pkgmgr_client_deactivate_global_app_for_uid(pkgmgr_client *pc, const char *appid, pkgmgr_app_handler app_event_cb, uid_t uid);
/**
- * @brief This API deactivates global app for user specified by uid.
+ * @brief This API activates app.
*
* This API is for package-manager client application.\n
*
* @param[in] pc pkgmgr_client
* @param[in] appid applicaiton id
+ * @param[in] app_event_cb user callback
* @param[in] uid user id
* @return request_id (>0) if success, error code(<0) if fail\n
* @retval PKGMGR_R_OK success
* @retval PKGMGR_R_EINVAL invalid argument
* @retval PKGMGR_R_ECOMM communication error
*/
-int pkgmgr_client_usr_deactivate_global_app(pkgmgr_client *pc, const char *appid, uid_t uid);
+int pkgmgr_client_activate_app(pkgmgr_client *pc, const char *appid, pkgmgr_app_handler app_event_cb);
+int pkgmgr_client_usr_activate_app(pkgmgr_client *pc, const char *appid, pkgmgr_app_handler app_event_cb, uid_t uid);
/**
- * @brief This API deactivates global app for user specified by uid.
+ * @brief This API activates global app for user specified by uid.
*
* This API is for package-manager client application.\n
*
* @param[in] pc pkgmgr_client
* @param[in] appid applicaiton id
+ * @param[in] app_event_cb user callback
* @param[in] uid user id
* @return request_id (>0) if success, error code(<0) if fail\n
* @retval PKGMGR_R_OK success
* @retval PKGMGR_R_EINVAL invalid argument
* @retval PKGMGR_R_ECOMM communication error
*/
-int pkgmgr_client_usr_activate_global_app(pkgmgr_client *pc, const char *appid, uid_t uid);
+int pkgmgr_client_activate_global_app_for_uid(pkgmgr_client *pc, const char *appid, pkgmgr_app_handler app_event_cb, uid_t uid);
/**
* @brief This API deletes application's private data.
void *data);
/**
+ * @brief This API request to listen the pkgmgr's broadcasting about apps
+ *
+ * This API is for package-manager client application.\n
+ *
+ * @param[in] pc pkgmgr_client
+ * @param[in] event_cb user callback
+ * @param[in] data user data
+ * @return request_id (>0) if success, error code(<0) if fail\n
+ * @retval PKGMGR_R_OK success
+ * @retval PKGMGR_R_EINVAL invalid argument
+*/
+int pkgmgr_client_listen_app_status(pkgmgr_client *pc, pkgmgr_app_handler event_cb,
+ void *data);
+
+/**
* @brief This API broadcasts pkgmgr's status
*
* This API is for package-manager client application.\n
int request_id;
char *req_key;
pkgmgr_handler event_cb;
+ pkgmgr_app_handler app_event_cb;
void *data;
struct _req_cb_info *next;
} req_cb_info;
typedef struct _listen_cb_info {
int request_id;
pkgmgr_handler event_cb;
+ pkgmgr_app_handler app_event_cb;
void *data;
struct _listen_cb_info *next;
} listen_cb_info;
cb_info->event_cb = event_cb;
cb_info->data = data;
cb_info->next = NULL;
+ cb_info->app_event_cb = NULL;
pc->new_event_cb = new_event_cb;
if (pc->info.request.rhead == NULL)
}
}
+static void __add_op_app_cbinfo(pkgmgr_client_t * pc, int request_id,
+ const char *req_key, pkgmgr_app_handler app_event_cb, void *data)
+{
+ req_cb_info *cb_info;
+ req_cb_info *current;
+ req_cb_info *prev;
+
+ cb_info = (req_cb_info *) calloc(1, sizeof(req_cb_info));
+ if (cb_info == NULL) {
+ DBG("calloc failed");
+ return;
+ }
+ cb_info->request_id = request_id;
+ cb_info->req_key = strdup(req_key);
+ cb_info->event_cb = NULL;
+ cb_info->app_event_cb = app_event_cb;
+ cb_info->data = data;
+ cb_info->next = NULL;
+ pc->new_event_cb = NULL;
+
+ if (pc->info.request.rhead == NULL)
+ pc->info.request.rhead = cb_info;
+ else {
+ current = prev = pc->info.request.rhead;
+ while (current) {
+ prev = current;
+ current = current->next;
+ }
+
+ prev->next = cb_info;
+ }
+}
+
static req_cb_info *__find_op_cbinfo(pkgmgr_client_t *pc, const char *req_key)
{
req_cb_info *tmp;
return NULL;
}
+static void __add_app_stat_cbinfo(pkgmgr_client_t *pc, int request_id,
+ pkgmgr_app_handler event_cb, void *data)
+{
+ listen_cb_info *cb_info;
+ listen_cb_info *current;
+ listen_cb_info *prev;
+
+ cb_info = (listen_cb_info *) calloc(1, sizeof(listen_cb_info));
+ if (cb_info == NULL) {
+ DBG("calloc failed");
+ return;
+ }
+ cb_info->request_id = request_id;
+ cb_info->app_event_cb = event_cb;
+ cb_info->data = data;
+ cb_info->next = NULL;
+
+ if (pc->info.listening.lhead == NULL)
+ pc->info.listening.lhead = cb_info;
+ else {
+ current = prev = pc->info.listening.lhead;
+ while (current) {
+ prev = current;
+ current = current->next;
+ }
+
+ prev->next = cb_info;
+ }
+}
+
static void __add_stat_cbinfo(pkgmgr_client_t *pc, int request_id,
pkgmgr_handler event_cb, void *data)
{
static void __operation_callback(void *cb_data, uid_t target_uid,
const char *req_id, const char *pkg_type,
- const char *pkgid, const char *key,
- const char *val)
+ const char *pkgid, const char *appid,
+ const char *key, const char *val)
{
pkgmgr_client_t *pc;
req_cb_info *cb_info;
}
/* call callback */
- if (cb_info->event_cb) {
+ if (appid != NULL && strlen(appid) != 0) {
+ /* run app callback */
+ if (pc->new_event_cb)
+ cb_info->app_event_cb(target_uid, cb_info->request_id,
+ pkg_type, pkgid, appid, key, val, pc,
+ cb_info->data);
+ else
+ cb_info->app_event_cb(target_uid, cb_info->request_id,
+ pkg_type, pkgid, appid, key, val, NULL,
+ cb_info->data);
+ } else {
+ /* run pkg callback */
if (pc->new_event_cb)
cb_info->event_cb(target_uid, cb_info->request_id,
pkg_type, pkgid, key, val, pc,
static void __status_callback(void *cb_data, uid_t target_uid,
const char *req_id, const char *pkg_type,
- const char *pkgid, const char *key,
- const char *val)
+ const char *pkgid, const char *appid,
+ const char *key, const char *val)
{
pkgmgr_client_t *pc;
listen_cb_info *tmp;
tmp = pc->info.listening.lhead;
while (tmp) {
- if (tmp->event_cb(target_uid, tmp->request_id, pkg_type, pkgid,
- key, val, NULL, tmp->data) != 0)
- break;
+ if (appid != NULL && strlen(appid) != 0) {
+ /* run app callback */
+ if (tmp->app_event_cb(target_uid, tmp->request_id, pkg_type, pkgid,
+ appid, key, val, NULL, tmp->data) != 0)
+ break;
+ } else {
+ /* run pkg callback */
+ if (tmp->event_cb(target_uid, tmp->request_id, pkg_type, pkgid,
+ key, val, NULL, tmp->data) != 0)
+ break;
+ }
tmp = tmp->next;
}
return PKGMGR_R_OK;
}
+static int __change_op_cb_for_enable_disable(pkgmgr_client *pc)
+{
+ int ret = -1;
+
+ retvm_if(pc == NULL, PKGMGR_R_EINVAL, "package manager client pc is NULL");
+ pkgmgr_client_t *mpc = (pkgmgr_client_t *) pc;
+
+ /* free listening head */
+ req_cb_info *tmp = NULL;
+ req_cb_info *prev = NULL;
+ for (tmp = mpc->info.request.rhead; tmp;) {
+ prev = tmp;
+ tmp = tmp->next;
+ free(prev);
+ }
+
+ /* free dbus connection */
+ ret = comm_client_free(mpc->info.request.cc);
+ retvm_if(ret < 0, PKGMGR_R_ERROR, "comm_client_free() failed - %d", ret);
+
+ /* Manage pc for seperated event */
+ mpc->ctype = PC_REQUEST;
+ mpc->status_type = PKGMGR_CLIENT_STATUS_ENABLE_DISABLE_APP;
+
+
+ mpc->info.request.cc = comm_client_new();
+ retvm_if(mpc->info.request.cc == NULL, PKGMGR_R_ERROR, "client creation failed");
+
+ ret = comm_client_set_status_callback(COMM_STATUS_BROADCAST_ENABLE_DISABLE_APP, mpc->info.request.cc, __operation_callback, pc);
+ retvm_if(ret < 0, PKGMGR_R_ERROR, "set_status_callback() failed - %d", ret);
+
+ return PKGMGR_R_OK;
+}
+
static int __get_pkg_size_info_cb(uid_t target_uid, int req_id, const char *req_type,
const char *pkgid, const char *key,
const char *value, const void *pc, void *user_data)
return pkgmgr_client_usr_deactivate(pc, pkg_type, pkgid, GLOBAL_USER);
}
+/* TODO: deprecate? */
+API int pkgmgr_client_usr_activate_appv(pkgmgr_client *pc, const char *appid,
+ char *const argv[], uid_t uid)
+{
+ return pkgmgr_client_usr_activate_app(pc, appid, NULL, uid);
+}
+
+API int pkgmgr_client_activate_appv(pkgmgr_client *pc, const char *appid,
+ char *const argv[])
+{
+ return pkgmgr_client_usr_activate_app(pc, appid, NULL, GLOBAL_USER);
+}
+
API int pkgmgr_client_usr_activate_app(pkgmgr_client *pc, const char *appid,
- uid_t uid)
+ pkgmgr_app_handler app_event_cb, uid_t uid)
{
GVariant *result;
int ret = PKGMGR_R_ECOMM;
+ int req_id;
+ char *req_key = NULL;
pkgmgr_client_t *mpc = (pkgmgr_client_t *)pc;
if (pc == NULL || appid == NULL) {
return PKGMGR_R_EINVAL;
}
+ if (__change_op_cb_for_enable_disable(mpc) < 0) {
+ ERR("__change_op_cb_for_enable_disable failed");
+ return PKGMGR_R_ESYSTEM;
+ }
+
result = comm_client_request(mpc->info.request.cc, "enable_app",
g_variant_new("(us)", uid, appid));
if (result == NULL)
return PKGMGR_R_ECOMM;
- g_variant_get(result, "(i)", &ret);
- g_variant_unref(result);
+ g_variant_get(result, "(i&s)", &ret, &req_key);
+ if (req_key == NULL) {
+ g_variant_unref(result);
+ return PKGMGR_R_ECOMM;
+ }
+ if (ret != PKGMGR_R_OK) {
+ g_variant_unref(result);
+ return ret;
+ }
+ req_id = _get_request_id();
+ __add_op_app_cbinfo(pc, req_id, req_key, app_event_cb, NULL);
+ g_variant_unref(result);
return ret;
}
-API int pkgmgr_client_activate_app(pkgmgr_client * pc, const char *appid)
-{
- return pkgmgr_client_usr_activate_app(pc, appid, GLOBAL_USER);
-}
-
-/* TODO: deprecate? */
-API int pkgmgr_client_usr_activate_appv(pkgmgr_client *pc, const char *appid,
- char *const argv[], uid_t uid)
-{
- return pkgmgr_client_usr_activate_app(pc, appid, uid);
-}
-
-API int pkgmgr_client_activate_appv(pkgmgr_client *pc, const char *appid,
- char *const argv[])
+API int pkgmgr_client_activate_app(pkgmgr_client * pc, const char *appid, pkgmgr_app_handler app_event_cb)
{
- return pkgmgr_client_usr_activate_app(pc, appid, GLOBAL_USER);
+ return pkgmgr_client_usr_activate_app(pc, appid, app_event_cb, GLOBAL_USER);
}
-API int pkgmgr_client_usr_deactivate_app(pkgmgr_client *pc, const char *appid,
- uid_t uid)
+API int pkgmgr_client_activate_global_app_for_uid(pkgmgr_client *pc,
+ const char *appid, pkgmgr_app_handler app_event_cb, uid_t uid)
{
GVariant *result;
int ret = PKGMGR_R_ECOMM;
+ int req_id;
+ char *req_key = NULL;
pkgmgr_client_t *mpc = (pkgmgr_client_t *)pc;
if (pc == NULL || appid == NULL) {
return PKGMGR_R_EINVAL;
}
- result = comm_client_request(mpc->info.request.cc, "disable_app",
+ if (__change_op_cb_for_enable_disable(mpc) < 0) {
+ ERR("__change_op_cb_for_enable_disable failed");
+ return PKGMGR_R_ESYSTEM;
+ }
+
+ result = comm_client_request(mpc->info.request.cc, "enable_global_app_for_uid",
g_variant_new("(us)", uid, appid));
if (result == NULL)
return PKGMGR_R_ECOMM;
- g_variant_get(result, "(i)", &ret);
- g_variant_unref(result);
+ g_variant_get(result, "(i&s)", &ret, &req_key);
+ if (req_key == NULL) {
+ g_variant_unref(result);
+ return PKGMGR_R_ECOMM;
+ }
+ if (ret != PKGMGR_R_OK) {
+ g_variant_unref(result);
+ return ret;
+ }
- return ret;
-}
+ req_id = _get_request_id();
+ __add_op_app_cbinfo(pc, req_id, req_key, app_event_cb, NULL);
-API int pkgmgr_client_deactivate_app(pkgmgr_client *pc, const char *appid)
-{
- return pkgmgr_client_usr_deactivate_app(pc, appid, GLOBAL_USER);
+ return ret;
}
-API int pkgmgr_client_usr_deactivate_global_app(pkgmgr_client *pc,
- const char *appid, uid_t uid)
+API int pkgmgr_client_usr_deactivate_app(pkgmgr_client *pc, const char *appid,
+ pkgmgr_app_handler app_event_cb, uid_t uid)
{
GVariant *result;
int ret = PKGMGR_R_ECOMM;
pkgmgr_client_t *mpc = (pkgmgr_client_t *)pc;
+ int req_id;
+ char *req_key = NULL;
if (pc == NULL || appid == NULL) {
ERR("invalid parameter");
return PKGMGR_R_EINVAL;
}
- result = comm_client_request(mpc->info.request.cc, "disable_global_app",
+ /* FIXME */
+ if (__change_op_cb_for_enable_disable(mpc) < 0) {
+ ERR("__change_op_cb_for_enable_disable failed");
+ return PKGMGR_R_ESYSTEM;
+ }
+
+ result = comm_client_request(mpc->info.request.cc, "disable_app",
g_variant_new("(us)", uid, appid));
+
if (result == NULL)
return PKGMGR_R_ECOMM;
- g_variant_get(result, "(i)", &ret);
- g_variant_unref(result);
+ g_variant_get(result, "(i&s)", &ret, &req_key);
+ if (req_key == NULL) {
+ g_variant_unref(result);
+ return PKGMGR_R_ECOMM;
+ }
+ if (ret != PKGMGR_R_OK) {
+ g_variant_unref(result);
+ return ret;
+ }
+ req_id = _get_request_id();
+ __add_op_app_cbinfo(pc, req_id, req_key, app_event_cb, NULL);
+
+ g_variant_unref(result);
return ret;
}
-API int pkgmgr_client_usr_activate_global_app(pkgmgr_client *pc,
- const char *appid, uid_t uid)
+API int pkgmgr_client_deactivate_app(pkgmgr_client *pc, const char *appid, pkgmgr_app_handler app_event_cb)
+{
+ return pkgmgr_client_usr_deactivate_app(pc, appid, app_event_cb, GLOBAL_USER);
+}
+
+API int pkgmgr_client_deactivate_global_app_for_uid(pkgmgr_client *pc,
+ const char *appid, pkgmgr_app_handler app_event_cb, uid_t uid)
{
GVariant *result;
int ret = PKGMGR_R_ECOMM;
+ int req_id;
+ char *req_key = NULL;
pkgmgr_client_t *mpc = (pkgmgr_client_t *)pc;
if (pc == NULL || appid == NULL) {
return PKGMGR_R_EINVAL;
}
- result = comm_client_request(mpc->info.request.cc, "enable_global_app",
+ if (__change_op_cb_for_enable_disable(mpc) < 0) {
+ ERR("__change_op_cb_for_enable_disable failed");
+ return PKGMGR_R_ESYSTEM;
+ }
+
+ result = comm_client_request(mpc->info.request.cc, "disable_global_app_for_uid",
g_variant_new("(us)", uid, appid));
+
if (result == NULL)
return PKGMGR_R_ECOMM;
- g_variant_get(result, "(i)", &ret);
- g_variant_unref(result);
+ g_variant_get(result, "(i&s)", &ret, &req_key);
+ if (req_key == NULL) {
+ g_variant_unref(result);
+ return PKGMGR_R_ECOMM;
+ }
+ if (ret != PKGMGR_R_OK) {
+ g_variant_unref(result);
+ return ret;
+ }
+ req_id = _get_request_id();
+ __add_op_app_cbinfo(pc, req_id, req_key, app_event_cb, NULL);
return ret;
}
return req_id;
}
+API int pkgmgr_client_listen_app_status(pkgmgr_client *pc, pkgmgr_app_handler event_cb,
+ void *data)
+{
+ int req_id;
+ /* Check for NULL value of pc */
+ retvm_if(pc == NULL, PKGMGR_R_EINVAL, "package manager client pc is NULL");
+ pkgmgr_client_t *mpc = (pkgmgr_client_t *) pc;
+
+ /* 0. check input */
+ retvm_if(mpc->ctype != PC_LISTENING, PKGMGR_R_EINVAL, "ctype is not PC_LISTENING");
+ retvm_if(event_cb == NULL, PKGMGR_R_EINVAL, "event_cb is NULL");
+
+ /* 1. get id */
+ req_id = _get_request_id();
+
+ /* 2. add app callback info to pkgmgr_client */
+ __add_app_stat_cbinfo(mpc, req_id, event_cb, data);
+ return req_id;
+}
+
API int pkgmgr_client_broadcast_status(pkgmgr_client *pc, const char *pkg_type,
const char *pkgid, const char *key,
const char *val)
return COMM_STATUS_BROADCAST_EVENT_UPGRADE;
case PKGMGR_REQ_MOVE:
return COMM_STATUS_BROADCAST_EVENT_MOVE;
+ case PKGMGR_REQ_ENABLE_DISABLE_APP:
+ return COMM_STATUS_BROADCAST_EVENT_ENABLE_DISABLE_APP;
}
ERR("cannot find type, send signal with type SIGNAL_STATUS");
return COMM_STATUS_BROADCAST_SIGNAL_STATUS;
}
+static int __send_signal_for_app_event(pkgmgr_installer *pi, const char *pkg_type,
+ const char *pkgid, const char *appid, const char *key, const char *val)
+{
+ char *sid;
+ const char *name;
+ GError *err = NULL;
+
+ if (!pi || pi->conn == NULL || appid == NULL)
+ return -1;
+
+ sid = pi->session_id;
+ if (!sid)
+ sid = "";
+
+ name = __get_signal_name(pi, key);
+ if (name == NULL) {
+ ERR("unknown signal type");
+ return -1;
+ }
+
+ if (g_dbus_connection_emit_signal(pi->conn, NULL,
+ COMM_STATUS_BROADCAST_OBJECT_PATH,
+ COMM_STATUS_BROADCAST_INTERFACE, name,
+ g_variant_new("(ussssss)", getuid(), sid,
+ pkg_type, pkgid, appid, key, val), &err)
+ != TRUE) {
+ ERR("failed to send dbus signal: %s", err->message);
+ g_error_free(err);
+ return -1;
+ }
+
+ return 0;
+}
+
static int __send_signal_for_event(pkgmgr_installer *pi, const char *pkg_type,
const char *pkgid, const char *key, const char *val)
{
if (g_dbus_connection_emit_signal(pi->conn, NULL,
COMM_STATUS_BROADCAST_OBJECT_PATH,
COMM_STATUS_BROADCAST_INTERFACE, name,
- g_variant_new("(usssss)", getuid(), sid,
- pkg_type, pkgid, key, val), &err)
+ g_variant_new("(ussssss)", getuid(), sid,
+ pkg_type, pkgid, "", key, val), &err)
!= TRUE) {
ERR("failed to send dbus signal: %s", err->message);
g_error_free(err);
}
API int
+pkgmgr_installer_send_app_signal(pkgmgr_installer *pi,
+ const char *pkg_type,
+ const char *pkgid,
+ const char *appid,
+ const char *key, const char *val)
+{
+ int r = 0;
+
+ if (!pi->conn) {
+ ERR("connection is NULL");
+ return -1;
+ }
+
+ if (strcmp(key, PKGMGR_INSTALLER_UPGRADE_EVENT_STR) == 0)
+ pi->request_type = PKGMGR_REQ_UPGRADE;
+
+ r = __send_signal_for_app_event(pi, pkg_type, pkgid, appid, key, val);
+
+ return r;
+}
+
+API int
pkgmgr_installer_send_signal(pkgmgr_installer *pi,
const char *pkg_type,
const char *pkgid,
return r;
}
+API int pkgmgr_installer_set_request_type(pkgmgr_installer *pi, int request_type)
+{
+ if (pi == NULL)
+ return -1;
+
+ pi->request_type = request_type;
+ return 0;
+}
+
+API int pkgmgr_installer_set_session_id(pkgmgr_installer *pi, char *session_id)
+{
+ if (pi == NULL || session_id == NULL)
+ return -1;
+
+ pi->session_id = strndup(session_id, MAX_STRLEN);
+ return 0;
+}
+
API int pkgmgr_installer_create_certinfo_set_handle(pkgmgr_instcertinfo_h *handle)
{
int ret = 0;