4 * Copyright (c) 2000 - 2011 Samsung Electronics Co., Ltd. All rights reserved.
6 * Contact: Jayoun Lee <airjany@samsung.com>, Sewook Park <sewook7.park@samsung.com>,
7 * Jaeho Lee <jaeho81.lee@samsung.com>, Shobhit Srivastava <shobhit.s@samsung.com>
9 * Licensed under the Apache License, Version 2.0 (the "License");
10 * you may not use this file except in compliance with the License.
11 * You may obtain a copy of the License at
13 * http://www.apache.org/licenses/LICENSE-2.0
15 * Unless required by applicable law or agreed to in writing, software
16 * distributed under the License is distributed on an "AS IS" BASIS,
17 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
18 * See the License for the specific language governing permissions and
19 * limitations under the License.
23 #include <pkgmgr_installer.h>
27 #include "rpm-installer-util.h"
28 #include "rpm-installer.h"
30 #define VCONF_LOCATION "db"
31 #define VCONF_RPM_INSTALLER VCONF_LOCATION"/private/rpm-installer"
33 #define VCONF_RPM_INSTALLER_BACKEND_STATE \
34 VCONF_RPM_INSTALLER"/state"
35 #define VCONF_RPM_INSTALLER_BACKEND_STATEINFO \
36 VCONF_RPM_INSTALLER"/stateinfo"
38 #define VCONF_RPM_INSTALLER_LAST_REQUESTINFO_COMMAND \
39 VCONF_RPM_INSTALLER"/requestinfo/command"
40 #define VCONF_RPM_INSTALLER_LAST_REQUESTINFO_PKGNAME \
41 VCONF_RPM_INSTALLER"/requestinfo/pkgname"
42 #define VCONF_RPM_INSTALLER_LAST_REQUESTINFO_OPTIONS \
43 VCONF_RPM_INSTALLER"/requestinfo/options"
45 #define ERR_RETURN_LEN 32
47 extern pkgmgr_installer *pi;
48 extern char *gpkgname;
50 int _ri_get_backend_state()
55 _d_msg(DEBUG_INFO,"_ri_get_backend_state\n");
56 ret = vconf_get_int(VCONF_RPM_INSTALLER_BACKEND_STATE, &state);
59 "_ri_get_backend_state: vconf_get_int FAIL\n");
66 int _ri_set_backend_state(int state)
71 vconf_unset_recursive(VCONF_RPM_INSTALLER);
74 _d_msg(DEBUG_INFO,"_ri_set_backend_state\n");
75 ret = vconf_set_int(VCONF_RPM_INSTALLER_BACKEND_STATE, state);
78 "_ri_set_backend_state: vconf_set_int FAIL\n");
84 int _ri_get_backend_state_info()
88 ret = vconf_get_int(VCONF_RPM_INSTALLER_BACKEND_STATEINFO, &state);
91 "_ri_get_backend_state_info: vconf_get_int FAIL\n");
94 /* _d_msg(DEBUG_INFO,"_ri_get_backend_state_info state[%d]\n", state);*/
99 int _ri_set_backend_state_info(int state)
102 _d_msg(DEBUG_INFO,"_ri_set_backend_state_info %d\n", state);
103 ret = vconf_set_int(VCONF_RPM_INSTALLER_BACKEND_STATEINFO, state);
106 "_ri_set_backend_state_info: vconf_set_int FAIL\n");
111 int _ri_get_last_input_info(char **pkgid, int *preqcommand, int *poptions)
114 if (!pkgid || !preqcommand || !poptions)
116 ret = vconf_get_int(VCONF_RPM_INSTALLER_LAST_REQUESTINFO_COMMAND,
120 "_ri_get_last_input_info: VCONF_RPM_INSTALLER_LAST_REQUESTINFO_COMMAND: vconf_get_int FAIL\n");
122 ret = vconf_get_int(VCONF_RPM_INSTALLER_LAST_REQUESTINFO_OPTIONS,
126 "_ri_get_last_input_info: VCONF_RPM_INSTALLER_LAST_REQUESTINFO_OPTIONS: vconf_get_int FAIL\n");
128 *pkgid = vconf_get_str(VCONF_RPM_INSTALLER_LAST_REQUESTINFO_PKGNAME);
132 void _ri_save_last_input_info(char *pkgid, int reqcommand, int options)
134 keylist_t *kl = NULL;
135 kl = vconf_keylist_new();
138 ret = vconf_keylist_add_int(kl,
139 VCONF_RPM_INSTALLER_LAST_REQUESTINFO_COMMAND,
142 _d_msg(DEBUG_ERR, "vconf_keylist_add_int FAIL\n");
143 ret = vconf_keylist_add_str(kl,
144 VCONF_RPM_INSTALLER_LAST_REQUESTINFO_PKGNAME,
147 _d_msg(DEBUG_ERR, "vconf_keylist_add_str FAIL\n");
148 ret = vconf_keylist_add_int(kl,
149 VCONF_RPM_INSTALLER_LAST_REQUESTINFO_OPTIONS,
152 _d_msg(DEBUG_ERR, "vconf_keylist_add_int FAIL\n");
156 "_ri_save_last_input_info: Failure in writing vconf\n");
158 ret = vconf_keylist_free(kl);
160 _d_msg(DEBUG_ERR, "vconf_keylist_free FAIL\n");
163 void _ri_broadcast_status_notification(char *pkgid, char *key, char *val)
165 char *pkgid_tmp = NULL;
166 char buf[ERR_RETURN_LEN] = {'\0'};
169 if (gpkgname != NULL)
170 pkgid_tmp = gpkgname;
174 ret_val = _ri_string_to_error_no(val);
175 _d_msg(DEBUG_INFO, "pkgid = %s, key = %s, val = %s, ret_val = %d\n", pkgid_tmp, key, val, ret_val);
177 if (ret_val == RPM_INSTALLER_ERR_UNKNOWN){
179 pkgmgr_installer_send_signal(pi, PKGTYPE, pkgid_tmp, key, val);
181 _d_msg(DEBUG_ERR, "Failure in sending broadcast message\n");
184 snprintf(buf, ERR_RETURN_LEN - 1, "%d", ret_val);
185 pkgmgr_installer_send_signal(pi, PKGTYPE, pkgid_tmp, key, buf);