aboutsummaryrefslogtreecommitdiffstats
path: root/hicn-light/src/hicn/io/listenerSet.c
diff options
context:
space:
mode:
authorJordan Augé <jordan.auge+fdio@cisco.com>2019-10-07 09:52:33 +0200
committerJordan Augé <jordan.auge+fdio@cisco.com>2019-10-07 15:55:42 +0200
commit6b84ec54083da9911f5ad4816d0eb4f4745afad4 (patch)
treee4296ebb218fff02dc0bbea73ce1c8d12aba7bcc /hicn-light/src/hicn/io/listenerSet.c
parent85a791ac2cdd35d79c00141e748b4c68fbdafb0d (diff)
[HICN-298] Release new hICN app for Android
Change-Id: I43adc62fadf00690b687078d739788dffdc5e566 Signed-off-by: Jordan Augé <jordan.auge+fdio@cisco.com>
Diffstat (limited to 'hicn-light/src/hicn/io/listenerSet.c')
-rw-r--r--hicn-light/src/hicn/io/listenerSet.c36
1 files changed, 36 insertions, 0 deletions
diff --git a/hicn-light/src/hicn/io/listenerSet.c b/hicn-light/src/hicn/io/listenerSet.c
index 982373b63..3e44973d7 100644
--- a/hicn-light/src/hicn/io/listenerSet.c
+++ b/hicn-light/src/hicn/io/listenerSet.c
@@ -130,3 +130,39 @@ ListenerOps *listenerSet_Find(const ListenerSet *set, EncapType encapType,
return match;
}
+
+ListenerOps *listenerSet_FindById(const ListenerSet *set, unsigned id) {
+ parcAssertNotNull(set, "Parameter set must be non-null");
+
+ ListenerOps *match = NULL;
+
+ for (size_t i = 0; i < parcArrayList_Size(set->listOfListeners) && !match;
+ i++) {
+ ListenerOps *ops = parcArrayList_Get(set->listOfListeners, i);
+ parcAssertNotNull(ops, "Got null listener ops at index %zu", i);
+ if (ops->getInterfaceIndex(ops) == id) {
+ match = ops;
+ }
+ }
+
+ return match;
+}
+
+int listenerSet_FindIdByListenerName(const ListenerSet *set, const char *listenerName ) {
+ parcAssertNotNull(set, "Parameter set must be non-null");
+ parcAssertNotNull(listenerName, "Parameter listenerName must be non-null");
+
+ ListenerOps *match = NULL;
+ int index = -1;
+ for (size_t i = 0; i < parcArrayList_Size(set->listOfListeners) && !match;
+ i++) {
+ ListenerOps *ops = parcArrayList_Get(set->listOfListeners, i);
+ parcAssertNotNull(ops, "Got null listener ops at index %zu", i);
+ if (ops->getListenerName(ops) && strcmp(ops->getListenerName(ops), listenerName) == 0) {
+ index = ops->getInterfaceIndex(ops);
+ break;
+ }
+ }
+
+ return index;
+}