Send connman mailing list submissions to
        [email protected]

To subscribe or unsubscribe via the World Wide Web, visit
        https://lists.01.org/mailman/listinfo/connman
or, via email, send a message with subject or body 'help' to
        [email protected]

You can reach the person managing the list at
        [email protected]

When replying, please edit your Subject line so it is more specific
than "Re: Contents of connman digest..."


Today's Topics:

   1. [PATCH] service: Enhance __connman_service_iterate_services()
      (Slava Monich)


----------------------------------------------------------------------

Message: 1
Date: Fri, 14 Sep 2018 16:11:41 +0300
From: Slava Monich <[email protected]>
To: [email protected]
Subject: [PATCH] service: Enhance __connman_service_iterate_services()
Message-ID: <[email protected]>

Let the callback to break the loop by returning non-zero value.
---
 src/connman.h |  3 ++-
 src/service.c | 10 ++++------
 2 files changed, 6 insertions(+), 7 deletions(-)

diff --git a/src/connman.h b/src/connman.h
index aeead52..d77a1a8 100644
--- a/src/connman.h
+++ b/src/connman.h
@@ -849,7 +849,8 @@ int __connman_peer_service_unregister(const char *owner,
 
 #include <connman/session.h>
 
-typedef void (* service_iterate_cb) (struct connman_service *service,
+/* Return non-zero value to terminate the loop, zero to continue */
+typedef int (* service_iterate_cb) (struct connman_service *service,
                                        void *user_data);
 
 int __connman_service_iterate_services(service_iterate_cb cb, void *user_data);
diff --git a/src/service.c b/src/service.c
index 35251fd..4432863 100644
--- a/src/service.c
+++ b/src/service.c
@@ -2404,14 +2404,12 @@ void __connman_service_counter_unregister(const char 
*counter)
 int __connman_service_iterate_services(service_iterate_cb cb, void *user_data)
 {
        GList *list;
+       int ret = 0;
 
-       for (list = service_list; list; list = list->next) {
-               struct connman_service *service = list->data;
-
-               cb(service, user_data);
-       }
+       for (list = service_list; list && ret == 0; list = list->next)
+               ret = cb((struct connman_service *)list->data, user_data);
 
-       return 0;
+       return ret;
 }
 
 static void append_properties(DBusMessageIter *dict, dbus_bool_t limited,
-- 
1.9.1



------------------------------

Subject: Digest Footer

_______________________________________________
connman mailing list
[email protected]
https://lists.01.org/mailman/listinfo/connman


------------------------------

End of connman Digest, Vol 35, Issue 3
**************************************

Reply via email to