Commit Graph

6801 Commits

Author SHA1 Message Date
Marcel Holtmann 660bbf6766 build: Reorder default developer build options 2012-12-10 20:45:24 +01:00
Marcel Holtmann cd93708f3e build: Reorder configure options 2012-12-10 20:09:30 +01:00
Denis Kenzior 51633002d5 AUTHORS: Mention Mingli's contributions 2012-12-04 23:48:50 -06:00
Mingli Wu 911eeb6565 atmodem: remove pending idle callbacks at removal
If device probe and removal happen in short succession, it's possible
that the idle handler registered in the probe function doesn't run before
the device is removed.  In this case, the idle handler needs to be
unregistered so that it does not run and try to access the data that's
destroyed during the removal.
2012-12-04 23:48:14 -06:00
Denis Kenzior 25e7ecd3c7 atmodem: Re-work the CBS driver
We might have mis-interpreted how 27.007 intends for CBS to work.  After
studying the implementation notes of the IMC 6260 modem, the spec intent
made a little bit more sense.
2012-12-04 23:47:58 -06:00
Marcel Holtmann 788922cbdf qmi: Include persistent device configuration service 2012-12-04 05:42:14 +01:00
Marcel Holtmann 15f309742c qmi: Print service number if name is not known 2012-12-01 21:37:22 +01:00
Luiz Augusto von Dentz 4e95013040 gdbus: Add g_dbus_add_properties_watch function
Convenient function to create watches for D-Bus properties.
2012-11-30 09:59:34 +01:00
Lucas De Marchi 2e9bea7af6 gdbus: Don't automatically attach ObjectManager
Let each project attach the object manager interface instead of
registering it automatically.
2012-11-29 17:38:55 +01:00
Lucas De Marchi 959d23833f gdbus: Don't register DBus.Properties with no properties
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-29 17:38:55 +01:00
Denis Kenzior 83c275745f sms: Don't try to start the queue if already active
If the queue is currently inside a submit operation and the network
registration state changes, do not try to schedule the next operation.
2012-11-29 03:09:32 -06:00
Denis Kenzior 6e3a6156b3 ifx: Bump the setup timeout
The newer IFX firmware was changed, it no longer accepts AT commands
until the UA frame has been sent back to the AP.  The commands are
simply dropped on the floor.  This requires a proper fix in GAtMux, but
until then simply bump up the timeout to get around this issue.
2012-11-28 10:31:15 -06:00
Denis Kenzior 68df0eb758 ifx: Fix the case of modem-originated call
During STK Set Up Call, we have modem-originated calls that do not go
through the core 'Dial' method.  Make sure the calls are still detected
in this case.
2012-11-28 10:31:15 -06:00
Denis Kenzior 1101465305 stk: Fix Set Up Call with pause characters
Set Up Call with extra DTMF characters after the phone number should be
set up with only the dialed number.  Otherwise we get a sequence like
this:
{VoiceCallManager} [CallAdded] /ifx_0/voicecall01 { LineIdentification =
+012340123456c1c2, Name = , Emergency = False, Multiparty = False,
RemoteHeld = False, State = alerting, RemoteMultiparty = False }
2012-11-28 10:31:15 -06:00
Denis Kenzior fb16241aba stk: Print what kind of info the SIM wants
In Provide Local Information implementation
2012-11-28 10:31:14 -06:00
Denis Kenzior d8a9e88705 voicecall: Add extra debug info 2012-11-28 10:31:14 -06:00
Denis Kenzior 7ee8d3a16a voicecall: Fix crash 2012-11-28 10:31:14 -06:00
Denis Kenzior 509630ea98 sim: Fix crash
ofonod[32055]: ++++++++ backtrace ++++++++
ofonod[32055]: #0  0x7f6af0ee3b30 in /lib64/libc.so.6
ofonod[32055]: #1  0x4c2466 in __ofono_watchlist_remove_item() at
src/watch.c:57
ofonod[32055]: #2  0x4b5b73 in ofono_sim_remove_spn_watch() at
src/sim.c:2715
ofonod[32055]: #3  0x497c30 in netreg_unregister() at src/network.c:1817
ofonod[32055]: #4  0x4912e1 in __ofono_atom_unregister() at
src/modem.c:277
ofonod[32055]: #5  0x491387 in flush_atoms() at src/modem.c:425
ofonod[32055]: #6  0x4b6cb8 in __ofono_sim_refresh() at src/sim.c:3154
ofonod[32055]: #7  0x4b8c41 in handle_command_refresh() at
src/stk.c:2302
ofonod[32055]: #8  0x4baf0d in
ofono_stk_proactive_command_handled_notify() at src/stk.c:3048
ofonod[32055]: #9  0x46c60f in satn_notify() at
drivers/ifxmodem/stk.c:229
ofonod[32055]: #10 0x7f6af1711455 in /usr/lib64/libglib-2.0.so.0
ofonod[32055]: #11 0x43e729 in at_chat_match_notify() at
gatchat/gatchat.c:421
ofonod[32055]: #12 0x440da8 in received_data() at gatchat/gatio.c:125
ofonod[32055]: #13 0x441834 in dispatch_sources() at
gatchat/gatmux.c:157
ofonod[32055]: #14 0x441bbd in received_data() at gatchat/gatmux.c:215
ofonod[32055]: #15 0x7f6af173dfc3 in /usr/lib64/libglib-2.0.so.0
ofonod[32055]: #16 0x7f6af16ef065 in /usr/lib64/libglib-2.0.so.0
ofonod[32055]: #17 0x7f6af16efd0f in /usr/lib64/libglib-2.0.so.0
ofonod[32055]: #18 0x7f6af16efef9 in /usr/lib64/libglib-2.0.so.0
ofonod[32055]: #19 0x7f6af16f032f in /usr/lib64/libglib-2.0.so.0
ofonod[32055]: #20 0x48f5f8 in main() at src/main.c:249
ofonod[32055]: #21 0x7f6af0ed04bd in /lib64/libc.so.6
ofonod[32055]: +++++++++++++++++++++++++++
2012-11-28 10:31:14 -06:00
Denis Kenzior e9d15ae899 ifx: Rework SIM state handling
When performing a SIM REFRESH, particularly NAA Initialization, we need
to wait until the modem sends XSIMSTATE: 7, not XSIMSTATE:2.  Even on
normal initialization it seems safer to wait until XSIMSTATE:2.
2012-11-28 10:31:14 -06:00
Denis Kenzior b26f7c73d3 atmodem: For IFX XSIMSTATE 7 should never occur
in the case of a PIN entry, XSIMSTATE of 7 (Ready to Attach) should
never occur
2012-11-28 10:31:14 -06:00
Denis Kenzior b5d7fd8d38 stk: Handle self explanatory icons in idle mode text 2012-11-28 10:31:14 -06:00
Denis Kenzior 2eaacefbe0 test: Use pretty-printing from monitor-ofono 2012-11-28 10:31:14 -06:00
Denis Kenzior 5afd6e1f5d stk: Handle icon self explanatory in play tone 2012-11-28 10:31:14 -06:00
Denis Kenzior 3e64381353 stk: Handle icon self explanatory in get input 2012-11-28 10:31:14 -06:00
Denis Kenzior ff6d81a67b stk: Handle icon self explanatory in get inkey 2012-11-28 10:31:14 -06:00
Denis Kenzior b2c287db75 stk: Handle icon self explanatory in display text 2012-11-28 10:31:14 -06:00
Denis Kenzior bc5645640c stk: Handle icon self explanatory in menus 2012-11-28 10:31:14 -06:00
Denis Kenzior 00b37a5e64 sim: Fix crash
When modem is brought online, then sim removed and re-inserted.  We
crash when going online again due to the spn related data-structures not
being initialized properly
2012-11-28 10:31:14 -06:00
Marcel Holtmann 9bcebd9758 tools: Wait an extra second before opening the TTY 2012-11-28 10:34:43 +01:00
Marcel Holtmann a2042e442b tools: Add simple TTY redirector utility 2012-11-28 10:21:51 +01:00
Marcel Holtmann 076abafb03 qmimodem: Fix reporting of PIN or PUK states 2012-11-27 23:31:52 +01:00
Marcel Holtmann 816f67be9d test: Allow LoopTone to be interrupted by incoming calls 2012-11-27 11:09:52 +01:00
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