2 * Copyright (c) 2011-2015 Samsung Electronics Co., Ltd All Rights Reserved
4 * Licensed under the Apache License, Version 2.0 (the License);
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
8 * http://www.apache.org/licenses/LICENSE-2.0
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an AS IS BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
18 #include "vc_client.h"
23 static int g_waiting_time = 3000;
25 static Ecore_Fd_Handler* g_fd_handler = NULL;
27 static DBusConnection* g_conn_sender = NULL;
28 static DBusConnection* g_conn_listener = NULL;
30 extern int __vc_cb_error(int pid, int reason);
32 extern void __vc_cb_result(int pid);
34 extern int __vc_cb_service_state(int state);
37 static Eina_Bool listener_event_callback(void* data, Ecore_Fd_Handler *fd_handler)
39 if (NULL == g_conn_listener) return ECORE_CALLBACK_RENEW;
41 dbus_connection_read_write_dispatch(g_conn_listener, 50);
44 DBusMessage* msg = NULL;
45 msg = dbus_connection_pop_message(g_conn_listener);
47 /* loop again if we haven't read a message */
53 dbus_error_init(&err);
55 char if_name[64] = {0, };
56 snprintf(if_name, 64, "%s", VC_CLIENT_SERVICE_INTERFACE);
58 if (dbus_message_is_method_call(msg, if_name, VCD_METHOD_HELLO)) {
59 SLOG(LOG_DEBUG, TAG_VCC, "===== Get Hello");
63 dbus_message_get_args(msg, &err, DBUS_TYPE_INT32, &pid, DBUS_TYPE_INVALID);
65 if (dbus_error_is_set(&err)) {
66 SLOG(LOG_ERROR, TAG_VCC, "[ERROR] Dbus Error (%s)", err.message);
67 dbus_error_free(&err);
71 SLOG(LOG_DEBUG, TAG_VCC, "<<<< vc get hello : pid(%d) ", pid);
74 SLOG(LOG_ERROR, TAG_VCC, "<<<< vc get hello : invalid pid ");
77 DBusMessage* reply = NULL;
78 reply = dbus_message_new_method_return(msg);
81 dbus_message_append_args(reply, DBUS_TYPE_INT32, &response, DBUS_TYPE_INVALID);
83 if (!dbus_connection_send(g_conn_listener, reply, NULL))
84 SLOG(LOG_ERROR, TAG_VCC, ">>>> vc get hello : fail to send reply");
86 SLOG(LOG_DEBUG, TAG_VCC, ">>>> vc get hello : result(%d)", response);
88 dbus_connection_flush(g_conn_listener);
89 dbus_message_unref(reply);
91 SLOG(LOG_ERROR, TAG_VCC, ">>>> vc get hello : fail to create reply message");
94 SLOG(LOG_DEBUG, TAG_VCC, "=====");
95 SLOG(LOG_DEBUG, TAG_VCC, " ");
96 } /* VCD_METHOD_HELLO */
98 else if (dbus_message_is_signal(msg, if_name, VCD_METHOD_SET_SERVICE_STATE)) {
101 dbus_message_get_args(msg, &err, DBUS_TYPE_INT32, &state, DBUS_TYPE_INVALID);
102 if (dbus_error_is_set(&err)) {
103 SLOG(LOG_ERROR, TAG_VCC, "[ERROR] Get arguments error (%s)", err.message);
104 dbus_error_free(&err);
107 SLOG(LOG_DEBUG, TAG_VCC, "<<<< state changed : %d", state);
109 __vc_cb_service_state(state);
111 } /* VCD_METHOD_SET_SERVICE_STATE */
113 else if (dbus_message_is_signal(msg, if_name, VCD_METHOD_RESULT)) {
114 SLOG(LOG_DEBUG, TAG_VCC, "===== Get Client Result");
117 dbus_message_get_args(msg, &err, DBUS_TYPE_INT32, &pid, DBUS_TYPE_INVALID);
121 SLOG(LOG_DEBUG, TAG_VCC, "=====");
122 SLOG(LOG_DEBUG, TAG_VCC, " ");
124 } /* VCD_METHOD_RESULT */
126 else if (dbus_message_is_signal(msg, if_name, VCD_METHOD_ERROR)) {
127 SLOG(LOG_DEBUG, TAG_VCC, "===== Get Error");
132 dbus_message_get_args(msg, &err,
133 DBUS_TYPE_INT32, &pid,
134 DBUS_TYPE_INT32, &reason,
135 DBUS_TYPE_STRING, &err_msg,
138 if (dbus_error_is_set(&err)) {
139 SLOG(LOG_ERROR, TAG_VCC, "<<<< vc Get Error message : Get arguments error (%s)", err.message);
140 dbus_error_free(&err);
142 SLOG(LOG_DEBUG, TAG_VCC, "<<<< vc Get Error message : pid(%d), reason(%d), msg(%s)", pid, reason, err_msg);
143 __vc_cb_error(pid, reason);
146 SLOG(LOG_DEBUG, TAG_VCC, "=====");
147 SLOG(LOG_DEBUG, TAG_VCC, " ");
148 } /* VCD_METHOD_ERROR */
151 SLOG(LOG_DEBUG, TAG_VCC, "Message is NOT valid");
152 dbus_message_unref(msg);
156 /* free the message */
157 dbus_message_unref(msg);
160 return ECORE_CALLBACK_PASS_ON;
163 int vc_dbus_open_connection()
165 if (NULL != g_conn_sender && NULL != g_conn_listener) {
166 SLOG(LOG_WARN, TAG_VCC, "already existed connection ");
172 /* initialise the error value */
173 dbus_error_init(&err);
175 /* connect to the DBUS system bus, and check for errors */
176 g_conn_sender = dbus_bus_get(DBUS_BUS_SESSION, &err);
178 if (dbus_error_is_set(&err)) {
179 SLOG(LOG_ERROR, TAG_VCC, "Dbus Connection Error (%s)", err.message);
180 dbus_error_free(&err);
183 if (NULL == g_conn_sender) {
184 SLOG(LOG_ERROR, TAG_VCC, "Fail to get dbus connection ");
185 return VC_ERROR_OPERATION_FAILED;
188 g_conn_listener = dbus_bus_get(DBUS_BUS_SESSION, &err);
190 if (dbus_error_is_set(&err)) {
191 SLOG(LOG_ERROR, TAG_VCC, "Dbus Connection Error (%s)", err.message);
192 dbus_error_free(&err);
195 if (NULL == g_conn_listener) {
196 SLOG(LOG_ERROR, TAG_VCC, "Fail to get dbus connection ");
197 return VC_ERROR_OPERATION_FAILED;
200 if (NULL != g_fd_handler) {
201 SLOG(LOG_WARN, TAG_VCC, "The handler already exists.");
205 char rule[128] = {0, };
206 snprintf(rule, 128, "type='signal',interface='%s'", VC_CLIENT_SERVICE_INTERFACE);
208 /* add a rule for which messages we want to see */
209 dbus_bus_add_match(g_conn_listener, rule, &err);
210 dbus_connection_flush(g_conn_listener);
212 if (dbus_error_is_set(&err)) {
213 SLOG(LOG_ERROR, TAG_VCC, "Match Error (%s)", err.message);
214 dbus_error_free(&err);
215 return VC_ERROR_OPERATION_FAILED;
219 if (1 != dbus_connection_get_unix_fd(g_conn_listener, &fd)) {
220 SLOG(LOG_ERROR, TAG_VCC, "fail to get fd from dbus ");
221 return VC_ERROR_OPERATION_FAILED;
223 SLOG(LOG_DEBUG, TAG_VCC, "Get fd from dbus : %d", fd);
226 g_fd_handler = ecore_main_fd_handler_add(fd, ECORE_FD_READ, (Ecore_Fd_Cb)listener_event_callback, g_conn_listener, NULL, NULL);
227 if (NULL == g_fd_handler) {
228 SLOG(LOG_ERROR, TAG_VCC, "fail to get fd handler from ecore ");
229 return VC_ERROR_OPERATION_FAILED;
235 int vc_dbus_close_connection()
238 dbus_error_init(&err);
240 if (NULL != g_fd_handler) {
241 ecore_main_fd_handler_del(g_fd_handler);
246 g_conn_sender = NULL;
247 g_conn_listener = NULL;
252 int vc_dbus_reconnect()
254 bool sender_connected = dbus_connection_get_is_connected(g_conn_sender);
255 bool listener_connected = dbus_connection_get_is_connected(g_conn_listener);
256 SLOG(LOG_DEBUG, TAG_VCC, "[DBUS] Sender(%s) Listener(%s)",
257 sender_connected ? "Connected" : "Not connected", listener_connected ? "Connected" : "Not connected");
259 if (false == sender_connected || false == listener_connected) {
260 vc_dbus_close_connection();
262 if (0 != vc_dbus_open_connection()) {
263 SLOG(LOG_ERROR, TAG_VCC, "[ERROR] Fail to reconnect");
267 SLOG(LOG_DEBUG, TAG_VCC, "[DBUS] Reconnect");
273 int vc_dbus_request_hello()
277 msg = dbus_message_new_method_call(
278 VC_SERVER_SERVICE_NAME,
279 VC_SERVER_SERVICE_OBJECT_PATH,
280 VC_SERVER_SERVICE_INTERFACE,
284 SLOG(LOG_ERROR, TAG_VCC, ">>>> Request vc hello : Fail to make message");
285 return VC_ERROR_OPERATION_FAILED;
289 dbus_error_init(&err);
291 DBusMessage* result_msg = NULL;
294 result_msg = dbus_connection_send_with_reply_and_block(g_conn_sender, msg, 500, &err);
296 if (dbus_error_is_set(&err)) {
297 dbus_error_free(&err);
300 dbus_message_unref(msg);
302 if (NULL != result_msg) {
303 dbus_message_unref(result_msg);
306 result = VC_ERROR_TIMED_OUT;
313 int vc_dbus_request_initialize(int pid, int* mgr_pid, int* service_state)
317 msg = dbus_message_new_method_call(
318 VC_SERVER_SERVICE_NAME,
319 VC_SERVER_SERVICE_OBJECT_PATH,
320 VC_SERVER_SERVICE_INTERFACE,
321 VC_METHOD_INITIALIZE);
324 SLOG(LOG_ERROR, TAG_VCC, ">>>> vc initialize : Fail to make message ");
325 return VC_ERROR_OPERATION_FAILED;
327 SLOG(LOG_DEBUG, TAG_VCC, ">>>> vc initialize : pid(%d)", pid);
330 dbus_message_append_args(msg,
331 DBUS_TYPE_INT32, &pid,
335 dbus_error_init(&err);
337 DBusMessage* result_msg;
338 int result = VC_ERROR_OPERATION_FAILED;
340 result_msg = dbus_connection_send_with_reply_and_block(g_conn_sender, msg, g_waiting_time, &err);
341 dbus_message_unref(msg);
343 if (dbus_error_is_set(&err)) {
344 SLOG(LOG_ERROR, TAG_VCC, "[ERROR] Dbus Error (%s)", err.message);
345 dbus_error_free(&err);
348 if (NULL != result_msg) {
350 int tmp_service_state = 0;
351 dbus_message_get_args(result_msg, &err,
352 DBUS_TYPE_INT32, &result,
353 DBUS_TYPE_INT32, &tmp,
354 DBUS_TYPE_INT32, &tmp_service_state,
357 if (dbus_error_is_set(&err)) {
358 SLOG(LOG_ERROR, TAG_VCC, "<<<< Get arguments error (%s)", err.message);
359 dbus_error_free(&err);
360 result = VC_ERROR_OPERATION_FAILED;
363 dbus_message_unref(result_msg);
367 *service_state = tmp_service_state;
368 SLOG(LOG_DEBUG, TAG_VCC, "<<<< vc initialize : result = %d mgr = %d service = %d", result, *mgr_pid, *service_state);
370 SLOG(LOG_ERROR, TAG_VCC, "<<<< vc initialize : result = %d", result);
373 SLOG(LOG_ERROR, TAG_VCC, "<<<< Result message is NULL ");
375 result = VC_ERROR_TIMED_OUT;
381 int vc_dbus_request_finalize(int pid)
385 msg = dbus_message_new_method_call(
386 VC_SERVER_SERVICE_NAME,
387 VC_SERVER_SERVICE_OBJECT_PATH,
388 VC_SERVER_SERVICE_INTERFACE,
392 SLOG(LOG_ERROR, TAG_VCC, ">>>> vc finalize : Fail to make message ");
393 return VC_ERROR_OPERATION_FAILED;
395 SLOG(LOG_DEBUG, TAG_VCC, ">>>> vc finalize : pid(%d)", pid);
398 dbus_message_append_args(msg, DBUS_TYPE_INT32, &pid, DBUS_TYPE_INVALID);
401 dbus_error_init(&err);
403 DBusMessage* result_msg;
404 int result = VC_ERROR_OPERATION_FAILED;
406 result_msg = dbus_connection_send_with_reply_and_block(g_conn_sender, msg, g_waiting_time, &err);
407 dbus_message_unref(msg);
409 if (dbus_error_is_set(&err)) {
410 SLOG(LOG_ERROR, TAG_VCC, "[ERROR] Dbus Error (%s)", err.message);
411 dbus_error_free(&err);
414 if (NULL != result_msg) {
415 dbus_message_get_args(result_msg, &err,
416 DBUS_TYPE_INT32, &result,
419 if (dbus_error_is_set(&err)) {
420 SLOG(LOG_ERROR, TAG_VCC, "<<<< Get arguments error (%s)", err.message);
421 dbus_error_free(&err);
422 result = VC_ERROR_OPERATION_FAILED;
425 dbus_message_unref(result_msg);
428 SLOG(LOG_DEBUG, TAG_VCC, "<<<< vc finalize : result = %d", result);
430 SLOG(LOG_ERROR, TAG_VCC, "<<<< vc finalize : result = %d", result);
433 SLOG(LOG_ERROR, TAG_VCC, "<<<< Result message is NULL ");
435 result = VC_ERROR_TIMED_OUT;
441 int vc_dbus_request_set_exclusive_command(int pid, bool value)
445 msg = dbus_message_new_method_call(
446 VC_SERVER_SERVICE_NAME,
447 VC_SERVER_SERVICE_OBJECT_PATH,
448 VC_SERVER_SERVICE_INTERFACE,
449 VC_METHOD_SET_EXCLUSIVE_CMD);
452 SLOG(LOG_ERROR, TAG_VCC, ">>>> vc set exclusive command : Fail to make message");
453 return VC_ERROR_OPERATION_FAILED;
455 SLOG(LOG_DEBUG, TAG_VCC, ">>>> vc set exclusive command : pid(%d)", pid);
460 dbus_message_append_args(msg,
461 DBUS_TYPE_INT32, &pid,
462 DBUS_TYPE_INT32, &temp,
466 dbus_error_init(&err);
468 DBusMessage* result_msg;
469 int result = VC_ERROR_OPERATION_FAILED;
471 result_msg = dbus_connection_send_with_reply_and_block(g_conn_sender, msg, g_waiting_time, &err);
472 dbus_message_unref(msg);
474 if (dbus_error_is_set(&err)) {
475 SLOG(LOG_ERROR, TAG_VCC, "[ERROR] Dbus Error (%s)", err.message);
476 dbus_error_free(&err);
479 if (NULL != result_msg) {
480 dbus_message_get_args(result_msg, &err,
481 DBUS_TYPE_INT32, &result,
484 if (dbus_error_is_set(&err)) {
485 SLOG(LOG_ERROR, TAG_VCC, "<<<< Get arguments error (%s)", err.message);
486 dbus_error_free(&err);
487 result = VC_ERROR_OPERATION_FAILED;
489 dbus_message_unref(result_msg);
492 SLOG(LOG_DEBUG, TAG_VCC, "<<<< vc set exclusive command : result = %d", result);
494 SLOG(LOG_DEBUG, TAG_VCC, "<<<< vc set exclusive command : result = %d", result);
497 SLOG(LOG_ERROR, TAG_VCC, "<<<< Result message is NULL");
499 result = VC_ERROR_TIMED_OUT;
505 int vc_dbus_request_set_command(int pid, vc_cmd_type_e cmd_type)
509 msg = dbus_message_new_method_call(
510 VC_SERVER_SERVICE_NAME,
511 VC_SERVER_SERVICE_OBJECT_PATH,
512 VC_SERVER_SERVICE_INTERFACE,
513 VC_METHOD_SET_COMMAND);
516 SLOG(LOG_ERROR, TAG_VCC, ">>>> vc set command : Fail to make message");
517 return VC_ERROR_OPERATION_FAILED;
519 SLOG(LOG_DEBUG, TAG_VCC, ">>>> vc set command : pid(%d)", pid);
522 dbus_message_append_args(msg,
523 DBUS_TYPE_INT32, &pid,
524 DBUS_TYPE_INT32, &cmd_type,
528 dbus_error_init(&err);
530 DBusMessage* result_msg;
531 int result = VC_ERROR_OPERATION_FAILED;
533 result_msg = dbus_connection_send_with_reply_and_block(g_conn_sender, msg, g_waiting_time, &err);
534 dbus_message_unref(msg);
536 if (dbus_error_is_set(&err)) {
537 SLOG(LOG_ERROR, TAG_VCC, "[ERROR] Dbus Error (%s)", err.message);
538 dbus_error_free(&err);
541 if (NULL != result_msg) {
542 dbus_message_get_args(result_msg, &err,
543 DBUS_TYPE_INT32, &result,
546 if (dbus_error_is_set(&err)) {
547 SLOG(LOG_ERROR, TAG_VCC, "<<<< Get arguments error (%s)", err.message);
548 dbus_error_free(&err);
549 result = VC_ERROR_OPERATION_FAILED;
551 dbus_message_unref(result_msg);
554 SLOG(LOG_DEBUG, TAG_VCC, "<<<< vc set command : result = %d", result);
556 SLOG(LOG_ERROR, TAG_VCC, "<<<< vc set command : result = %d", result);
559 SLOG(LOG_ERROR, TAG_VCC, "<<<< Result message is NULL");
561 result = VC_ERROR_TIMED_OUT;
567 int vc_dbus_request_unset_command(int pid, vc_cmd_type_e cmd_type)
571 msg = dbus_message_new_method_call(
572 VC_SERVER_SERVICE_NAME,
573 VC_SERVER_SERVICE_OBJECT_PATH,
574 VC_SERVER_SERVICE_INTERFACE,
575 VC_METHOD_UNSET_COMMAND);
578 SLOG(LOG_ERROR, TAG_VCC, ">>>> vc unset command : Fail to make message");
579 return VC_ERROR_OPERATION_FAILED;
581 SLOG(LOG_DEBUG, TAG_VCC, ">>>> vc unset command : pid(%d), type(%d)", pid, cmd_type);
584 dbus_message_append_args(msg,
585 DBUS_TYPE_INT32, &pid,
586 DBUS_TYPE_INT32, &cmd_type,
590 dbus_error_init(&err);
592 DBusMessage* result_msg;
593 int result = VC_ERROR_OPERATION_FAILED;
595 result_msg = dbus_connection_send_with_reply_and_block(g_conn_sender, msg, g_waiting_time, &err);
596 dbus_message_unref(msg);
598 if (dbus_error_is_set(&err)) {
599 SLOG(LOG_ERROR, TAG_VCC, "[ERROR] Dbus Error (%s)", err.message);
600 dbus_error_free(&err);
603 if (NULL != result_msg) {
604 dbus_message_get_args(result_msg, &err,
605 DBUS_TYPE_INT32, &result,
608 if (dbus_error_is_set(&err)) {
609 SLOG(LOG_ERROR, TAG_VCC, "<<<< Get arguments error (%s)", err.message);
610 dbus_error_free(&err);
611 result = VC_ERROR_OPERATION_FAILED;
613 dbus_message_unref(result_msg);
616 SLOG(LOG_DEBUG, TAG_VCC, "<<<< vc unset command : result = %d", result);
618 SLOG(LOG_ERROR, TAG_VCC, "<<<< vc unset command : result = %d", result);
621 SLOG(LOG_ERROR, TAG_VCC, "<<<< Result message is NULL");
623 result = VC_ERROR_TIMED_OUT;
630 int vc_dbus_request_start(int pid, int silence)
634 /* create a signal & check for errors */
635 msg = dbus_message_new_method_call(
636 VC_SERVER_SERVICE_NAME,
637 VC_SERVER_SERVICE_OBJECT_PATH,
638 VC_SERVER_SERVICE_INTERFACE,
639 VC_METHOD_REQUEST_START);
642 SLOG(LOG_ERROR, TAG_VCC, ">>>> vc start : Fail to make message ");
643 return VC_ERROR_OPERATION_FAILED;
645 SLOG(LOG_DEBUG, TAG_VCC, ">>>> vc start : pid(%d), silence(%d)", pid, silence);
648 DBusMessageIter args;
649 dbus_message_iter_init_append(msg, &args);
652 dbus_message_iter_append_basic(&args, DBUS_TYPE_INT32, &(pid));
653 dbus_message_iter_append_basic(&args, DBUS_TYPE_INT32, &(silence));
656 dbus_error_init(&err);
658 DBusMessage* result_msg;
659 int result = VC_ERROR_OPERATION_FAILED;
661 result_msg = dbus_connection_send_with_reply_and_block(g_conn_sender, msg, g_waiting_time, &err);
662 dbus_message_unref(msg);
664 if (dbus_error_is_set(&err)) {
665 SLOG(LOG_ERROR, TAG_VCC, "[ERROR] Dbus Error (%s)", err.message);
666 dbus_error_free(&err);
669 if (NULL != result_msg) {
670 dbus_message_get_args(result_msg, &err,
671 DBUS_TYPE_INT32, &result,
674 if (dbus_error_is_set(&err)) {
675 SLOG(LOG_ERROR, TAG_VCC, "<<<< Get arguments error (%s)", err.message);
676 dbus_error_free(&err);
677 result = VC_ERROR_OPERATION_FAILED;
679 dbus_message_unref(result_msg);
682 SLOG(LOG_DEBUG, TAG_VCC, "<<<< vc start : result = %d", result);
684 SLOG(LOG_ERROR, TAG_VCC, "<<<< vc start : result = %d", result);
687 SLOG(LOG_DEBUG, TAG_VCC, "<<<< Result Message is NULL");
689 result = VC_ERROR_TIMED_OUT;
695 int vc_dbus_request_stop(int pid)
699 /* create a signal & check for errors */
700 msg = dbus_message_new_method_call(
701 VC_SERVER_SERVICE_NAME,
702 VC_SERVER_SERVICE_OBJECT_PATH,
703 VC_SERVER_SERVICE_INTERFACE,
704 VC_METHOD_REQUEST_STOP);
707 SLOG(LOG_ERROR, TAG_VCC, ">>>> vc stop : Fail to make message ");
708 return VC_ERROR_OPERATION_FAILED;
710 SLOG(LOG_DEBUG, TAG_VCC, ">>>> vc stop : pid(%d)", pid);
713 dbus_message_append_args(msg,
714 DBUS_TYPE_INT32, &pid,
718 dbus_error_init(&err);
720 DBusMessage* result_msg;
721 int result = VC_ERROR_OPERATION_FAILED;
723 result_msg = dbus_connection_send_with_reply_and_block(g_conn_sender, msg, g_waiting_time, &err);
724 dbus_message_unref(msg);
726 if (dbus_error_is_set(&err)) {
727 SLOG(LOG_ERROR, TAG_VCC, "[ERROR] Dbus Error (%s)", err.message);
728 dbus_error_free(&err);
731 if (NULL != result_msg) {
732 dbus_message_get_args(result_msg, &err,
733 DBUS_TYPE_INT32, &result,
736 if (dbus_error_is_set(&err)) {
737 SLOG(LOG_ERROR, TAG_VCC, "<<<< Get arguments error (%s)", err.message);
738 dbus_error_free(&err);
739 result = VC_ERROR_OPERATION_FAILED;
741 dbus_message_unref(result_msg);
744 SLOG(LOG_DEBUG, TAG_VCC, "<<<< vc stop : result = %d", result);
746 SLOG(LOG_ERROR, TAG_VCC, "<<<< vc stop : result = %d", result);
749 SLOG(LOG_DEBUG, TAG_VCC, "<<<< Result Message is NULL");
751 result = VC_ERROR_TIMED_OUT;
757 int vc_dbus_request_cancel(int pid)
761 /* create a signal & check for errors */
762 msg = dbus_message_new_method_call(
763 VC_SERVER_SERVICE_NAME,
764 VC_SERVER_SERVICE_OBJECT_PATH, /* object name of the signal */
765 VC_SERVER_SERVICE_INTERFACE, /* interface name of the signal */
766 VC_METHOD_REQUEST_CANCEL); /* name of the signal */
769 SLOG(LOG_ERROR, TAG_VCC, ">>>> vc cancel : Fail to make message ");
770 return VC_ERROR_OPERATION_FAILED;
772 SLOG(LOG_DEBUG, TAG_VCC, ">>>> vc cancel : pid(%d)", pid);
775 dbus_message_append_args(msg,
776 DBUS_TYPE_INT32, &pid,
780 dbus_error_init(&err);
782 DBusMessage* result_msg;
783 int result = VC_ERROR_OPERATION_FAILED;
785 result_msg = dbus_connection_send_with_reply_and_block(g_conn_sender, msg, g_waiting_time, &err);
786 dbus_message_unref(msg);
788 if (dbus_error_is_set(&err)) {
789 SLOG(LOG_ERROR, TAG_VCC, "[ERROR] Dbus Error (%s)", err.message);
790 dbus_error_free(&err);
793 if (NULL != result_msg) {
794 dbus_message_get_args(result_msg, &err,
795 DBUS_TYPE_INT32, &result,
798 if (dbus_error_is_set(&err)) {
799 SLOG(LOG_ERROR, TAG_VCC, "<<<< Get arguments error (%s)", err.message);
800 dbus_error_free(&err);
801 result = VC_ERROR_OPERATION_FAILED;
803 dbus_message_unref(result_msg);
806 SLOG(LOG_DEBUG, TAG_VCC, "<<<< vc cancel : result = %d", result);
808 SLOG(LOG_ERROR, TAG_VCC, "<<<< vc cancel : result = %d", result);
811 SLOG(LOG_DEBUG, TAG_VCC, "<<<< Result Message is NULL");
813 result = VC_ERROR_TIMED_OUT;
821 int vc_dbus_request_auth_enable(int pid, int mgr_pid)
825 char service_name[64] = {0,};
826 char object_path[64] = {0,};
827 char target_if_name[128] = {0,};
829 snprintf(service_name, 64, "%s", VC_MANAGER_SERVICE_NAME);
830 snprintf(object_path, 64, "%s", VC_MANAGER_SERVICE_OBJECT_PATH);
831 snprintf(target_if_name, 128, "%s", VC_MANAGER_SERVICE_INTERFACE);
833 /* create a signal & check for errors */
834 msg = dbus_message_new_method_call(
836 object_path, /* object name of the signal */
837 target_if_name, /* interface name of the signal */
838 VC_METHOD_AUTH_ENABLE); /* name of the signal */
841 SLOG(LOG_ERROR, TAG_VCC, ">>>> vc auth enable : Fail to make message ");
842 return VC_ERROR_OPERATION_FAILED;
844 SLOG(LOG_DEBUG, TAG_VCC, ">>>> vc auth enable : pid(%d)", pid);
847 dbus_message_append_args(msg,
848 DBUS_TYPE_INT32, &pid,
852 dbus_error_init(&err);
854 DBusMessage* result_msg;
855 int result = VC_ERROR_OPERATION_FAILED;
857 result_msg = dbus_connection_send_with_reply_and_block(g_conn_sender, msg, g_waiting_time, &err);
858 dbus_message_unref(msg);
860 if (dbus_error_is_set(&err)) {
861 SLOG(LOG_ERROR, TAG_VCC, "[ERROR] Dbus Error (%s)", err.message);
862 dbus_error_free(&err);
865 if (NULL != result_msg) {
866 dbus_message_get_args(result_msg, &err,
867 DBUS_TYPE_INT32, &result,
870 if (dbus_error_is_set(&err)) {
871 SLOG(LOG_ERROR, TAG_VCC, "<<<< Get arguments error (%s)", err.message);
872 dbus_error_free(&err);
873 result = VC_ERROR_OPERATION_FAILED;
875 dbus_message_unref(result_msg);
878 SLOG(LOG_DEBUG, TAG_VCC, "<<<< vc auth enable : result = %d", result);
880 SLOG(LOG_ERROR, TAG_VCC, "<<<< vc auth enable : result = %d", result);
883 SLOG(LOG_DEBUG, TAG_VCC, "<<<< Result Message is NULL");
885 result = VC_ERROR_TIMED_OUT;
891 int vc_dbus_request_auth_disable(int pid, int mgr_pid)
895 char service_name[64] = {0,};
896 char object_path[64] = {0,};
897 char target_if_name[128] = {0,};
899 snprintf(service_name, 64, "%s", VC_MANAGER_SERVICE_NAME);
900 snprintf(object_path, 64, "%s", VC_MANAGER_SERVICE_OBJECT_PATH);
901 snprintf(target_if_name, 128, "%s", VC_MANAGER_SERVICE_INTERFACE);
903 /* create a signal & check for errors */
904 msg = dbus_message_new_method_call(
906 object_path, /* object name of the signal */
907 target_if_name, /* interface name of the signal */
908 VC_METHOD_AUTH_DISABLE); /* name of the signal */
911 SLOG(LOG_ERROR, TAG_VCC, ">>>> vc auth disable : Fail to make message ");
912 return VC_ERROR_OPERATION_FAILED;
914 SLOG(LOG_DEBUG, TAG_VCC, ">>>> vc auth disable : pid(%d)", pid);
917 dbus_message_append_args(msg,
918 DBUS_TYPE_INT32, &pid,
922 dbus_error_init(&err);
924 DBusMessage* result_msg;
925 int result = VC_ERROR_OPERATION_FAILED;
927 result_msg = dbus_connection_send_with_reply_and_block(g_conn_sender, msg, g_waiting_time, &err);
928 dbus_message_unref(msg);
930 if (dbus_error_is_set(&err)) {
931 SLOG(LOG_ERROR, TAG_VCC, "[ERROR] Dbus Error (%s)", err.message);
932 dbus_error_free(&err);
935 if (NULL != result_msg) {
936 dbus_message_get_args(result_msg, &err,
937 DBUS_TYPE_INT32, &result,
940 if (dbus_error_is_set(&err)) {
941 SLOG(LOG_ERROR, TAG_VCC, "<<<< Get arguments error (%s)", err.message);
942 dbus_error_free(&err);
943 result = VC_ERROR_OPERATION_FAILED;
945 dbus_message_unref(result_msg);
948 SLOG(LOG_DEBUG, TAG_VCC, "<<<< vc auth disable : result = %d", result);
950 SLOG(LOG_ERROR, TAG_VCC, "<<<< vc auth disable : result = %d", result);
953 SLOG(LOG_DEBUG, TAG_VCC, "<<<< Result Message is NULL");
955 result = VC_ERROR_TIMED_OUT;
961 int vc_dbus_request_auth_start(int pid, int mgr_pid)
965 char service_name[64] = {0,};
966 char object_path[64] = {0,};
967 char target_if_name[128] = {0,};
969 snprintf(service_name, 64, "%s", VC_MANAGER_SERVICE_NAME);
970 snprintf(object_path, 64, "%s", VC_MANAGER_SERVICE_OBJECT_PATH);
971 snprintf(target_if_name, 128, "%s", VC_MANAGER_SERVICE_INTERFACE);
973 /* create a signal & check for errors */
974 msg = dbus_message_new_method_call(
978 VC_METHOD_AUTH_START);
981 SLOG(LOG_ERROR, TAG_VCC, ">>>> vc auth start : Fail to make message ");
982 return VC_ERROR_OPERATION_FAILED;
984 SLOG(LOG_DEBUG, TAG_VCC, ">>>> vc auth start : pid(%d)", pid);
987 DBusMessageIter args;
988 dbus_message_iter_init_append(msg, &args);
991 dbus_message_iter_append_basic(&args, DBUS_TYPE_INT32, &(pid));
994 dbus_error_init(&err);
996 DBusMessage* result_msg;
997 int result = VC_ERROR_OPERATION_FAILED;
999 result_msg = dbus_connection_send_with_reply_and_block(g_conn_sender, msg, g_waiting_time, &err);
1000 dbus_message_unref(msg);
1002 if (dbus_error_is_set(&err)) {
1003 SLOG(LOG_ERROR, TAG_VCC, "[ERROR] Dbus Error (%s)", err.message);
1004 dbus_error_free(&err);
1007 if (NULL != result_msg) {
1008 dbus_message_get_args(result_msg, &err,
1009 DBUS_TYPE_INT32, &result,
1012 if (dbus_error_is_set(&err)) {
1013 SLOG(LOG_ERROR, TAG_VCC, "<<<< Get arguments error (%s)", err.message);
1014 dbus_error_free(&err);
1015 result = VC_ERROR_OPERATION_FAILED;
1017 dbus_message_unref(result_msg);
1020 SLOG(LOG_DEBUG, TAG_VCC, "<<<< vc auth start : result = %d", result);
1022 SLOG(LOG_ERROR, TAG_VCC, "<<<< vc auth start : result = %d", result);
1025 SLOG(LOG_DEBUG, TAG_VCC, "<<<< Result Message is NULL");
1026 vc_dbus_reconnect();
1027 result = VC_ERROR_TIMED_OUT;
1033 int vc_dbus_request_auth_stop(int pid, int mgr_pid)
1037 char service_name[64] = {0,};
1038 char object_path[64] = {0,};
1039 char target_if_name[128] = {0,};
1041 snprintf(service_name, 64, "%s", VC_MANAGER_SERVICE_NAME);
1042 snprintf(object_path, 64, "%s", VC_MANAGER_SERVICE_OBJECT_PATH);
1043 snprintf(target_if_name, 128, "%s", VC_MANAGER_SERVICE_INTERFACE);
1045 /* create a signal & check for errors */
1046 msg = dbus_message_new_method_call(
1050 VC_METHOD_AUTH_STOP);
1053 SLOG(LOG_ERROR, TAG_VCC, ">>>> vc auth stop : Fail to make message ");
1054 return VC_ERROR_OPERATION_FAILED;
1056 SLOG(LOG_DEBUG, TAG_VCC, ">>>> vc auth stop : pid(%d)", pid);
1059 dbus_message_append_args(msg,
1060 DBUS_TYPE_INT32, &pid,
1064 dbus_error_init(&err);
1066 DBusMessage* result_msg;
1067 int result = VC_ERROR_OPERATION_FAILED;
1069 result_msg = dbus_connection_send_with_reply_and_block(g_conn_sender, msg, g_waiting_time, &err);
1070 dbus_message_unref(msg);
1072 if (dbus_error_is_set(&err)) {
1073 SLOG(LOG_ERROR, TAG_VCC, "[ERROR] Dbus Error (%s)", err.message);
1074 dbus_error_free(&err);
1077 if (NULL != result_msg) {
1078 dbus_message_get_args(result_msg, &err,
1079 DBUS_TYPE_INT32, &result,
1082 if (dbus_error_is_set(&err)) {
1083 SLOG(LOG_ERROR, TAG_VCC, "<<<< Get arguments error (%s)", err.message);
1084 dbus_error_free(&err);
1085 result = VC_ERROR_OPERATION_FAILED;
1087 dbus_message_unref(result_msg);
1090 SLOG(LOG_DEBUG, TAG_VCC, "<<<< vc auth stop : result = %d", result);
1092 SLOG(LOG_ERROR, TAG_VCC, "<<<< vc auth stop : result = %d", result);
1095 SLOG(LOG_DEBUG, TAG_VCC, "<<<< Result Message is NULL");
1096 vc_dbus_reconnect();
1097 result = VC_ERROR_TIMED_OUT;
1103 int vc_dbus_request_auth_cancel(int pid, int mgr_pid)
1107 char service_name[64] = {0,};
1108 char object_path[64] = {0,};
1109 char target_if_name[128] = {0,};
1111 snprintf(service_name, 64, "%s", VC_MANAGER_SERVICE_NAME);
1112 snprintf(object_path, 64, "%s", VC_MANAGER_SERVICE_OBJECT_PATH);
1113 snprintf(target_if_name, 128, "%s", VC_MANAGER_SERVICE_INTERFACE);
1115 /* create a signal & check for errors */
1116 msg = dbus_message_new_method_call(
1118 object_path, /* object name of the signal */
1119 target_if_name, /* interface name of the signal */
1120 VC_METHOD_AUTH_CANCEL); /* name of the signal */
1123 SLOG(LOG_ERROR, TAG_VCC, ">>>> vc auth cancel : Fail to make message ");
1124 return VC_ERROR_OPERATION_FAILED;
1126 SLOG(LOG_DEBUG, TAG_VCC, ">>>> vc auth cancel : pid(%d)", pid);
1129 dbus_message_append_args(msg,
1130 DBUS_TYPE_INT32, &pid,
1134 dbus_error_init(&err);
1136 DBusMessage* result_msg;
1137 int result = VC_ERROR_OPERATION_FAILED;
1139 result_msg = dbus_connection_send_with_reply_and_block(g_conn_sender, msg, g_waiting_time, &err);
1140 dbus_message_unref(msg);
1142 if (dbus_error_is_set(&err)) {
1143 SLOG(LOG_ERROR, TAG_VCC, "[ERROR] Dbus Error (%s)", err.message);
1144 dbus_error_free(&err);
1147 if (NULL != result_msg) {
1148 dbus_message_get_args(result_msg, &err,
1149 DBUS_TYPE_INT32, &result,
1152 if (dbus_error_is_set(&err)) {
1153 SLOG(LOG_ERROR, TAG_VCC, "<<<< Get arguments error (%s)", err.message);
1154 dbus_error_free(&err);
1155 result = VC_ERROR_OPERATION_FAILED;
1157 dbus_message_unref(result_msg);
1160 SLOG(LOG_DEBUG, TAG_VCC, "<<<< vc auth cancel : result = %d", result);
1162 SLOG(LOG_ERROR, TAG_VCC, "<<<< vc auth cancel : result = %d", result);
1165 SLOG(LOG_DEBUG, TAG_VCC, "<<<< Result Message is NULL");
1166 vc_dbus_reconnect();
1167 result = VC_ERROR_TIMED_OUT;