]>
Commit | Line | Data |
---|---|---|
e0b9ff5f MT |
1 | /* |
2 | libloc - A library to determine the location of someone on the Internet | |
3 | ||
4 | Copyright (C) 2020 IPFire Development Team <info@ipfire.org> | |
5 | ||
6 | This library is free software; you can redistribute it and/or | |
7 | modify it under the terms of the GNU Lesser General Public | |
8 | License as published by the Free Software Foundation; either | |
9 | version 2.1 of the License, or (at your option) any later version. | |
10 | ||
11 | This library is distributed in the hope that it will be useful, | |
12 | but WITHOUT ANY WARRANTY; without even the implied warranty of | |
13 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | |
14 | Lesser General Public License for more details. | |
15 | */ | |
16 | ||
17 | #ifndef LIBLOC_NETWORK_LIST_H | |
18 | #define LIBLOC_NETWORK_LIST_H | |
19 | ||
c12a1385 | 20 | #include <libloc/network.h> |
8ebf1d39 | 21 | |
e0b9ff5f MT |
22 | struct loc_network_list; |
23 | int loc_network_list_new(struct loc_ctx* ctx, struct loc_network_list** list); | |
24 | struct loc_network_list* loc_network_list_ref(struct loc_network_list* list); | |
25 | struct loc_network_list* loc_network_list_unref(struct loc_network_list* list); | |
26 | size_t loc_network_list_size(struct loc_network_list* list); | |
27 | int loc_network_list_empty(struct loc_network_list* list); | |
28 | void loc_network_list_clear(struct loc_network_list* list); | |
29 | void loc_network_list_dump(struct loc_network_list* list); | |
30 | struct loc_network* loc_network_list_get(struct loc_network_list* list, size_t index); | |
31 | int loc_network_list_push(struct loc_network_list* list, struct loc_network* network); | |
32 | struct loc_network* loc_network_list_pop(struct loc_network_list* list); | |
33 | struct loc_network* loc_network_list_pop_first(struct loc_network_list* list); | |
c1ce4349 | 34 | int loc_network_list_remove(struct loc_network_list* list, struct loc_network* network); |
e0b9ff5f | 35 | int loc_network_list_contains(struct loc_network_list* list, struct loc_network* network); |
e0b9ff5f MT |
36 | int loc_network_list_merge(struct loc_network_list* self, struct loc_network_list* other); |
37 | ||
c1ce4349 MT |
38 | void loc_network_list_remove_with_prefix_smaller_than( |
39 | struct loc_network_list* list, const unsigned int prefix); | |
40 | ||
8c37d8a7 MT |
41 | #ifdef LIBLOC_PRIVATE |
42 | ||
43 | #include <netinet/in.h> | |
44 | ||
45 | int loc_network_list_summarize(struct loc_ctx* ctx, | |
46 | const struct in6_addr* first, const struct in6_addr* last, struct loc_network_list** list); | |
47 | ||
48 | #endif /* LOC_PRIVATE */ | |
49 | ||
e0b9ff5f | 50 | #endif |