From: Sébastien Bianti <[email protected]>
Because failure and requeing reason can be network lost, and we should
wait for recovery.
---
src/service.c | 22 +++++++++++++++-------
1 files changed, 15 insertions(+), 7 deletions(-)
diff --git a/src/service.c b/src/service.c
index f25e656..907b581 100644
--- a/src/service.c
+++ b/src/service.c
@@ -1662,17 +1662,22 @@ int mms_service_set_bearer_handler(struct mms_service
*service,
return 0;
}
-static void deactivate_bearer(struct mms_service *service)
+static inline gboolean bearer_is_active(struct mms_service *service)
{
- DBG("service %p", service);
-
if (service->bearer_setup == TRUE)
- return;
-
- if (service->bearer_active == FALSE)
- return;
+ return FALSE;
if (service->bearer_handler == NULL)
+ return FALSE;
+
+ return service->bearer_active;
+}
+
+static void deactivate_bearer(struct mms_service *service)
+{
+ DBG("service %p", service);
+
+ if (bearer_is_active(service) == FALSE)
return;
DBG("service %p", service);
@@ -1961,6 +1966,9 @@ static void process_request_queue(struct mms_service
*service)
return;
while (1) {
+ if (bearer_is_active(service) == FALSE)
+ return;
+
request = g_queue_pop_head(service->request_queue);
if (request == NULL)
break;
--
1.7.4.1
_______________________________________________
ofono mailing list
[email protected]
http://lists.ofono.org/listinfo/ofono