diff options
Diffstat (limited to 'ot_accesslist.h')
-rw-r--r-- | ot_accesslist.h | 52 |
1 files changed, 31 insertions, 21 deletions
diff --git a/ot_accesslist.h b/ot_accesslist.h index b38b91a..0a7488e 100644 --- a/ot_accesslist.h +++ b/ot_accesslist.h | |||
@@ -6,26 +6,37 @@ | |||
6 | #ifndef OT_ACCESSLIST_H__ | 6 | #ifndef OT_ACCESSLIST_H__ |
7 | #define OT_ACCESSLIST_H__ | 7 | #define OT_ACCESSLIST_H__ |
8 | 8 | ||
9 | #if defined ( WANT_ACCESSLIST_BLACK ) && defined (WANT_ACCESSLIST_WHITE ) | 9 | #include "trackerlogic.h" |
10 | # error WANT_ACCESSLIST_BLACK and WANT_ACCESSLIST_WHITE are exclusive. | 10 | |
11 | #if defined(WANT_ACCESSLIST_BLACK) && defined(WANT_ACCESSLIST_WHITE) | ||
12 | #error WANT_ACCESSLIST_BLACK and WANT_ACCESSLIST_WHITE are exclusive. | ||
11 | #endif | 13 | #endif |
12 | 14 | ||
13 | #if defined ( WANT_ACCESSLIST_BLACK ) || defined (WANT_ACCESSLIST_WHITE ) | 15 | #if defined(WANT_ACCESSLIST_BLACK) || defined(WANT_ACCESSLIST_WHITE) |
14 | #define WANT_ACCESSLIST | 16 | #define WANT_ACCESSLIST |
15 | void accesslist_init( ); | 17 | void accesslist_init(void); |
16 | void accesslist_deinit( ); | 18 | void accesslist_deinit(void); |
17 | int accesslist_hashisvalid( ot_hash hash ); | 19 | int accesslist_hashisvalid(ot_hash hash); |
20 | void accesslist_cleanup(void); | ||
18 | 21 | ||
19 | extern char *g_accesslist_filename; | 22 | extern char *g_accesslist_filename; |
23 | #ifdef WANT_DYNAMIC_ACCESSLIST | ||
24 | extern char *g_accesslist_pipe_add; | ||
25 | extern char *g_accesslist_pipe_delete; | ||
26 | #endif | ||
20 | 27 | ||
21 | #else | 28 | #else |
22 | #define accesslist_init( accesslist_filename ) | 29 | #ifdef WANT_DYNAMIC_ACCESSLIST |
23 | #define accesslist_deinit( ) | 30 | #error WANT_DYNAMIC_ACCESSLIST needs either WANT_ACCESSLIST_BLACK or WANT_ACCESSLIST_WHITE |
24 | #define accesslist_hashisvalid( hash ) 1 | 31 | #endif |
32 | |||
33 | #define accesslist_init(accesslist_filename) | ||
34 | #define accesslist_deinit() | ||
35 | #define accesslist_hashisvalid(hash) 1 | ||
25 | #endif | 36 | #endif |
26 | 37 | ||
27 | /* Test if an address is subset of an ot_net, return value is considered a bool */ | 38 | /* Test if an address is subset of an ot_net, return value is considered a bool */ |
28 | int address_in_net( const ot_ip6 address, const ot_net *net ); | 39 | int address_in_net(const ot_ip6 address, const ot_net *net); |
29 | 40 | ||
30 | /* Store a value into a vector of struct { ot_net net, uint8_t[x] value } member; | 41 | /* Store a value into a vector of struct { ot_net net, uint8_t[x] value } member; |
31 | returns NULL | 42 | returns NULL |
@@ -36,18 +47,17 @@ int address_in_net( const ot_ip6 address, const ot_net *net ); | |||
36 | returns pointer to new member in vector for success | 47 | returns pointer to new member in vector for success |
37 | member_size can be sizeof(ot_net) to reduce the lookup to a boolean mapping | 48 | member_size can be sizeof(ot_net) to reduce the lookup to a boolean mapping |
38 | */ | 49 | */ |
39 | void *set_value_for_net( const ot_net *net, ot_vector *vector, const void *value, const size_t member_size ); | 50 | void *set_value_for_net(const ot_net *net, ot_vector *vector, const void *value, const size_t member_size); |
40 | 51 | ||
41 | /* Takes a vector filled with struct { ot_net net, uint8_t[x] value } member; | 52 | /* Takes a vector filled with struct { ot_net net, uint8_t[x] value } member; |
42 | Returns pointer to _member_ associated with the net, or NULL if not found | 53 | Returns pointer to _member_ associated with the net, or NULL if not found |
43 | member_size can be sizeof(ot_net) to reduce the lookup to a boolean mapping | 54 | member_size can be sizeof(ot_net) to reduce the lookup to a boolean mapping |
44 | */ | 55 | */ |
45 | void *get_value_for_net( const ot_ip6 address, const ot_vector *vector, const size_t member_size ); | 56 | void *get_value_for_net(const ot_ip6 address, const ot_vector *vector, const size_t member_size); |
46 | |||
47 | 57 | ||
48 | #ifdef WANT_IP_FROM_PROXY | 58 | #ifdef WANT_IP_FROM_PROXY |
49 | int proxylist_add_network( const ot_net *proxy, const ot_net *net ); | 59 | int proxylist_add_network(const ot_net *proxy, const ot_net *net); |
50 | int proxylist_check_network( const ot_ip6 *proxy, const ot_ip6 address /* can be NULL to only check proxy */ ); | 60 | int proxylist_check_network(const ot_ip6 *proxy, const ot_ip6 address /* can be NULL to only check proxy */); |
51 | #endif | 61 | #endif |
52 | 62 | ||
53 | #ifdef WANT_FULLLOG_NETWORKS | 63 | #ifdef WANT_FULLLOG_NETWORKS |
@@ -61,10 +71,10 @@ struct ot_log { | |||
61 | }; | 71 | }; |
62 | extern ot_log *g_logchain_first, *g_logchain_last; | 72 | extern ot_log *g_logchain_first, *g_logchain_last; |
63 | 73 | ||
64 | void loglist_add_network( const ot_net *net ); | 74 | void loglist_add_network(const ot_net *net); |
65 | void loglist_reset( ); | 75 | void loglist_reset(); |
66 | int loglist_check_address( const ot_ip6 address ); | 76 | int loglist_check_address(const ot_ip6 address); |
67 | #endif | 77 | #endif |
68 | 78 | ||
69 | typedef enum { | 79 | typedef enum { |
70 | OT_PERMISSION_MAY_FULLSCRAPE = 0x1, | 80 | OT_PERMISSION_MAY_FULLSCRAPE = 0x1, |
@@ -73,7 +83,7 @@ typedef enum { | |||
73 | OT_PERMISSION_MAY_PROXY = 0x8 | 83 | OT_PERMISSION_MAY_PROXY = 0x8 |
74 | } ot_permissions; | 84 | } ot_permissions; |
75 | 85 | ||
76 | int accesslist_blessip( ot_ip6 ip, ot_permissions permissions ); | 86 | int accesslist_bless_net(ot_net *net, ot_permissions permissions); |
77 | int accesslist_isblessed( ot_ip6 ip, ot_permissions permissions ); | 87 | int accesslist_is_blessed(ot_ip6 ip, ot_permissions permissions); |
78 | 88 | ||
79 | #endif | 89 | #endif |