From: lucas Date: Fri, 13 Jul 2012 23:18:40 +0000 (+0000) Subject: e_dbus: Fix properties handling X-Git-Tag: 2.0_alpha~2^2~15 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=15c734cf864f8116a779e0408020f3b27557d7b7;p=framework%2Fuifw%2Fedbus.git e_dbus: Fix properties handling Fix cb_properties_get() and cb_properties_set() Patch by: José Roberto de Souza git-svn-id: svn+ssh://svn.enlightenment.org/var/svn/e/trunk/e_dbus@73835 7cbeb6ba-43b4-40fd-8cce-4c39aea84d33 --- diff --git a/ChangeLog b/ChangeLog index f927860..be23b06 100644 --- a/ChangeLog +++ b/ChangeLog @@ -65,3 +65,7 @@ * Use idler instead of idle_enterer for processing messages * Listen and update the 'sender unique name' of signals + +2012-07-13 José Roberto de Souza + + * Fix properties handling diff --git a/src/lib/dbus/e_dbus_object.c b/src/lib/dbus/e_dbus_object.c index 209749b..fef700f 100644 --- a/src/lib/dbus/e_dbus_object.c +++ b/src/lib/dbus/e_dbus_object.c @@ -115,10 +115,11 @@ cb_properties_get(E_DBus_Object *obj, DBusMessage *msg) DBusError err; int type; void *value; - char *property; + char *property, *interface; dbus_error_init(&err); - dbus_message_get_args(msg, &err, DBUS_TYPE_STRING, &property, DBUS_TYPE_INVALID); + dbus_message_get_args(msg, &err, DBUS_TYPE_STRING, &interface, DBUS_TYPE_STRING, + &property, DBUS_TYPE_INVALID); if (dbus_error_is_set(&err)) { @@ -134,7 +135,7 @@ cb_properties_get(E_DBus_Object *obj, DBusMessage *msg) if (dbus_type_is_basic(type)) { reply = dbus_message_new_method_return(msg); - dbus_message_iter_init_append(msg, &iter); + dbus_message_iter_init_append(reply, &iter); if (dbus_message_iter_open_container(&iter, DBUS_TYPE_VARIANT, e_dbus_basic_type_as_string(type), &sub)) { dbus_message_iter_append_basic(&sub, type, &value); @@ -158,10 +159,13 @@ cb_properties_set(E_DBus_Object *obj, DBusMessage *msg) DBusMessageIter iter, sub; int type; void *value; - char *property; + char *property, *interface; dbus_message_iter_init(msg, &iter); + dbus_message_iter_get_basic(&iter, &interface); + dbus_message_iter_next(&iter); dbus_message_iter_get_basic(&iter, &property); + dbus_message_iter_next(&iter); dbus_message_iter_recurse(&iter, &sub); type = dbus_message_iter_get_arg_type(&sub); if (dbus_type_is_basic(type)) @@ -198,8 +202,8 @@ e_dbus_object_init(void) } e_dbus_interface_method_add(introspectable_interface, "Introspect", "", "s", cb_introspect); - e_dbus_interface_method_add(properties_interface, "Get", "s", "v", cb_properties_get); - e_dbus_interface_method_add(properties_interface, "Set", "sv", "", cb_properties_set); + e_dbus_interface_method_add(properties_interface, "Get", "ss", "v", cb_properties_get); + e_dbus_interface_method_add(properties_interface, "Set", "ssv", "", cb_properties_set); return 1; }