aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorDragos Tatulea <dragos@endocode.com>2016-03-21 16:55:31 +0100
committerDenis Kenzior <denkenz@gmail.com>2016-03-21 10:59:44 -0500
commita4cfaa1b6ce9239261d3dfaf4cab5f2ffdf03f5c (patch)
treea15da7b5bf4456c7b92a09823cbdcfdc33190e18 /src
parent7bd7a541d09d57d25184035d83215df5c3df6fd1 (diff)
downloadandroid_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.c36
1 files changed, 26 insertions, 10 deletions
diff --git a/src/gprs.c b/src/gprs.c
index 9a851214..3acb412a 100644
--- a/src/gprs.c
+++ b/src/gprs.c
@@ -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;