From: Daniel Wagner Date: Thu, 31 Mar 2011 08:02:25 +0000 (+0200) Subject: service: Add __connman_service_disconnect_all() X-Git-Tag: 0.73~88 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=6ca38bb364a54d052178cb1f0361145d1b6952e6;p=platform%2Fupstream%2Fconnman.git service: Add __connman_service_disconnect_all() --- diff --git a/src/connman.h b/src/connman.h index 01dca1b..d597340 100644 --- a/src/connman.h +++ b/src/connman.h @@ -517,6 +517,7 @@ int __connman_service_request_login(struct connman_service *service); int __connman_service_lookup(const char *pattern, const char **path); int __connman_service_connect(struct connman_service *service); int __connman_service_disconnect(struct connman_service *service); +int __connman_service_disconnect_all(void); int __connman_service_create_and_connect(DBusMessage *msg); void __connman_service_auto_connect(void); struct connman_service *__connman_service_connect_type(enum connman_service_type type); diff --git a/src/service.c b/src/service.c index ae1f6fd..7a9185d 100644 --- a/src/service.c +++ b/src/service.c @@ -3908,6 +3908,30 @@ int __connman_service_disconnect(struct connman_service *service) return err; } +int __connman_service_disconnect_all(void) +{ + GSequenceIter *iter; + + DBG(""); + + iter = g_sequence_get_begin_iter(service_list); + + while (g_sequence_iter_is_end(iter) == FALSE) { + struct connman_service *service = g_sequence_get(iter); + + service->ignore = TRUE; + + set_reconnect_state(service, FALSE); + + __connman_service_disconnect(service); + + iter = g_sequence_iter_next(iter); + } + + return 0; + +} + /** * __connman_service_lookup: * @pattern: search pattern