Fix: notify_attached was only used when detached

The standard only specifies that the context might have been detached by
the network / mobile equipment.  Not attached.
This commit is contained in:
Denis Kenzior 2009-10-26 16:55:03 -05:00
parent e0603f0c68
commit bc72cca91b
3 changed files with 12 additions and 8 deletions

View File

@ -200,7 +200,7 @@ static void cgev_notify(GAtResult *result, gpointer user_data)
if (g_str_has_prefix(event, "NW DETACH ") || if (g_str_has_prefix(event, "NW DETACH ") ||
g_str_has_prefix(event, "ME DETACH ")) { g_str_has_prefix(event, "ME DETACH ")) {
ofono_gprs_attach_notify(gprs, 0); ofono_gprs_detached_notify(gprs);
return; return;
} }
} }

View File

@ -51,7 +51,7 @@ struct ofono_gprs_driver {
void ofono_gprs_status_notify(struct ofono_gprs *gprs, void ofono_gprs_status_notify(struct ofono_gprs *gprs,
int status, int lac, int ci, int tech); int status, int lac, int ci, int tech);
void ofono_gprs_attach_notify(struct ofono_gprs *gprs, int attached); void ofono_gprs_detached_notify(struct ofono_gprs *gprs);
int ofono_gprs_driver_register(const struct ofono_gprs_driver *d); int ofono_gprs_driver_register(const struct ofono_gprs_driver *d);
void ofono_gprs_driver_unregister(const struct ofono_gprs_driver *d); void ofono_gprs_driver_unregister(const struct ofono_gprs_driver *d);

View File

@ -894,14 +894,18 @@ static GDBusSignalTable manager_signals[] = {
{ } { }
}; };
void ofono_gprs_attach_notify(struct ofono_gprs *gprs, int attached) void ofono_gprs_detached_notify(struct ofono_gprs *gprs)
{ {
if (gprs->driver_attached != attached && if (gprs->driver_attached == FALSE)
!(gprs->flags & GPRS_FLAG_ATTACHING)) { return;
gprs->driver_attached = attached;
gprs_netreg_update(gprs); gprs->driver_attached = FALSE;
}
gprs_attached_update(gprs);
/* TODO: The network forced a detach, we should wait for some time
* and try to re-attach
*/
} }
static void set_registration_status(struct ofono_gprs *gprs, int status) static void set_registration_status(struct ofono_gprs *gprs, int status)