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();
35 static Eina_Bool listener_event_callback(void* data, Ecore_Fd_Handler *fd_handler)
37 if (NULL == g_conn_listener) return ECORE_CALLBACK_RENEW;
39 dbus_connection_read_write_dispatch(g_conn_listener, 50);
41 DBusMessage* msg = NULL;
42 msg = dbus_connection_pop_message(g_conn_listener);
44 /* loop again if we haven't read a message */
46 return ECORE_CALLBACK_RENEW;
50 dbus_error_init(&err);
53 snprintf(if_name, 64, "%s", VC_CLIENT_SERVICE_INTERFACE);
55 if (dbus_message_is_method_call(msg, if_name, VCD_METHOD_HELLO)) {
56 SLOG(LOG_DEBUG, TAG_VCC, "===== Get Hello");
60 dbus_message_get_args(msg, &err, DBUS_TYPE_INT32, &pid, DBUS_TYPE_INVALID);
62 if (dbus_error_is_set(&err)) {
63 SLOG(LOG_ERROR, TAG_VCC, "[ERROR] Dbus Error (%s)", err.message);
64 dbus_error_free(&err);
68 SLOG(LOG_DEBUG, TAG_VCC, "<<<< vc get hello : pid(%d) ", pid);
72 SLOG(LOG_ERROR, TAG_VCC, "<<<< vc get hello : invalid pid ");
75 DBusMessage* reply = NULL;
76 reply = dbus_message_new_method_return(msg);
79 dbus_message_append_args(reply, DBUS_TYPE_INT32, &response, DBUS_TYPE_INVALID);
81 if (!dbus_connection_send(g_conn_listener, reply, NULL))
82 SLOG(LOG_ERROR, TAG_VCC, ">>>> vc get hello : fail to send reply");
84 SLOG(LOG_DEBUG, TAG_VCC, ">>>> vc get hello : result(%d)", response);
86 dbus_connection_flush(g_conn_listener);
87 dbus_message_unref(reply);
89 SLOG(LOG_ERROR, TAG_VCC, ">>>> vc get hello : fail to create reply message");
92 SLOG(LOG_DEBUG, TAG_VCC, "=====");
93 SLOG(LOG_DEBUG, TAG_VCC, " ");
94 } /* VCD_METHOD_HELLO */
96 else if (dbus_message_is_method_call(msg, if_name, VCD_METHOD_RESULT)) {
97 SLOG(LOG_DEBUG, TAG_VCC, "===== Get Client Result");
102 reply = dbus_message_new_method_return(msg);
105 if (!dbus_connection_send(g_conn_listener, reply, NULL))
106 SLOG(LOG_ERROR, TAG_VCC, ">>>> vc get result : fail to send reply");
108 SLOG(LOG_DEBUG, TAG_VCC, ">>>> vc get result");
110 dbus_connection_flush(g_conn_listener);
111 dbus_message_unref(reply);
113 SLOG(LOG_ERROR, TAG_VCC, ">>>> vc get result : fail to create reply message");
117 SLOG(LOG_DEBUG, TAG_VCC, "=====");
118 SLOG(LOG_DEBUG, TAG_VCC, " ");
120 }/* VCD_METHOD_RESULT */
122 else if (dbus_message_is_method_call(msg, if_name, VCD_METHOD_ERROR)) {
123 SLOG(LOG_DEBUG, TAG_VCC, "===== Get Error");
128 dbus_message_get_args(msg, &err,
129 DBUS_TYPE_INT32, &pid,
130 DBUS_TYPE_INT32, &reason,
131 DBUS_TYPE_STRING, &err_msg,
134 if (dbus_error_is_set(&err)) {
135 SLOG(LOG_ERROR, TAG_VCC, "<<<< vc Get Error message : Get arguments error (%s)", err.message);
136 dbus_error_free(&err);
138 SLOG(LOG_DEBUG, TAG_VCC, "<<<< vc Get Error message : pid(%d), reason(%d), msg(%s)", pid, reason, err_msg);
139 __vc_cb_error(pid, reason);
143 reply = dbus_message_new_method_return(msg);
146 if (!dbus_connection_send(g_conn_listener, reply, NULL))
147 SLOG(LOG_ERROR, TAG_VCC, ">>>> vc Error message : fail to send reply");
149 SLOG(LOG_DEBUG, TAG_VCC, ">>>> vc Error message");
151 dbus_connection_flush(g_conn_listener);
152 dbus_message_unref(reply);
154 SLOG(LOG_ERROR, TAG_VCC, ">>>> vc Error message : fail to create reply message");
158 SLOG(LOG_DEBUG, TAG_VCC, "=====");
159 SLOG(LOG_DEBUG, TAG_VCC, " ");
160 }/* VCD_METHOD_ERROR */
162 /* free the message */
163 dbus_message_unref(msg);
165 return ECORE_CALLBACK_PASS_ON;
168 int vc_dbus_open_connection()
170 if (NULL != g_conn_sender && NULL != g_conn_listener) {
171 SLOG(LOG_WARN, TAG_VCC, "already existed connection ");
178 /* initialise the error value */
179 dbus_error_init(&err);
181 /* connect to the DBUS system bus, and check for errors */
182 g_conn_sender = dbus_bus_get_private(DBUS_BUS_SYSTEM, &err);
184 if (dbus_error_is_set(&err)) {
185 SLOG(LOG_ERROR, TAG_VCC, "Dbus Connection Error (%s)", err.message);
186 dbus_error_free(&err);
189 if (NULL == g_conn_sender) {
190 SLOG(LOG_ERROR, TAG_VCC, "Fail to get dbus connection ");
191 return VC_ERROR_OPERATION_FAILED;
194 g_conn_listener = dbus_bus_get_private(DBUS_BUS_SYSTEM, &err);
196 if (dbus_error_is_set(&err)) {
197 SLOG(LOG_ERROR, TAG_VCC, "Dbus Connection Error (%s)", err.message);
198 dbus_error_free(&err);
201 if (NULL == g_conn_listener) {
202 SLOG(LOG_ERROR, TAG_VCC, "Fail to get dbus connection ");
203 return VC_ERROR_OPERATION_FAILED;
208 char service_name[64];
209 memset(service_name, '\0', 64);
210 snprintf(service_name, 64, "%s", VC_CLIENT_SERVICE_NAME);
212 SLOG(LOG_DEBUG, TAG_VCC, "service name is %s", service_name);
214 /* register our name on the bus, and check for errors */
215 ret = dbus_bus_request_name(g_conn_listener, service_name, DBUS_NAME_FLAG_REPLACE_EXISTING, &err);
217 if (dbus_error_is_set(&err)) {
218 SLOG(LOG_ERROR, TAG_VCC, "Name Error (%s)", err.message);
219 dbus_error_free(&err);
222 if (DBUS_REQUEST_NAME_REPLY_PRIMARY_OWNER != ret) {
223 SLOG(LOG_ERROR, TAG_VCC, "fail dbus_bus_request_name()");
227 if( NULL != g_fd_handler ) {
228 SLOG(LOG_WARN, TAG_VCC, "The handler already exists.");
233 snprintf(rule, 128, "type='signal',interface='%s'", VC_CLIENT_SERVICE_INTERFACE);
235 /* add a rule for which messages we want to see */
236 dbus_bus_add_match(g_conn_listener, rule, &err);
237 dbus_connection_flush(g_conn_listener);
239 if (dbus_error_is_set(&err))
241 SLOG(LOG_ERROR, TAG_VCC, "Match Error (%s)", err.message);
242 dbus_error_free(&err);
243 return VC_ERROR_OPERATION_FAILED;
247 if (1 != dbus_connection_get_unix_fd(g_conn_listener, &fd)) {
248 SLOG(LOG_ERROR, TAG_VCC, "fail to get fd from dbus ");
249 return VC_ERROR_OPERATION_FAILED;
251 SLOG(LOG_DEBUG, TAG_VCC, "Get fd from dbus : %d", fd);
254 g_fd_handler = ecore_main_fd_handler_add(fd, ECORE_FD_READ, (Ecore_Fd_Cb)listener_event_callback, g_conn_listener, NULL, NULL);
255 if (NULL == g_fd_handler) {
256 SLOG(LOG_ERROR, TAG_VCC, "fail to get fd handler from ecore ");
257 return VC_ERROR_OPERATION_FAILED;
263 int vc_dbus_close_connection()
266 dbus_error_init(&err);
268 if (NULL != g_fd_handler) {
269 ecore_main_fd_handler_del(g_fd_handler);
275 char service_name[64];
276 memset(service_name, '\0', 64);
277 snprintf(service_name, 64, "%s", VC_CLIENT_SERVICE_NAME);
279 dbus_bus_release_name(g_conn_listener, service_name, &err);
281 if (dbus_error_is_set(&err)) {
282 SLOG(LOG_ERROR, TAG_VCC, "[ERROR] Dbus Error (%s)", err.message);
283 dbus_error_free(&err);
286 g_conn_sender = NULL;
287 g_conn_listener = NULL;
292 int vc_dbus_reconnect()
294 bool sender_connected = dbus_connection_get_is_connected(g_conn_sender);
295 bool listener_connected = dbus_connection_get_is_connected(g_conn_listener);
296 SLOG(LOG_DEBUG, TAG_VCC, "[DBUS] Sender(%s) Listener(%s)",
297 sender_connected ? "Connected" : "Not connected", listener_connected ? "Connected" : "Not connected");
299 if (false == sender_connected || false == listener_connected) {
300 vc_dbus_close_connection();
302 if (0 != vc_dbus_open_connection()) {
303 SLOG(LOG_ERROR, TAG_VCC, "[ERROR] Fail to reconnect");
307 SLOG(LOG_DEBUG, TAG_VCC, "[DBUS] Reconnect");
312 int vc_dbus_request_hello()
316 msg = dbus_message_new_method_call(
317 VC_SERVER_SERVICE_NAME,
318 VC_SERVER_SERVICE_OBJECT_PATH,
319 VC_SERVER_SERVICE_INTERFACE,
323 SLOG(LOG_ERROR, TAG_VCC, ">>>> Request vc hello : Fail to make message");
324 return VC_ERROR_OPERATION_FAILED;
328 dbus_error_init(&err);
330 DBusMessage* result_msg = NULL;
333 result_msg = dbus_connection_send_with_reply_and_block(g_conn_sender, msg, 500, &err);
335 if (dbus_error_is_set(&err)) {
336 dbus_error_free(&err);
339 dbus_message_unref(msg);
341 if (NULL != result_msg) {
342 dbus_message_unref(result_msg);
345 result = VC_ERROR_TIMED_OUT;
352 int vc_dbus_request_initialize(int pid, int* mgr_pid)
356 msg = dbus_message_new_method_call(
357 VC_SERVER_SERVICE_NAME,
358 VC_SERVER_SERVICE_OBJECT_PATH,
359 VC_SERVER_SERVICE_INTERFACE,
360 VC_METHOD_INITIALIZE);
363 SLOG(LOG_ERROR, TAG_VCC, ">>>> vc initialize : Fail to make message ");
364 return VC_ERROR_OPERATION_FAILED;
366 SLOG(LOG_DEBUG, TAG_VCC, ">>>> vc initialize : pid(%d)", pid);
369 dbus_message_append_args( msg,
370 DBUS_TYPE_INT32, &pid,
374 dbus_error_init(&err);
376 DBusMessage* result_msg;
377 int result = VC_ERROR_OPERATION_FAILED;
379 result_msg = dbus_connection_send_with_reply_and_block(g_conn_sender, msg, g_waiting_time, &err);
380 dbus_message_unref(msg);
382 if (dbus_error_is_set(&err)) {
383 SLOG(LOG_ERROR, TAG_VCC, "[ERROR] Dbus Error (%s)", err.message);
384 dbus_error_free(&err);
387 if (NULL != result_msg) {
389 dbus_message_get_args(result_msg, &err,
390 DBUS_TYPE_INT32, &result,
391 DBUS_TYPE_INT32, &tmp,
394 if (dbus_error_is_set(&err)) {
395 SLOG(LOG_ERROR, TAG_VCC, "<<<< Get arguments error (%s)", err.message);
396 dbus_error_free(&err);
397 result = VC_ERROR_OPERATION_FAILED;
400 dbus_message_unref(result_msg);
404 SLOG(LOG_DEBUG, TAG_VCC, "<<<< vc initialize : result = %d mgr = %d", result, *mgr_pid);
406 SLOG(LOG_ERROR, TAG_VCC, "<<<< vc initialize : result = %d", result);
409 SLOG(LOG_ERROR, TAG_VCC, "<<<< Result message is NULL ");
411 result = VC_ERROR_TIMED_OUT;
417 int vc_dbus_request_finalize(int pid)
421 msg = dbus_message_new_method_call(
422 VC_SERVER_SERVICE_NAME,
423 VC_SERVER_SERVICE_OBJECT_PATH,
424 VC_SERVER_SERVICE_INTERFACE,
428 SLOG(LOG_ERROR, TAG_VCC, ">>>> vc finalize : Fail to make message ");
429 return VC_ERROR_OPERATION_FAILED;
431 SLOG(LOG_DEBUG, TAG_VCC, ">>>> vc finalize : pid(%d)", pid);
434 dbus_message_append_args(msg, DBUS_TYPE_INT32, &pid, DBUS_TYPE_INVALID);
437 dbus_error_init(&err);
439 DBusMessage* result_msg;
440 int result = VC_ERROR_OPERATION_FAILED;
442 result_msg = dbus_connection_send_with_reply_and_block(g_conn_sender, msg, g_waiting_time, &err);
443 dbus_message_unref(msg);
445 if (dbus_error_is_set(&err)) {
446 SLOG(LOG_ERROR, TAG_VCC, "[ERROR] Dbus Error (%s)", err.message);
447 dbus_error_free(&err);
450 if (NULL != result_msg) {
451 dbus_message_get_args(result_msg, &err,
452 DBUS_TYPE_INT32, &result,
455 if (dbus_error_is_set(&err)) {
456 SLOG(LOG_ERROR, TAG_VCC, "<<<< Get arguments error (%s)", err.message);
457 dbus_error_free(&err);
458 result = VC_ERROR_OPERATION_FAILED;
461 dbus_message_unref(result_msg);
464 SLOG(LOG_DEBUG, TAG_VCC, "<<<< vc finalize : result = %d", result);
466 SLOG(LOG_ERROR, TAG_VCC, "<<<< vc finalize : result = %d", result);
469 SLOG(LOG_ERROR, TAG_VCC, "<<<< Result message is NULL ");
471 result = VC_ERROR_TIMED_OUT;
477 int vc_dbus_request_set_exclusive_command(int pid, bool value)
481 msg = dbus_message_new_method_call(
482 VC_SERVER_SERVICE_NAME,
483 VC_SERVER_SERVICE_OBJECT_PATH,
484 VC_SERVER_SERVICE_INTERFACE,
485 VC_METHOD_SET_EXCLUSIVE_CMD);
488 SLOG(LOG_ERROR, TAG_VCC, ">>>> vc set exclusive command : Fail to make message");
489 return VC_ERROR_OPERATION_FAILED;
491 SLOG(LOG_DEBUG, TAG_VCC, ">>>> vc set exclusive command : pid(%d)", pid);
496 dbus_message_append_args( msg,
497 DBUS_TYPE_INT32, &pid,
498 DBUS_TYPE_INT32, &temp,
502 dbus_error_init(&err);
504 DBusMessage* result_msg;
505 int result = VC_ERROR_OPERATION_FAILED;
507 result_msg = dbus_connection_send_with_reply_and_block(g_conn_sender, msg, g_waiting_time, &err);
508 dbus_message_unref(msg);
510 if (dbus_error_is_set(&err)) {
511 SLOG(LOG_ERROR, TAG_VCC, "[ERROR] Dbus Error (%s)", err.message);
512 dbus_error_free(&err);
515 if (NULL != result_msg) {
516 dbus_message_get_args(result_msg, &err,
517 DBUS_TYPE_INT32, &result,
520 if (dbus_error_is_set(&err)) {
521 SLOG(LOG_ERROR, TAG_VCC, "<<<< Get arguments error (%s)", err.message);
522 dbus_error_free(&err);
523 result = VC_ERROR_OPERATION_FAILED;
525 dbus_message_unref(result_msg);
528 SLOG(LOG_DEBUG, TAG_VCC, "<<<< vc set exclusive command : result = %d", result);
530 SLOG(LOG_DEBUG, TAG_VCC, "<<<< vc set exclusive command : result = %d", result);
533 SLOG(LOG_ERROR, TAG_VCC, "<<<< Result message is NULL");
535 result = VC_ERROR_TIMED_OUT;
541 int vc_dbus_request_set_command(int pid, vc_cmd_type_e cmd_type)
545 msg = dbus_message_new_method_call(
546 VC_SERVER_SERVICE_NAME,
547 VC_SERVER_SERVICE_OBJECT_PATH,
548 VC_SERVER_SERVICE_INTERFACE,
549 VC_METHOD_SET_COMMAND);
552 SLOG(LOG_ERROR, TAG_VCC, ">>>> vc set command : Fail to make message");
553 return VC_ERROR_OPERATION_FAILED;
555 SLOG(LOG_DEBUG, TAG_VCC, ">>>> vc set command : pid(%d)", pid);
558 dbus_message_append_args( msg,
559 DBUS_TYPE_INT32, &pid,
560 DBUS_TYPE_INT32, &cmd_type,
564 dbus_error_init(&err);
566 DBusMessage* result_msg;
567 int result = VC_ERROR_OPERATION_FAILED;
569 result_msg = dbus_connection_send_with_reply_and_block(g_conn_sender, msg, g_waiting_time, &err);
570 dbus_message_unref(msg);
572 if (dbus_error_is_set(&err)) {
573 SLOG(LOG_ERROR, TAG_VCC, "[ERROR] Dbus Error (%s)", err.message);
574 dbus_error_free(&err);
577 if (NULL != result_msg) {
578 dbus_message_get_args(result_msg, &err,
579 DBUS_TYPE_INT32, &result,
582 if (dbus_error_is_set(&err)) {
583 SLOG(LOG_ERROR, TAG_VCC, "<<<< Get arguments error (%s)", err.message);
584 dbus_error_free(&err);
585 result = VC_ERROR_OPERATION_FAILED;
587 dbus_message_unref(result_msg);
590 SLOG(LOG_DEBUG, TAG_VCC, "<<<< vc set command : result = %d", result);
592 SLOG(LOG_ERROR, TAG_VCC, "<<<< vc set command : result = %d", result);
595 SLOG(LOG_ERROR, TAG_VCC, "<<<< Result message is NULL");
597 result = VC_ERROR_TIMED_OUT;
603 int vc_dbus_request_unset_command(int pid, vc_cmd_type_e cmd_type)
607 msg = dbus_message_new_method_call(
608 VC_SERVER_SERVICE_NAME,
609 VC_SERVER_SERVICE_OBJECT_PATH,
610 VC_SERVER_SERVICE_INTERFACE,
611 VC_METHOD_UNSET_COMMAND);
614 SLOG(LOG_ERROR, TAG_VCC, ">>>> vc unset command : Fail to make message");
615 return VC_ERROR_OPERATION_FAILED;
617 SLOG(LOG_DEBUG, TAG_VCC, ">>>> vc unset command : pid(%d), type(%d)", pid, cmd_type);
620 dbus_message_append_args( msg,
621 DBUS_TYPE_INT32, &pid,
622 DBUS_TYPE_INT32, &cmd_type,
626 dbus_error_init(&err);
628 DBusMessage* result_msg;
629 int result = VC_ERROR_OPERATION_FAILED;
631 result_msg = dbus_connection_send_with_reply_and_block(g_conn_sender, msg, g_waiting_time, &err);
632 dbus_message_unref(msg);
634 if (dbus_error_is_set(&err)) {
635 SLOG(LOG_ERROR, TAG_VCC, "[ERROR] Dbus Error (%s)", err.message);
636 dbus_error_free(&err);
639 if (NULL != result_msg) {
640 dbus_message_get_args(result_msg, &err,
641 DBUS_TYPE_INT32, &result,
644 if (dbus_error_is_set(&err)) {
645 SLOG(LOG_ERROR, TAG_VCC, "<<<< Get arguments error (%s)", err.message);
646 dbus_error_free(&err);
647 result = VC_ERROR_OPERATION_FAILED;
649 dbus_message_unref(result_msg);
652 SLOG(LOG_DEBUG, TAG_VCC, "<<<< vc unset command : result = %d", result);
654 SLOG(LOG_ERROR, TAG_VCC, "<<<< vc unset command : result = %d", result);
657 SLOG(LOG_ERROR, TAG_VCC, "<<<< Result message is NULL");
659 result = VC_ERROR_TIMED_OUT;
666 int vc_dbus_request_start(int pid, int silence)
670 /* create a signal & check for errors */
671 msg = dbus_message_new_method_call(
672 VC_SERVER_SERVICE_NAME,
673 VC_SERVER_SERVICE_OBJECT_PATH,
674 VC_SERVER_SERVICE_INTERFACE,
675 VC_METHOD_REQUEST_START);
678 SLOG(LOG_ERROR, TAG_VCC, ">>>> vc start : Fail to make message ");
679 return VC_ERROR_OPERATION_FAILED;
681 SLOG(LOG_DEBUG, TAG_VCC, ">>>> vc start : pid(%d), silence(%d)", pid, silence);
684 DBusMessageIter args;
685 dbus_message_iter_init_append(msg, &args);
688 dbus_message_iter_append_basic(&args, DBUS_TYPE_INT32, &(pid));
689 dbus_message_iter_append_basic(&args, DBUS_TYPE_INT32, &(silence));
692 dbus_error_init(&err);
694 DBusMessage* result_msg;
695 int result = VC_ERROR_OPERATION_FAILED;
697 result_msg = dbus_connection_send_with_reply_and_block(g_conn_sender, msg, g_waiting_time, &err);
698 dbus_message_unref(msg);
700 if (dbus_error_is_set(&err)) {
701 SLOG(LOG_ERROR, TAG_VCC, "[ERROR] Dbus Error (%s)", err.message);
702 dbus_error_free(&err);
705 if (NULL != result_msg) {
706 dbus_message_get_args(result_msg, &err,
707 DBUS_TYPE_INT32, &result,
710 if (dbus_error_is_set(&err)) {
711 SLOG(LOG_ERROR, TAG_VCC, "<<<< Get arguments error (%s)", err.message);
712 dbus_error_free(&err);
713 result = VC_ERROR_OPERATION_FAILED;
715 dbus_message_unref(result_msg);
718 SLOG(LOG_DEBUG, TAG_VCC, "<<<< vc start : result = %d", result);
720 SLOG(LOG_ERROR, TAG_VCC, "<<<< vc start : result = %d", result);
723 SLOG(LOG_DEBUG, TAG_VCC, "<<<< Result Message is NULL");
725 result = VC_ERROR_TIMED_OUT;
731 int vc_dbus_request_stop(int pid)
735 /* create a signal & check for errors */
736 msg = dbus_message_new_method_call(
737 VC_SERVER_SERVICE_NAME,
738 VC_SERVER_SERVICE_OBJECT_PATH,
739 VC_SERVER_SERVICE_INTERFACE,
740 VC_METHOD_REQUEST_STOP);
743 SLOG(LOG_ERROR, TAG_VCC, ">>>> vc stop : Fail to make message ");
744 return VC_ERROR_OPERATION_FAILED;
746 SLOG(LOG_DEBUG, TAG_VCC, ">>>> vc stop : pid(%d)", pid);
749 dbus_message_append_args(msg,
750 DBUS_TYPE_INT32, &pid,
754 dbus_error_init(&err);
756 DBusMessage* result_msg;
757 int result = VC_ERROR_OPERATION_FAILED;
759 result_msg = dbus_connection_send_with_reply_and_block(g_conn_sender, msg, g_waiting_time, &err);
760 dbus_message_unref(msg);
762 if (dbus_error_is_set(&err)) {
763 SLOG(LOG_ERROR, TAG_VCC, "[ERROR] Dbus Error (%s)", err.message);
764 dbus_error_free(&err);
767 if (NULL != result_msg) {
768 dbus_message_get_args(result_msg, &err,
769 DBUS_TYPE_INT32, &result,
772 if (dbus_error_is_set(&err)) {
773 SLOG(LOG_ERROR, TAG_VCC, "<<<< Get arguments error (%s)", err.message);
774 dbus_error_free(&err);
775 result = VC_ERROR_OPERATION_FAILED;
777 dbus_message_unref(result_msg);
780 SLOG(LOG_DEBUG, TAG_VCC, "<<<< vc stop : result = %d", result);
782 SLOG(LOG_ERROR, TAG_VCC, "<<<< vc stop : result = %d", result);
785 SLOG(LOG_DEBUG, TAG_VCC, "<<<< Result Message is NULL");
787 result = VC_ERROR_TIMED_OUT;
793 int vc_dbus_request_cancel(int pid)
797 /* create a signal & check for errors */
798 msg = dbus_message_new_method_call(
799 VC_SERVER_SERVICE_NAME,
800 VC_SERVER_SERVICE_OBJECT_PATH, /* object name of the signal */
801 VC_SERVER_SERVICE_INTERFACE, /* interface name of the signal */
802 VC_METHOD_REQUEST_CANCEL); /* name of the signal */
805 SLOG(LOG_ERROR, TAG_VCC, ">>>> vc cancel : Fail to make message ");
806 return VC_ERROR_OPERATION_FAILED;
808 SLOG(LOG_DEBUG, TAG_VCC, ">>>> vc cancel : pid(%d)", pid);
811 dbus_message_append_args(msg,
812 DBUS_TYPE_INT32, &pid,
816 dbus_error_init(&err);
818 DBusMessage* result_msg;
819 int result = VC_ERROR_OPERATION_FAILED;
821 result_msg = dbus_connection_send_with_reply_and_block(g_conn_sender, msg, g_waiting_time, &err);
822 dbus_message_unref(msg);
824 if (dbus_error_is_set(&err)) {
825 SLOG(LOG_ERROR, TAG_VCC, "[ERROR] Dbus Error (%s)", err.message);
826 dbus_error_free(&err);
829 if (NULL != result_msg) {
830 dbus_message_get_args(result_msg, &err,
831 DBUS_TYPE_INT32, &result,
834 if (dbus_error_is_set(&err)) {
835 SLOG(LOG_ERROR, TAG_VCC, "<<<< Get arguments error (%s)", err.message);
836 dbus_error_free(&err);
837 result = VC_ERROR_OPERATION_FAILED;
839 dbus_message_unref(result_msg);
842 SLOG(LOG_DEBUG, TAG_VCC, "<<<< vc cancel : result = %d", result);
844 SLOG(LOG_ERROR, TAG_VCC, "<<<< vc cancel : result = %d", result);
847 SLOG(LOG_DEBUG, TAG_VCC, "<<<< Result Message is NULL");
849 result = VC_ERROR_TIMED_OUT;
857 int vc_dbus_request_auth_enable(int pid, int mgr_pid)
861 char service_name[64] = {0,};
862 char object_path[64] = {0,};
863 char target_if_name[128] = {0,};
865 snprintf(service_name, 64, "%s", VC_MANAGER_SERVICE_NAME);
866 snprintf(object_path, 64, "%s", VC_MANAGER_SERVICE_OBJECT_PATH);
867 snprintf(target_if_name, 128, "%s", VC_MANAGER_SERVICE_INTERFACE);
869 /* create a signal & check for errors */
870 msg = dbus_message_new_method_call(
872 object_path, /* object name of the signal */
873 target_if_name, /* interface name of the signal */
874 VC_METHOD_AUTH_ENABLE); /* name of the signal */
877 SLOG(LOG_ERROR, TAG_VCC, ">>>> vc auth enable : Fail to make message ");
878 return VC_ERROR_OPERATION_FAILED;
880 SLOG(LOG_DEBUG, TAG_VCC, ">>>> vc auth enable : pid(%d)", pid);
883 dbus_message_append_args(msg,
884 DBUS_TYPE_INT32, &pid,
888 dbus_error_init(&err);
890 DBusMessage* result_msg;
891 int result = VC_ERROR_OPERATION_FAILED;
893 result_msg = dbus_connection_send_with_reply_and_block(g_conn_sender, msg, g_waiting_time, &err);
894 dbus_message_unref(msg);
896 if (dbus_error_is_set(&err)) {
897 SLOG(LOG_ERROR, TAG_VCC, "[ERROR] Dbus Error (%s)", err.message);
898 dbus_error_free(&err);
901 if (NULL != result_msg) {
902 dbus_message_get_args(result_msg, &err,
903 DBUS_TYPE_INT32, &result,
906 if (dbus_error_is_set(&err)) {
907 SLOG(LOG_ERROR, TAG_VCC, "<<<< Get arguments error (%s)", err.message);
908 dbus_error_free(&err);
909 result = VC_ERROR_OPERATION_FAILED;
911 dbus_message_unref(result_msg);
914 SLOG(LOG_DEBUG, TAG_VCC, "<<<< vc auth enable : result = %d", result);
916 SLOG(LOG_ERROR, TAG_VCC, "<<<< vc auth enable : result = %d", result);
919 SLOG(LOG_DEBUG, TAG_VCC, "<<<< Result Message is NULL");
921 result = VC_ERROR_TIMED_OUT;
927 int vc_dbus_request_auth_disable(int pid, int mgr_pid)
931 char service_name[64] = {0,};
932 char object_path[64] = {0,};
933 char target_if_name[128] = {0,};
935 snprintf(service_name, 64, "%s", VC_MANAGER_SERVICE_NAME);
936 snprintf(object_path, 64, "%s", VC_MANAGER_SERVICE_OBJECT_PATH);
937 snprintf(target_if_name, 128, "%s", VC_MANAGER_SERVICE_INTERFACE);
939 /* create a signal & check for errors */
940 msg = dbus_message_new_method_call(
942 object_path, /* object name of the signal */
943 target_if_name, /* interface name of the signal */
944 VC_METHOD_AUTH_DISABLE); /* name of the signal */
947 SLOG(LOG_ERROR, TAG_VCC, ">>>> vc auth disable : Fail to make message ");
948 return VC_ERROR_OPERATION_FAILED;
950 SLOG(LOG_DEBUG, TAG_VCC, ">>>> vc auth disable : pid(%d)", pid);
953 dbus_message_append_args(msg,
954 DBUS_TYPE_INT32, &pid,
958 dbus_error_init(&err);
960 DBusMessage* result_msg;
961 int result = VC_ERROR_OPERATION_FAILED;
963 result_msg = dbus_connection_send_with_reply_and_block(g_conn_sender, msg, g_waiting_time, &err);
964 dbus_message_unref(msg);
966 if (dbus_error_is_set(&err)) {
967 SLOG(LOG_ERROR, TAG_VCC, "[ERROR] Dbus Error (%s)", err.message);
968 dbus_error_free(&err);
971 if (NULL != result_msg) {
972 dbus_message_get_args(result_msg, &err,
973 DBUS_TYPE_INT32, &result,
976 if (dbus_error_is_set(&err)) {
977 SLOG(LOG_ERROR, TAG_VCC, "<<<< Get arguments error (%s)", err.message);
978 dbus_error_free(&err);
979 result = VC_ERROR_OPERATION_FAILED;
981 dbus_message_unref(result_msg);
984 SLOG(LOG_DEBUG, TAG_VCC, "<<<< vc auth disable : result = %d", result);
986 SLOG(LOG_ERROR, TAG_VCC, "<<<< vc auth disable : result = %d", result);
989 SLOG(LOG_DEBUG, TAG_VCC, "<<<< Result Message is NULL");
991 result = VC_ERROR_TIMED_OUT;
997 int vc_dbus_request_auth_start(int pid, int mgr_pid)
1001 char service_name[64] = {0,};
1002 char object_path[64] = {0,};
1003 char target_if_name[128] = {0,};
1005 snprintf(service_name, 64, "%s", VC_MANAGER_SERVICE_NAME);
1006 snprintf(object_path, 64, "%s", VC_MANAGER_SERVICE_OBJECT_PATH);
1007 snprintf(target_if_name, 128, "%s", VC_MANAGER_SERVICE_INTERFACE);
1009 /* create a signal & check for errors */
1010 msg = dbus_message_new_method_call(
1014 VC_METHOD_AUTH_START);
1017 SLOG(LOG_ERROR, TAG_VCC, ">>>> vc auth start : Fail to make message ");
1018 return VC_ERROR_OPERATION_FAILED;
1020 SLOG(LOG_DEBUG, TAG_VCC, ">>>> vc auth start : pid(%d)", pid);
1023 DBusMessageIter args;
1024 dbus_message_iter_init_append(msg, &args);
1027 dbus_message_iter_append_basic(&args, DBUS_TYPE_INT32, &(pid));
1030 dbus_error_init(&err);
1032 DBusMessage* result_msg;
1033 int result = VC_ERROR_OPERATION_FAILED;
1035 result_msg = dbus_connection_send_with_reply_and_block(g_conn_sender, msg, g_waiting_time, &err);
1036 dbus_message_unref(msg);
1038 if (dbus_error_is_set(&err)) {
1039 SLOG(LOG_ERROR, TAG_VCC, "[ERROR] Dbus Error (%s)", err.message);
1040 dbus_error_free(&err);
1043 if (NULL != result_msg) {
1044 dbus_message_get_args(result_msg, &err,
1045 DBUS_TYPE_INT32, &result,
1048 if (dbus_error_is_set(&err)) {
1049 SLOG(LOG_ERROR, TAG_VCC, "<<<< Get arguments error (%s)", err.message);
1050 dbus_error_free(&err);
1051 result = VC_ERROR_OPERATION_FAILED;
1053 dbus_message_unref(result_msg);
1056 SLOG(LOG_DEBUG, TAG_VCC, "<<<< vc auth start : result = %d", result);
1058 SLOG(LOG_ERROR, TAG_VCC, "<<<< vc auth start : result = %d", result);
1061 SLOG(LOG_DEBUG, TAG_VCC, "<<<< Result Message is NULL");
1062 vc_dbus_reconnect();
1063 result = VC_ERROR_TIMED_OUT;
1069 int vc_dbus_request_auth_stop(int pid, int mgr_pid)
1073 char service_name[64] = {0,};
1074 char object_path[64] = {0,};
1075 char target_if_name[128] = {0,};
1077 snprintf(service_name, 64, "%s", VC_MANAGER_SERVICE_NAME);
1078 snprintf(object_path, 64, "%s", VC_MANAGER_SERVICE_OBJECT_PATH);
1079 snprintf(target_if_name, 128, "%s", VC_MANAGER_SERVICE_INTERFACE);
1081 /* create a signal & check for errors */
1082 msg = dbus_message_new_method_call(
1086 VC_METHOD_AUTH_STOP);
1089 SLOG(LOG_ERROR, TAG_VCC, ">>>> vc auth stop : Fail to make message ");
1090 return VC_ERROR_OPERATION_FAILED;
1092 SLOG(LOG_DEBUG, TAG_VCC, ">>>> vc auth stop : pid(%d)", pid);
1095 dbus_message_append_args(msg,
1096 DBUS_TYPE_INT32, &pid,
1100 dbus_error_init(&err);
1102 DBusMessage* result_msg;
1103 int result = VC_ERROR_OPERATION_FAILED;
1105 result_msg = dbus_connection_send_with_reply_and_block(g_conn_sender, msg, g_waiting_time, &err);
1106 dbus_message_unref(msg);
1108 if (dbus_error_is_set(&err)) {
1109 SLOG(LOG_ERROR, TAG_VCC, "[ERROR] Dbus Error (%s)", err.message);
1110 dbus_error_free(&err);
1113 if (NULL != result_msg) {
1114 dbus_message_get_args(result_msg, &err,
1115 DBUS_TYPE_INT32, &result,
1118 if (dbus_error_is_set(&err)) {
1119 SLOG(LOG_ERROR, TAG_VCC, "<<<< Get arguments error (%s)", err.message);
1120 dbus_error_free(&err);
1121 result = VC_ERROR_OPERATION_FAILED;
1123 dbus_message_unref(result_msg);
1126 SLOG(LOG_DEBUG, TAG_VCC, "<<<< vc auth stop : result = %d", result);
1128 SLOG(LOG_ERROR, TAG_VCC, "<<<< vc auth stop : result = %d", result);
1131 SLOG(LOG_DEBUG, TAG_VCC, "<<<< Result Message is NULL");
1132 vc_dbus_reconnect();
1133 result = VC_ERROR_TIMED_OUT;
1139 int vc_dbus_request_auth_cancel(int pid, int mgr_pid)
1143 char service_name[64] = {0,};
1144 char object_path[64] = {0,};
1145 char target_if_name[128] = {0,};
1147 snprintf(service_name, 64, "%s", VC_MANAGER_SERVICE_NAME);
1148 snprintf(object_path, 64, "%s", VC_MANAGER_SERVICE_OBJECT_PATH);
1149 snprintf(target_if_name, 128, "%s", VC_MANAGER_SERVICE_INTERFACE);
1151 /* create a signal & check for errors */
1152 msg = dbus_message_new_method_call(
1154 object_path, /* object name of the signal */
1155 target_if_name, /* interface name of the signal */
1156 VC_METHOD_AUTH_CANCEL); /* name of the signal */
1159 SLOG(LOG_ERROR, TAG_VCC, ">>>> vc auth cancel : Fail to make message ");
1160 return VC_ERROR_OPERATION_FAILED;
1162 SLOG(LOG_DEBUG, TAG_VCC, ">>>> vc auth cancel : pid(%d)", pid);
1165 dbus_message_append_args(msg,
1166 DBUS_TYPE_INT32, &pid,
1170 dbus_error_init(&err);
1172 DBusMessage* result_msg;
1173 int result = VC_ERROR_OPERATION_FAILED;
1175 result_msg = dbus_connection_send_with_reply_and_block(g_conn_sender, msg, g_waiting_time, &err);
1176 dbus_message_unref(msg);
1178 if (dbus_error_is_set(&err)) {
1179 SLOG(LOG_ERROR, TAG_VCC, "[ERROR] Dbus Error (%s)", err.message);
1180 dbus_error_free(&err);
1183 if (NULL != result_msg) {
1184 dbus_message_get_args(result_msg, &err,
1185 DBUS_TYPE_INT32, &result,
1188 if (dbus_error_is_set(&err)) {
1189 SLOG(LOG_ERROR, TAG_VCC, "<<<< Get arguments error (%s)", err.message);
1190 dbus_error_free(&err);
1191 result = VC_ERROR_OPERATION_FAILED;
1193 dbus_message_unref(result_msg);
1196 SLOG(LOG_DEBUG, TAG_VCC, "<<<< vc auth cancel : result = %d", result);
1198 SLOG(LOG_ERROR, TAG_VCC, "<<<< vc auth cancel : result = %d", result);
1201 SLOG(LOG_DEBUG, TAG_VCC, "<<<< Result Message is NULL");
1202 vc_dbus_reconnect();
1203 result = VC_ERROR_TIMED_OUT;