summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSamuel Ortiz <sameo@linux.intel.com>2010-08-20 02:08:15 +0200
committerSamuel Ortiz <sameo@linux.intel.com>2010-08-20 23:25:13 +0200
commit54fa727d7ccdd73f444ac0e6436ab64f534f5243 (patch)
tree080d3e69c1c3984995bce3cc03bd959abef10995
parent8754499cc3e5a663b406bb962d9d4f9050b84cbf (diff)
downloadconnman-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.h1
-rw-r--r--src/service.c19
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;