summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/gprs.c8
1 files changed, 6 insertions, 2 deletions
diff --git a/src/gprs.c b/src/gprs.c
index 5a5e4f26..e0346549 100644
--- a/src/gprs.c
+++ b/src/gprs.c
@@ -1238,7 +1238,7 @@ static void netreg_watch(struct ofono_atom *atom,
{
struct ofono_gprs *gprs = data;
- if (cond != OFONO_ATOM_WATCH_CONDITION_REGISTERED) {
+ if (cond == OFONO_ATOM_WATCH_CONDITION_UNREGISTERED) {
gprs->status_watch = 0;
gprs->netreg = NULL;
return;
@@ -1248,6 +1248,8 @@ static void netreg_watch(struct ofono_atom *atom,
gprs->netreg_status = ofono_netreg_get_status(gprs->netreg);
gprs->status_watch = __ofono_netreg_add_status_watch(gprs->netreg,
netreg_status_changed, gprs, NULL);
+
+ gprs_netreg_update(gprs);
}
void ofono_gprs_register(struct ofono_gprs *gprs)
@@ -1269,6 +1271,9 @@ void ofono_gprs_register(struct ofono_gprs *gprs)
ofono_modem_add_interface(modem, DATA_CONNECTION_MANAGER_INTERFACE);
+ /* TODO: Read Powered from SIM store */
+ gprs->powered = TRUE;
+
gprs->netreg_watch = __ofono_modem_add_atom_watch(modem,
OFONO_ATOM_TYPE_NETREG,
netreg_watch, gprs, NULL);
@@ -1279,7 +1284,6 @@ void ofono_gprs_register(struct ofono_gprs *gprs)
netreg_watch(netreg_atom,
OFONO_ATOM_WATCH_CONDITION_REGISTERED, gprs);
-
__ofono_atom_register(gprs->atom, gprs_unregister);
}