Commit Graph

6769 Commits

Author SHA1 Message Date
Marcel Holtmann e292f142ad test: Remove unneeded semicolons in STK test script 2012-11-27 11:09:21 +01:00
Szymon Janc c091a5c5e7 gdbus: Remove not needed NULL pointer checks
g_strdup returns NULL if argument passed is NULL and there is no need
to double check that.
2012-11-26 12:59:48 +01:00
Syam Sidhardhan 682bf79a83 gdbus: Replace leading spaces with tabs
Trivial formatting fix.
2012-11-26 12:59:30 +01:00
Syam Sidhardhan 0581ec199c gdbus: Fix compilation error due to missing #defines
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-26 12:59:16 +01:00
Lucas De Marchi 2e6824dbb0 gdbus: Remove connection from pending_property functions
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-26 12:58:54 +01:00
Johan Hedberg 8aaa110370 gdbus: Fix invalid memory access during interface removal
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)
2012-11-26 12:58:38 +01:00
Johan Hedberg f9f49f5d42 gdbus: Add g_dbus_get_properties function
This function can be used to construct custom D-Bus messages containing
the properties for a specific interface on a given path.
2012-11-26 12:58:00 +01:00
Johan Hedberg 031189ffea gdbus: Add support for invalidated properties
If there's a pending property but its exists() callback returns false
the property should be considered invalidated and included in the
relevant list of the PropertiesChanged signal.
2012-11-26 12:57:43 +01:00
Johan Hedberg c4ec194ede gdbus: Fix processing pending properties in remove_interface() 2012-11-26 12:57:26 +01:00
Lucas De Marchi d1d2f6dbe1 gdbus: Fix up Properties.Set() code path
Minor fixes to make setter actually work:

	- Add propdata in pending_property_set
	- Break loop when we are removing propdata from list and we
	  found it
	- in_args and out_args were swapped
	- interface and method name arguments were swapped
2012-11-26 12:56:53 +01:00
Lucas De Marchi 7071d8a28e gdbus: Fix invalid memory access while unregistering
If an interface is added and removed on the same mailoop iteration,
ObjectManager would try to send InterfacesAdded signal while running the
idler because the interface was added to data->added list.

This is easily reproduced by forcing an error path in a plugin
registration, like on sap_server_register(), resulting in the following
error:

==11795== Invalid read of size 4
==11795==    at 0x496F592: dbus_message_iter_append_basic (dbus-message.c:2598)
==11795==    by 0x117B39: append_interface (object.c:554)
==11795==    by 0x48955E7: g_slist_foreach (gslist.c:840)
==11795==    by 0x11923B: process_changes (object.c:592)
==11795==    by 0x11956D: generic_unregister (object.c:980)
==11795==    by 0x4973BAC: _dbus_object_tree_unregister_and_unlock (dbus-object-tree.c:516)
==11795==    by 0x4965240: dbus_connection_unregister_object_path (dbus-connection.c:5776)
==11795==    by 0x1178A5: object_path_unref (object.c:1219)
==11795==    by 0x118517: g_dbus_unregister_interface (object.c:1344)
==11795==    by 0x19AF5B: sap_exit (sap.c:385)
==11795==    by 0x13E9E2: sap_server_register (server.c:1428)
==11795==    by 0x13C092: sap_server_probe (manager.c:44)

With this patch we don't send the InterfacesAdded signal, removing it
from data->added while unregistering.
2012-11-26 12:56:40 +01:00
Lucas De Marchi a8e02420b4 gdbus: Implement PropertiesChanged signal 2012-11-26 12:56:11 +01:00
Luiz Augusto von Dentz fd33855e53 gdbus: Simplify code for appending properties
This reuse append_properties for GetAll and GetManagedObjects
2012-11-26 12:55:45 +01:00
Luiz Augusto von Dentz 11ba5b9aa2 gdbus: Integrates ObjectManager with Properties interface
This appends the properties and its values when using ObjectManager.
2012-11-26 12:55:25 +01:00
Luiz Augusto von Dentz cf296a9da9 gdbus: Only export ObjectManager interface on root path
ObjectManager should be exported only in the root path and list all
the children paths.
2012-11-26 12:55:07 +01:00
Luiz Augusto von Dentz f28e6ae984 gdbus: Group interface changes to reduce the amount of signals emitted
InterfacesAdded and InterfacesRemoved can group all the interfaces
changes together in one message.
2012-11-26 12:54:45 +01:00
Luiz Augusto von Dentz 7db2a0bfcc gdbus: Add support for org.freedesktop.DBus.ObjectManager interface
This implements initial support for ObjectManager, it automatically adds
objects to its parents so no action is needed by daemons to get their
objects managed by this interface.

ObjectManager is part of D-Bus spec since revision 0.17:
http://dbus.freedesktop.org/doc/dbus-specification.html#standard-interfaces-objectmanager
2012-11-26 12:54:27 +01:00
Lucas De Marchi 8c634044ed gdbus: Add properties into Introspectable interface 2012-11-26 12:54:05 +01:00
Lucas De Marchi d87dcb6c5b gdbus: Implement DBus.Properties.Set method
Contrary to Get() and GetAll(), Set() is asynchronous so we pass an id
to the setter so later it can declare the Set() as successful or
otherwise.
2012-11-26 12:53:40 +01:00
Lucas De Marchi 1b7afd7b1e gdbus: Implement DBus.Properties.GetAll method 2012-11-26 12:53:23 +01:00
Lucas De Marchi 337e908edd gdbus: Implement DBus.Properties.Get method 2012-11-26 12:52:56 +01:00
Lucas De Marchi 1315c48085 gdbus: Add skeleton of DBus.Properties interface
This interface is responsible for handling properties of all objects in
a given path. Right now it only registers itself, doing nothing useful.
A conversion to this new layout will be done by subsequent patches.

org.freedesktop.org.DBus.Properties spec can be found at
http://dbus.freedesktop.org/doc/dbus-specification.html#standard-interfaces-properties
2012-11-26 12:52:23 +01:00
Lucas De Marchi cb44357b67 gdbus: Use macros to add annotations
Besides being more readable this way it avoids going over 80 chars.
2012-11-26 12:51:53 +01:00
Lucas De Marchi 0e1baf1997 gdbus: Move typedefs up
Move the typedefs up so they can be used by functions and callbacks.
2012-11-26 12:51:29 +01:00
Marcel Holtmann 55215c3113 unit: Fix SMS unit tests 2012-11-25 21:18:03 +01:00
Denis Kenzior 2528b74491 atmodem: Always quote data in CRSM write operations 2012-11-23 07:22:25 -06:00
Denis Kenzior 291f4e0bb0 atmodem: Support CRSM with paths
For GET STATUS and READ BINARY variations, support appending of the
optional path in the CRSM command
2012-11-23 07:22:25 -06:00
Denis Kenzior 736f44e0d3 sim: Read icons with a full SIM/USIM path 2012-11-23 07:22:25 -06:00
Denis Kenzior 6eb9542907 simfs: Handle optional EF paths 2012-11-23 07:22:25 -06:00
Denis Kenzior b2a9b8abb6 include: Tweak ofono_sim_read_bytes API
Reading of icons requires us to specify the path
2012-11-23 07:22:25 -06:00
Marcel Holtmann 67670a659f qmimodem: Add support for UIM service handling 2012-11-25 20:11:29 +01:00
Marcel Holtmann 6df6688f61 udev: Let Huawei detection also check for cdc_wdm drivers 2012-11-25 20:00:38 +01:00
Marcel Holtmann adf93dc436 udev: Use Qualcomm Gobi driver if QMI based modem 2012-11-25 20:00:07 +01:00
Marcel Holtmann 589a8997c0 udev: Handle USB descriptors from Vodafone K5005 modem 2012-11-25 19:57:43 +01:00
Marcel Holtmann 93688c390e gobi: Use UIM service is available 2012-11-25 19:56:42 +01:00
Marcel Holtmann 0a496ab8c0 sim: Assume CPHS files are in ADFusim 2012-11-25 15:34:41 +01:00
Marcel Holtmann 5e2953a21e test: Fix modem path handling for icon testing 2012-11-25 15:02:23 +01:00
Marcel Holtmann 200959af46 test: Allow STK testing without voice call manager 2012-11-25 10:20:15 +01:00
Marcel Holtmann 56e4798e1e qmimodem: Print error string instead of code if available 2012-11-25 10:19:40 +01:00
Marcel Holtmann 9b4d69cf8d qmimodem: Pretty print service name in debug logs 2012-11-25 00:05:54 +01:00
Marcel Holtmann 535e16c8a4 qmimodem: Fix debug printing of messages 2012-11-25 00:05:15 +01:00
Marcel Holtmann 7feb9e2711 qmimodem: Add helper for error message strings 2012-11-25 00:04:14 +01:00
Denis Kenzior 196183a3e5 unit: Add 2G and 3G path lookup tests 2012-11-22 10:26:34 -06:00
Denis Kenzior cc14e85fa6 unit: Fix Style 2012-11-22 10:26:34 -06:00
Denis Kenzior 5e68694a82 unit: Remove failing test
We removed the needed file id from the sim database.  It was not being
used.
2012-11-22 10:26:34 -06:00
Denis Kenzior a9296c18e9 simutil: Add 2G and 3G path lookup utilities 2012-11-22 10:26:34 -06:00
Denis Kenzior 5de557bc55 simfs: Update to the new SIM api 2012-11-22 10:26:34 -06:00
Denis Kenzior 19210edd3a sim: Update to the new sim reading API 2012-11-22 10:26:34 -06:00
Denis Kenzior 57692483a9 atmodem: Update sim driver to the new api 2012-11-22 10:26:34 -06:00
Denis Kenzior 180f91f6c9 qmi: Update sim-legacy driver to the new API 2012-11-22 10:26:34 -06:00