mirror of git://git.sysmocom.de/ofono
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:
parent
e0603f0c68
commit
bc72cca91b
|
@ -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;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -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);
|
||||||
|
|
16
src/gprs.c
16
src/gprs.c
|
@ -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)
|
||||||
|
|
Loading…
Reference in New Issue