diff options
author | Dragos Tatulea <dragos@endocode.com> | 2016-03-21 16:55:31 +0100 |
---|---|---|
committer | Denis Kenzior <denkenz@gmail.com> | 2016-03-21 10:59:44 -0500 |
commit | a4cfaa1b6ce9239261d3dfaf4cab5f2ffdf03f5c (patch) | |
tree | a15da7b5bf4456c7b92a09823cbdcfdc33190e18 /src | |
parent | 7bd7a541d09d57d25184035d83215df5c3df6fd1 (diff) | |
download | android_external_ofono-a4cfaa1b6ce9239261d3dfaf4cab5f2ffdf03f5c.tar.gz android_external_ofono-a4cfaa1b6ce9239261d3dfaf4cab5f2ffdf03f5c.tar.bz2 android_external_ofono-a4cfaa1b6ce9239261d3dfaf4cab5f2ffdf03f5c.zip |
gprs: assume attached state when registered on LTE
LTE doesn't really use the concept of an attached state. However,
the oFono API needs it. ConnMan needs it as well.
Diffstat (limited to 'src')
-rw-r--r-- | src/gprs.c | 36 |
1 files changed, 26 insertions, 10 deletions
@@ -1585,12 +1585,27 @@ static void release_active_contexts(struct ofono_gprs *gprs) } } -static void gprs_attached_update(struct ofono_gprs *gprs) +static void gprs_set_attached_property(struct ofono_gprs *gprs, + ofono_bool_t attached) { - DBusConnection *conn = ofono_dbus_get_connection(); const char *path; + DBusConnection *conn = ofono_dbus_get_connection(); + dbus_bool_t value = attached; + + if (gprs->attached == attached) + return; + + gprs->attached = attached; + + path = __ofono_atom_get_path(gprs->atom); + ofono_dbus_signal_property_changed(conn, path, + OFONO_CONNECTION_MANAGER_INTERFACE, + "Attached", DBUS_TYPE_BOOLEAN, &value); +} + +static void gprs_attached_update(struct ofono_gprs *gprs) +{ ofono_bool_t attached; - dbus_bool_t value; attached = gprs->driver_attached && (gprs->status == NETWORK_REGISTRATION_STATUS_REGISTERED || @@ -1613,13 +1628,7 @@ static void gprs_attached_update(struct ofono_gprs *gprs) return; } - gprs->attached = attached; - - path = __ofono_atom_get_path(gprs->atom); - value = attached; - ofono_dbus_signal_property_changed(conn, path, - OFONO_CONNECTION_MANAGER_INTERFACE, - "Attached", DBUS_TYPE_BOOLEAN, &value); + gprs_set_attached_property(gprs, attached); } static void registration_status_cb(const struct ofono_error *error, @@ -1690,6 +1699,13 @@ static void gprs_netreg_update(struct ofono_gprs *gprs) DBG("attach: %u, driver_attached: %u", attach, gprs->driver_attached); + if (ofono_netreg_get_technology(gprs->netreg) == + ACCESS_TECHNOLOGY_EUTRAN) { + /* Ignore attach logic for LTE. There is no such concept. */ + gprs_set_attached_property(gprs, attach); + return; + } + if (gprs->driver_attached == attach) return; |