summaryrefslogtreecommitdiff
path: root/gdbus
AgeCommit message (Collapse)AuthorFilesLines
2013-02-23gdbus: Always unreference the message in g_dbus_send_message()Tomasz Bursztyka1-2/+3
A quick fix on g_dbus_send_message(), if check_signal() fails it returns FALSE without unreferencing the message as it should. This patch fixes it.
2013-02-15gdbus: Add g_dbus_proxy_set_removed_watchDenis Kenzior2-0/+20
2013-02-14gdbus: Fix missing PropertiesChanged signalVinicius Costa Gomes1-2/+5
If D-Bus ObjectManager is not supported, InterfacesAdded signal checking needs to be ignored otherwise PropertiesChanged signal will never be sent.
2013-02-11gdbus: Don't call property changed callback during client initMarcel Holtmann1-9/+10
When the client uses ObjectManager to init properties, do not call property changed callbacks. They should only be called once the proxy added has been successfully signaled since the proxy itself provides a full copy of available properties.
2013-02-01gdbus: Fix unpublished interface signal emissionJohan Hedberg1-0/+4
If we haven't published an interface yet (i.e. it's in the data->added list), we should just ignore any property changed indications as the values for the properties will anyway be part of the InterfacesAdded signal.
2013-01-20gdbus: Check for valid path before handling propertiesMarcel Holtmann1-0/+6
2013-01-06gdbus: Fix memory leak on properties_set()Anderson Lizardo1-1/+6
The pointer returned by dbus_message_iter_get_signature() must be freed with dbus_free(). Fixes this memory leak: ==1857== 16 bytes in 1 blocks are definitely lost in loss record 104 of 251 ==1857== at 0x402BF52: realloc (in /usr/lib/valgrind/vgpreload_memcheck-x86-linux.so) ==1857== by 0x415E286: dbus_realloc (in /lib/i386-linux-gnu/libdbus-1.so.3.5.8) ==1857== by 0x415E70B: ??? (in /lib/i386-linux-gnu/libdbus-1.so.3.5.8) ==1857== by 0x415F17B: ??? (in /lib/i386-linux-gnu/libdbus-1.so.3.5.8) ==1857== by 0x414CB33: dbus_message_iter_get_signature (in /lib/i386-linux-gnu/libdbus-1.so.3.5.8) ==1857== by 0x8053239: properties_set (object.c:899) ==1857== by 0x5FFFFF: ??? ==1857==
2013-01-05gdbus: Check signature of property value before calling setterMarcel Holtmann1-0/+5
2013-01-03gdbus: Don't include just added interfaces in GetManagedObjectsLucas De Marchi1-1/+7
If we received a call to ObjectManager.GetManagedObject we should not include in the response the interfaces in data->added. This is because it's not guaranteed that those interfaces will trigger an InterfacesAdded signal, which is the case if the interface is removed in the same mainloop iteration.
2013-01-03gdbus: Simplify generated introspectionLucas De Marchi1-65/+38
The generated introspection is not supposed to be read as is by human, so there's no point in printing the indentation or writing more code to use auto-close tags. If it's desired to read the raw xml file, user can always use other tools to transform the output such as "xmllint --format". This also fixes a missing </property> when property is deprecated.
2013-01-02gdbus: Hold client reference during get name owner replyMarcel Holtmann1-0/+4
2012-12-30gdbus: Call check_signals when sending signals with g_dbus_send_messageLuiz Augusto von Dentz1-0/+9
If message passed to g_dbus_send_message is a signal verify if it is a valid and there really exists an interface with respective signal name.
2012-12-30gdbus: Check if the interface being registered is validLuiz Augusto von Dentz1-6/+36
This prevent registering interfaces that are empty or have all members marked as experiemental.
2012-12-30gdbus: Introduce G_DBUS_PROPERTY_FLAG_EXPERIMENTALLuiz Augusto von Dentz2-18/+33
This flag can be used to mark properties as experimental, marked properties are disabled by default and can be enabled by setting G_DBUS_FLAG_ENABLE_EXPERIMENTAL using g_dbus_set_flags.
2012-12-30gdbus: Introduce G_DBUS_SIGNAL_FLAG_EXPERIMENTALLuiz Augusto von Dentz2-4/+23
This flag can be used to mark signals as experimental, marked signals are disabled by default and can be enabled by setting G_DBUS_FLAG_ENABLE_EXPERIMENTAL using g_dbus_set_flags.
2012-12-30gdbus: Introduce G_DBUS_METHOD_FLAG_EXPERIMENTALLuiz Augusto von Dentz2-3/+45
This flag can be used to mark methods as experimental, marked methods are disable by default and can be enabled by setting G_DBUS_FLAG_ENABLE_EXPERIMENTAL using g_dbus_set_flags.
2012-12-30gdbus: Include changed properties only once per signalMarcel Holtmann1-0/+3
2012-12-29gdbus: Update properties on D-Bus client re-connectionsMarcel Holtmann1-4/+22
2012-12-29gdbus: Add function to manually refresh propertiesMarcel Holtmann2-0/+85
2012-12-29gdbus: Add support for proxy property change notificationsMarcel Holtmann2-4/+30
2012-12-29gdbus: Fix handling of client connect/disconnect signalsMarcel Holtmann1-11/+12
2012-12-29gdbus: Protect standalone proxy creation with client referenceMarcel Holtmann1-10/+8
2012-12-27gdbus: Use object manager only if callback functions are setMarcel Holtmann1-8/+7
2012-12-27gdbus: Use client service name and not hardcoded org.bluezMarcel Holtmann1-1/+1
2012-12-27gdbus: Add support for creating D-Bus proxies without object managerMarcel Holtmann2-62/+147
2012-12-22gdbus: Avoid using g_ptr_array_new_full convenience functionMarcel Holtmann1-1/+2
The g_ptr_array_new_full function only got introduced with GLib 2.30 and to avoid requiring a newer GLib use g_ptr_array_set_free_func instead.
2012-12-19gdbus: Increase the method call timeout to 5 minutesMarcel Holtmann1-1/+3
2012-12-19gdbus: Add helper for sending async error repliesMarcel Holtmann2-0/+38
2012-12-19gdbus: Fix race condition with creating duplicate client proxiesMarcel Holtmann1-0/+23
2012-12-19gdbus: Fix issue with unref of client while parsing interfacesMarcel Holtmann1-0/+8
2012-12-19gdbus: Fix issue with unref of client in connect handlerMarcel Holtmann1-0/+8
2012-12-19gdbus: Add support for D-Bus client method callsMarcel Holtmann2-0/+82
2012-12-19gdbus: Add callback support for handling property changesMarcel Holtmann2-10/+31
2012-12-19gdbus: Handle property changed signals and update propertyMarcel Holtmann1-31/+107
2012-12-19gdbus: Set property changed filter match rule for each proxyMarcel Holtmann1-40/+57
2012-12-19gdbus: Use a GPtrArray for the match rulesMarcel Holtmann1-18/+24
2012-12-19gdbus: Add support for setting D-Bus client basic propertiesMarcel Holtmann2-0/+99
2012-12-19gdbus: Deep copy of variants also requires a signatureMarcel Holtmann1-2/+7
2012-12-19gdbus: Add support for complex D-Bus client propertiesMarcel Holtmann1-16/+46
2012-12-19gdbus: Add support for D-Bus client propertiesMarcel Holtmann2-3/+126
2012-12-19gdbus: Add support for D-Bus client proxiesMarcel Holtmann2-4/+343
2012-12-19gdbus: Add helper functions for simple D-Bus clientsMarcel Holtmann2-0/+355
2012-11-30gdbus: Add g_dbus_add_properties_watch functionLuiz Augusto von Dentz2-0/+33
Convenient function to create watches for D-Bus properties.
2012-11-29gdbus: Don't automatically attach ObjectManagerLucas De Marchi2-21/+36
Let each project attach the object manager interface instead of registering it automatically.
2012-11-29gdbus: Don't register DBus.Properties with no propertiesLucas De Marchi1-3/+6
Delay registering DBus.Properties interface until the moment there are properties on that path. This is needed for objects that currently don't expose any property to not export the interface.
2012-11-26gdbus: Remove not needed NULL pointer checksSzymon Janc1-2/+2
g_strdup returns NULL if argument passed is NULL and there is no need to double check that.
2012-11-26gdbus: Replace leading spaces with tabsSyam Sidhardhan1-4/+4
Trivial formatting fix.
2012-11-26gdbus: Fix compilation error due to missing #definesSyam Sidhardhan1-0/+8
Since these are simple #define strings, we are defining it here instead of upgrading to D-Bus 1.5 or later. Log: CC gdbus/object.o gdbus/object.c: In function ‘properties_set’: gdbus/object.c:876:7: error: ‘DBUS_ERROR_UNKNOWN_PROPERTY’ undeclared (first use in this function) gdbus/object.c:876:7: note: each undeclared identifier is reported only once for each function it appears in gdbus/object.c:881:6: error: ‘DBUS_ERROR_PROPERTY_READ_ONLY’ undeclared (first use in this function) make[1]: *** [gdbus/object.o] Error 1 make: *** [all] Error 2
2012-11-26gdbus: Remove connection from pending_property functionsLucas De Marchi2-20/+17
The reply to a DBus.Properties.Set() method call should go through the same D-Bus connection. Thus remove the DBusConnection parameter from the following functions: - g_dbus_pending_property_success() - g_dbus_pending_property_error_valist() - g_dbus_pending_property_error()
2012-11-26gdbus: Fix invalid memory access during interface removalJohan Hedberg1-6/+6
If an interface is removed from the root path during the same mainloop iteration that it was added we need to check for data->added before doing the check for data->parent == NULL in the remove_interface() function. Otherwise the added interface doesn't get removed from the data->added list and will result in accessing freed memory: ==337== Invalid read of size 8 ==337== at 0x4F65AFA: dbus_message_iter_append_basic (in /usr/lib64/libdbus-1.so.3.7.1) ==337== by 0x1247B5: append_interface (object.c:556) ==337== by 0x4C8DC5C: g_slist_foreach (gslist.c:840) ==337== by 0x1261F7: process_changes (object.c:594) ==337== by 0x126372: generic_unregister (object.c:997) ==337== by 0x4F69669: ??? (in /usr/lib64/libdbus-1.so.3.7.1) ==337== by 0x4F5CE51: dbus_connection_unregister_object_path (in /usr/lib64/libdbus-1.so.3.7.1) ==337== by 0x125E81: object_path_unref (object.c:1236) ==337== by 0x126136: g_dbus_unregister_interface (object.c:1361) ==337== by 0x14CDF0: service_exit (service.c:581) ==337== by 0x177556: plugin_cleanup (plugin.c:242) ==337== by 0x12221F: main (main.c:559) ==337== Address 0x5bc1550 is 0 bytes inside a block of size 56 free'd ==337== at 0x4A079AE: free (vg_replace_malloc.c:427) ==337== by 0x4C7850E: g_free (gmem.c:252) ==337== by 0x125DB0: remove_interface (object.c:671) ==337== by 0x125E3B: object_path_unref (object.c:1230) ==337== by 0x126136: g_dbus_unregister_interface (object.c:1361) ==337== by 0x14CDF0: service_exit (service.c:581) ==337== by 0x177556: plugin_cleanup (plugin.c:242) ==337== by 0x12221F: main (main.c:559)