diff options
author | Samuel Ortiz <sameo@linux.intel.com> | 2010-08-20 02:08:15 +0200 |
---|---|---|
committer | Samuel Ortiz <sameo@linux.intel.com> | 2010-08-20 23:25:13 +0200 |
commit | 54fa727d7ccdd73f444ac0e6436ab64f534f5243 (patch) | |
tree | 080d3e69c1c3984995bce3cc03bd959abef10995 | |
parent | 8754499cc3e5a663b406bb962d9d4f9050b84cbf (diff) | |
download | connman-54fa727d7ccdd73f444ac0e6436ab64f534f5243.tar.gz connman-54fa727d7ccdd73f444ac0e6436ab64f534f5243.tar.bz2 connman-54fa727d7ccdd73f444ac0e6436ab64f534f5243.zip |
Service lookup based on interface index
This routine allows to go from an interface index to a service pointer.
-rw-r--r-- | src/connman.h | 1 | ||||
-rw-r--r-- | src/service.c | 19 |
2 files changed, 20 insertions, 0 deletions
diff --git a/src/connman.h b/src/connman.h index fb9433e1..f5b03c8d 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 4c090543..a57fe233 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; |