]> git.ipfire.org Git - people/ms/libloc.git/commitdiff
networks: Add function to check if network is part of a list
authorMichael Tremer <michael.tremer@ipfire.org>
Thu, 12 Nov 2020 14:28:15 +0000 (14:28 +0000)
committerMichael Tremer <michael.tremer@ipfire.org>
Thu, 12 Nov 2020 14:28:15 +0000 (14:28 +0000)
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
src/libloc.sym
src/loc/network.h
src/network.c

index 0c2835b28621b24f6e6185ccc004fe7e4ac5f306..f1b63a25a3f79192671f3fe3213665503d4d063d 100644 (file)
@@ -104,6 +104,7 @@ global:
 
        # Network List
        loc_network_list_clear;
+       loc_network_list_contains;
        loc_network_list_dump;
        loc_network_list_empty;
        loc_network_list_get;
index ef13756132eb5f26a749c32dfb73f323e4337b15..78045124467164f2a75017135cd7103e24b09c99 100644 (file)
@@ -73,6 +73,7 @@ void loc_network_list_dump(struct loc_network_list* list);
 struct loc_network* loc_network_list_get(struct loc_network_list* list, size_t index);
 int loc_network_list_push(struct loc_network_list* list, struct loc_network* network);
 struct loc_network* loc_network_list_pop(struct loc_network_list* list);
+int loc_network_list_contains(struct loc_network_list* list, struct loc_network* network);
 void loc_network_list_sort(struct loc_network_list* list);
 void loc_network_list_reverse(struct loc_network_list* list);
 
index d826511e2c12b00b9f49a3c24f8f0757e11a4f90..fcbdc5931b6fe2c23814e495e93e1405fb313716 100644 (file)
@@ -1120,6 +1120,15 @@ LOC_EXPORT struct loc_network* loc_network_list_pop(struct loc_network_list* lis
        return list->list[--list->size];
 }
 
+LOC_EXPORT int loc_network_list_contains(struct loc_network_list* list, struct loc_network* network) {
+       for (unsigned int i = 0; i < list->size; i++) {
+               if (loc_network_eq(list->list[i], network))
+                       return 1;
+       }
+
+       return 0;
+}
+
 static void loc_network_list_swap(struct loc_network_list* list, unsigned int i1, unsigned int i2) {
        // Do nothing for invalid indices
        if (i1 >= list->size || i2 >= list->size)