From: Samuel Ortiz Date: Fri, 20 Aug 2010 00:08:15 +0000 (+0200) Subject: Service lookup based on interface index X-Git-Tag: accepted/2.0alpha-wayland/20121110.002834~2473 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=54fa727d7ccdd73f444ac0e6436ab64f534f5243;p=profile%2Fivi%2Fconnman.git Service lookup based on interface index This routine allows to go from an interface index to a service pointer. --- diff --git a/src/connman.h b/src/connman.h index fb9433e..f5b03c8 100644 --- a/src/connman.h +++ b/src/connman.h @@ -454,6 +454,7 @@ const char *__connman_service_default(void); void __connman_service_put(struct connman_service *service); struct connman_service *__connman_service_lookup_from_network(struct connman_network *network); +struct connman_service *__connman_service_lookup_from_index(int index); struct connman_service *__connman_service_create_from_network(struct connman_network *network); struct connman_service *__connman_service_create_from_provider(struct connman_provider *provider); void __connman_service_update_from_network(struct connman_network *network); diff --git a/src/service.c b/src/service.c index 4c09054..a57fe23 100644 --- a/src/service.c +++ b/src/service.c @@ -3277,6 +3277,25 @@ struct connman_service *__connman_service_lookup_from_network(struct connman_net return service; } +struct connman_service *__connman_service_lookup_from_index(int index) +{ + struct connman_service *service; + GSequenceIter *iter; + + iter = g_sequence_get_begin_iter(service_list); + + while (g_sequence_iter_is_end(iter) == FALSE) { + service = g_sequence_get(iter); + + if (connman_ipconfig_get_index(service->ipconfig) == index) + return service; + + iter = g_sequence_iter_next(iter); + } + + return NULL; +} + const char *__connman_service_get_path(struct connman_service *service) { return service->path;