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

Reply via email to