ofono/src
Jonas Bonn 1fd419e5b4 gprs: _cid_activated is an 'attaching' state
ofono_gprs_status_notify is an asynchronous notification that messes
with the 'attached' state of the GPRS atom.  This method is normally
prevented from running while an attach is in progress because the
attachment machinery wants to finish up and make it's own determination
of attach state.

When automatic context activation is relevant, as for LTE networks,
the ofono_gprs_cid_activated machinery replaces the usual set_attach
machinery for attaching to the network.  The cid_activated variant,
however, does not guard against simulatenous invocations of
ofono_gprs_status_notify.  This causes a race whereby status_notify
sets the state to 'attached' before the context is fully constructed
and set to active.  If the connection manager sees the 'attached'
state before there are any 'active' contexts, it may decide to
activate a context manually which is not the correct behaviour for
this type of network.

This patch makes the *_cid_activated machinery an 'attaching' state,
introducing the same guards that set_attached has to prevent
ofono_gprs_status_notify from running concurrently.
2017-04-14 17:28:46 -05:00
..
audio-settings.c audio-settings: Fix unneeded async for GetProperties 2013-02-25 12:21:35 -06:00
bluetooth.h bluetooth: Add define for SCO voice settings 2013-08-19 12:14:39 -05:00
call-barring.c call-barring: SS query is made with given cls 2012-09-05 15:03:38 -05:00
call-forwarding.c call-forwarding: SS query is made with given cls 2012-09-05 15:00:14 -05:00
call-meter.c Do not set signature and reply in GDBus tables 2012-05-20 02:47:57 -07:00
call-settings.c call-settings: Improve error reporting 2012-08-22 18:18:05 -05:00
call-volume.c Do not set signature and reply in GDBus tables 2012-05-20 02:47:57 -07:00
cbs.c cbs: use g_slist_free_full 2016-04-22 15:27:28 -05:00
cdma-connman.c cdma-connman: Make static analysis tools happy 2015-07-28 10:18:26 -05:00
cdma-netreg.c Do not set signature and reply in GDBus tables 2012-05-20 02:47:57 -07:00
cdma-provision.c cdma-provision: Add driver APIs implementation 2012-01-07 12:39:58 -06:00
cdma-sms.c cdma-sms: Update to the new API declaration 2012-06-16 09:50:05 -05:00
cdma-smsutil.c cdma-smsutil: Use g_slist_free_full 2016-04-22 15:28:05 -05:00
cdma-smsutil.h core: Update copyright information 2011-10-10 13:39:42 -07:00
cdma-voicecall.c Do not set signature and reply in GDBus tables 2012-05-20 02:47:57 -07:00
common.c common: Fix parsing SS control string 2013-05-22 21:40:19 -05:00
common.h src: make bearer/operator enums public 2015-10-13 16:00:17 -05:00
ctm.c ctm: Remove shadowing reply variable 2012-07-15 20:29:29 -03:00
dbus.c include: Be more const-correct in ofono_dbus_* 2014-01-13 10:19:54 -06:00
emulator.c emulator: add codec negotiation support 2015-10-26 11:43:04 -05:00
genbuiltin Use script to generate list of builtin plugin symbols 2009-08-24 19:05:41 -07:00
gnss.c Do not set signature and reply in GDBus tables 2012-05-20 02:47:57 -07:00
gnssagent.c core: Update copyright information 2011-10-10 13:39:42 -07:00
gnssagent.h core: Update copyright information 2011-10-10 13:39:42 -07:00
gprs-provision.c gprs,gprs-provision: add SPN to provisioning API 2011-02-08 21:48:54 -06:00
gprs.c gprs: _cid_activated is an 'attaching' state 2017-04-14 17:28:46 -05:00
handsfree-audio.c handsfree-audio: Fix crash 2016-08-23 20:34:52 -05:00
handsfree.c handsfree: Use g_slist_free_full 2016-04-22 15:28:43 -05:00
hfp.h hfp: Add enum for known HF Indicators 2014-10-20 13:40:27 -05:00
history.c core: Update copyright information 2011-10-10 13:39:42 -07:00
idmap.c idmap: add api for finding a certain id in map 2016-03-18 09:40:29 -05:00
idmap.h idmap: add api for finding a certain id in map 2016-03-18 09:40:29 -05:00
location-reporting.c Do not set signature and reply in GDBus tables 2012-05-20 02:47:57 -07:00
log.c log: Fix style 2016-04-18 10:02:20 -05:00
lte.c lte: fix early imsi free 2016-11-22 10:03:10 -06:00
main.c main: Make -d option repeatable 2016-10-04 22:26:26 -05:00
manager.c manager: Fix up introspection data 2012-07-04 08:14:38 -05:00
message-waiting.c message-waiting: Fix reading EF_MWIS records 2015-07-16 20:22:38 -05:00
message.c Do not set signature and reply in GDBus tables 2012-05-20 02:47:57 -07:00
message.h message: add cancelled state 2011-03-18 18:31:14 -05:00
modem.c modem: set_online is valid for AlwaysOnline modems 2017-04-03 09:23:53 -05:00
netmon.c netmon: handle OFONO_NETMON_INFO_{EARFCN|EBAND|CQI} 2016-12-13 11:04:42 -06:00
nettime.c core: explicitly compare pointers to NULL 2010-11-29 13:27:15 -06:00
network.c network: Use g_slist_free_full 2016-04-22 15:30:01 -05:00
ofono.conf ofono.conf: Punch hole for HandsfreeAudioAgent 2013-03-19 22:23:40 -05:00
ofono.h lte: add implementation for LTE atom 2016-11-15 13:38:42 -06:00
ofono.service.in systemd: prevent duplicate logging messages in journal 2012-10-25 16:28:38 -07:00
ofono.ver Simplify linker script 2010-09-21 23:25:50 +09:00
phonebook.c phonebook: Remove explicit casts 2016-04-22 15:39:22 -05:00
plugin.c core: Update copyright information 2011-10-10 13:39:42 -07:00
private-network.c private-network: add initial implementation 2011-05-24 12:11:01 -05:00
radio-settings.c radio-settings: Fix style 2016-04-27 11:19:18 -05:00
sim-auth.c sim-auth: Add skeleton for the sim-auth atom 2011-01-20 11:16:06 -06:00
sim.c sim: backup driver read_imsi by IMSI via EF read 2017-01-09 12:25:00 -06:00
simfs.c simfs: Remove explicit casts 2016-04-22 15:41:27 -05:00
simfs.h simfs: Handle optional EF paths 2012-11-23 07:22:25 -06:00
simutil.c simutil: Use g_slist_free_full 2016-04-22 15:31:27 -05:00
simutil.h simutil: Add 2G and 3G path lookup utilities 2012-11-22 10:26:34 -06:00
siri.c git: Fixup messed up permissions 2013-12-21 13:39:54 -06:00
sms.c sms: Use g_slist_free_full 2016-04-22 15:32:02 -05:00
smsagent.c core: Update copyright information 2011-10-10 13:39:42 -07:00
smsagent.h core: Update copyright information 2011-10-10 13:39:42 -07:00
smsutil.c smsutil: Prevent invalid access in cbs_decode_text 2016-12-30 18:19:21 -06:00
smsutil.h sms: Fix alphanumeric TP-OA handling 2015-02-13 09:49:39 -06:00
stk.c stk: clean up undefined function pointer casts 2016-04-26 08:05:00 -05:00
stkagent.c stkagent: Sanitize any output from the agent 2012-09-17 12:06:35 -05:00
stkagent.h stkagent: Add stk_agent_get_quick_digit 2012-08-30 16:54:54 -05:00
stkutil.c stkutil: Use g_slist_free_full 2016-04-22 15:35:27 -05:00
stkutil.h core: Update copyright information 2011-10-10 13:39:42 -07:00
storage.c core: Update copyright information 2011-10-10 13:39:42 -07:00
storage.h storage: Include sys/types.h for ssize_t 2013-01-16 13:14:30 -08:00
ussd.c ussd: Use g_slist_free_full 2016-04-22 15:36:11 -05:00
util.c util: Make sure to handle special empty strings 2012-08-16 00:47:59 -05:00
util.h core: Update copyright information 2011-10-10 13:39:42 -07:00
voicecall.c voicecall: Use g_slist_free_full 2016-04-22 15:36:47 -05:00
watch.c core: Update copyright information 2011-10-10 13:39:42 -07:00