From 75579a775b2387cdcf0c31bf09cd5a61893f61aa Mon Sep 17 00:00:00 2001 From: Sebastian Dransfeld Date: Fri, 2 Nov 2012 01:46:56 +0000 Subject: [PATCH] edbus: register interface before name Else will clients activating a service fail, as the dbus expects to know available interfaces on name request. SVN revision: 78811 --- legacy/edbus/src/examples/complex_types_server.c | 6 ++---- legacy/edbus/src/examples/server.c | 7 +++++-- 2 files changed, 7 insertions(+), 6 deletions(-) diff --git a/legacy/edbus/src/examples/complex_types_server.c b/legacy/edbus/src/examples/complex_types_server.c index 05bcb31175..b958a4ee5d 100644 --- a/legacy/edbus/src/examples/complex_types_server.c +++ b/legacy/edbus/src/examples/complex_types_server.c @@ -350,7 +350,6 @@ static const EDBus_Service_Interface_Desc iface_desc = { static void on_name_request(void *data, const EDBus_Message *msg, EDBus_Pending *pending) { - EDBus_Connection *conn = data; unsigned int flag; resp2 = malloc(sizeof(char) * 5); @@ -373,8 +372,6 @@ on_name_request(void *data, const EDBus_Message *msg, EDBus_Pending *pending) printf("error name already in use\n"); return; } - - edbus_service_interface_register(conn, PATH, &iface_desc); } int @@ -387,7 +384,8 @@ main(void) conn = edbus_connection_get(EDBUS_CONNECTION_TYPE_SESSION); - edbus_name_request(conn, BUS, EDBUS_NAME_REQUEST_FLAG_DO_NOT_QUEUE, on_name_request, conn); + edbus_service_interface_register(conn, PATH, &iface_desc); + edbus_name_request(conn, BUS, EDBUS_NAME_REQUEST_FLAG_DO_NOT_QUEUE, on_name_request, NULL); ecore_main_loop_begin(); diff --git a/legacy/edbus/src/examples/server.c b/legacy/edbus/src/examples/server.c index 56781650d9..d2e733dd04 100644 --- a/legacy/edbus/src/examples/server.c +++ b/legacy/edbus/src/examples/server.c @@ -195,6 +195,7 @@ on_name_request(void *data, const EDBus_Message *msg, EDBus_Pending *pending) EDBus_Service_Interface *iface; unsigned int flag; + iface = data; if (edbus_message_error_get(msg, NULL, NULL)) { printf("error on on_name_request\n"); @@ -213,7 +214,6 @@ on_name_request(void *data, const EDBus_Message *msg, EDBus_Pending *pending) return; } - iface = edbus_service_interface_register(conn, PATH, &iface_desc); ecore_timer_add(5, send_signal_alive, iface); ecore_timer_add(6, send_signal_hello, iface); } @@ -221,13 +221,16 @@ on_name_request(void *data, const EDBus_Message *msg, EDBus_Pending *pending) int main(void) { + EDBus_Service_Interface *iface; + ecore_init(); edbus_init(); conn = edbus_connection_get(EDBUS_CONNECTION_TYPE_SESSION); + iface = edbus_service_interface_register(conn, PATH, &iface_desc); edbus_name_request(conn, BUS, EDBUS_NAME_REQUEST_FLAG_DO_NOT_QUEUE, - on_name_request, NULL); + on_name_request, iface); ecore_main_loop_begin();