if (conn_admin_listener_.GetState() == ConnectionState::Connected)
return true;
- if (!activator_.Connect(raw_pc_, "install"))
+ if (!activator_.Connect())
return false;
try {
if (conn_info_listener_.GetState() == ConnectionState::Connected)
return true;
- if (!activator_.Connect(raw_pc_, "getsize"))
+ if (!activator_.Connect())
return false;
try {
if (conn_cache_listener_.GetState() == ConnectionState::Connected)
return true;
- if (!activator_.Connect(raw_pc_, "clearcache"))
+ if (!activator_.Connect())
return false;
try {
if (conn_delayed_result_listener_.GetState() == ConnectionState::Connected)
return true;
- if (!activator_.Connect(raw_pc_, "install"))
+ if (!activator_.Connect())
return false;
try {
return raw_pc_;
}
-bool Connector::Activator::Connect(pkgmgr_client_t* pc, std::string method) {
- GVariant *result;
- int ret = PKGMGR_R_ECOMM;
+bool Connector::Activator::Connect() {
+ if (!Create())
+ return false;
- ret = pkgmgr_client_connection_send_request(pc, method.c_str(),
- g_variant_new("()"), &result);
- if (ret != PKGMGR_R_OK) {
- _E("request failed: %d", ret);
- return false;
- }
+ SetTimeout(60 * 1000);
+
+ int retry_cnt = 3;
+ do {
+ int ret = TryConnect();
+ if (ret == 0) {
+ break;
+ } else if (ret < -1) {
+ _E("Maybe peer not launched or peer dead. path: %s, fd: %d",
+ PACKAGE_MANAGER_SOCKET_PATH, fd_);
+ // If requester is root, don't wait
+ if (getuid() == 0)
+ return false;
+
+ usleep(100 * 1000);
+ --retry_cnt;
+ } else if (ret < 0) {
+ _E("Failed to connect to socket: %s, fd: %d",
+ PACKAGE_MANAGER_SOCKET_PATH, fd_);
+ return false;
+ }
+ } while (retry_cnt > 0);
- g_variant_get(result, "(i)", &ret);
- g_variant_unref(result);
- return ret == PKGMGR_R_OK ? true : false;
-}
+ if (retry_cnt == 0) {
+ _E("Failed to connect with server");
+ return false;
+ }
-//bool Connector::Activator::Connect() {
-// if (!Create())
-// return false;
-//
-// SetTimeout(60 * 1000);
-//
-// int retry_cnt = 3;
-// do {
-// int ret = TryConnect();
-// if (ret == 0) {
-// break;
-// } else if (ret < -1) {
-// _E("Maybe peer not launched or peer dead. path: %s, fd: %d",
-// PACKAGE_MANAGER_SOCKET_PATH, fd_);
-// // If requester is root, don't wait
-// if (getuid() == 0)
-// return false;
-//
-// usleep(100 * 1000);
-// --retry_cnt;
-// } else if (ret < 0) {
-// _E("Failed to connect to socket: %s, fd: %d",
-// PACKAGE_MANAGER_SOCKET_PATH, fd_);
-// return false;
-// }
-// } while (retry_cnt > 0);
-//
-// if (retry_cnt == 0) {
-// _E("Failed to connect with server");
-// return false;
-// }
-//
-// return ReceiveReady();
-//}
+ return ReceiveReady();
+}
bool Connector::Activator::Create() {
if (fd_ != -1)