Electroneum
Toggle main menu visibility
Loading...
Searching...
No Matches
acl_list.h
Go to the documentation of this file.
1
/*
2
* daemon/acl_list.h - client access control storage for the server.
3
*
4
* Copyright (c) 2007, NLnet Labs. All rights reserved.
5
*
6
* This software is open source.
7
*
8
* Redistribution and use in source and binary forms, with or without
9
* modification, are permitted provided that the following conditions
10
* are met:
11
*
12
* Redistributions of source code must retain the above copyright notice,
13
* this list of conditions and the following disclaimer.
14
*
15
* Redistributions in binary form must reproduce the above copyright notice,
16
* this list of conditions and the following disclaimer in the documentation
17
* and/or other materials provided with the distribution.
18
*
19
* Neither the name of the NLNET LABS nor the names of its contributors may
20
* be used to endorse or promote products derived from this software without
21
* specific prior written permission.
22
*
23
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
24
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
25
* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
26
* A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
27
* HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
28
* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED
29
* TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
30
* PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
31
* LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
32
* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
33
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
34
*/
35
42
43
#ifndef DAEMON_ACL_LIST_H
44
#define DAEMON_ACL_LIST_H
45
#include "
util/storage/dnstree.h
"
46
#include "
services/view.h
"
47
struct
config_file
;
48
struct
regional
;
49
54
enum
acl_access
{
56
acl_deny
= 0,
58
acl_refuse
,
60
acl_deny_non_local
,
62
acl_refuse_non_local
,
64
acl_allow
,
66
acl_allow_snoop
,
68
acl_allow_setrd
69
};
70
74
struct
acl_list
{
76
struct
regional
*
region
;
81
rbtree_type
tree
;
82
};
83
88
struct
acl_addr
{
90
struct
addr_tree_node
node
;
92
enum
acl_access
control
;
94
uint8_t
*
taglist
;
96
size_t
taglen
;
98
uint8_t
*
tag_actions
;
100
size_t
tag_actions_size
;
103
struct
config_strlist
**
tag_datas
;
105
size_t
tag_datas_size
;
106
/* view element, NULL if none */
107
struct
view
*
view
;
108
};
109
114
struct
acl_list
*
acl_list_create
(
void
);
115
120
void
acl_list_delete
(
struct
acl_list
* acl);
121
129
int
acl_list_apply_cfg
(
struct
acl_list
* acl,
struct
config_file
* cfg,
130
struct
views
* v);
131
137
enum
acl_access
acl_get_control
(
struct
acl_addr
* acl);
138
146
struct
acl_addr
*
147
acl_addr_lookup
(
struct
acl_list
* acl,
struct
sockaddr_storage
* addr,
148
socklen_t addrlen);
149
155
size_t
acl_list_get_mem
(
struct
acl_list
* acl);
156
157
#endif
/* DAEMON_ACL_LIST_H */
acl_list_create
struct acl_list * acl_list_create(void)
acl_access
acl_access
Definition
acl_list.h:54
acl_deny
@ acl_deny
Definition
acl_list.h:56
acl_deny_non_local
@ acl_deny_non_local
Definition
acl_list.h:60
acl_allow
@ acl_allow
Definition
acl_list.h:64
acl_refuse_non_local
@ acl_refuse_non_local
Definition
acl_list.h:62
acl_allow_setrd
@ acl_allow_setrd
Definition
acl_list.h:68
acl_allow_snoop
@ acl_allow_snoop
Definition
acl_list.h:66
acl_refuse
@ acl_refuse
Definition
acl_list.h:58
acl_list_apply_cfg
int acl_list_apply_cfg(struct acl_list *acl, struct config_file *cfg, struct views *v)
acl_list_get_mem
size_t acl_list_get_mem(struct acl_list *acl)
acl_list_delete
void acl_list_delete(struct acl_list *acl)
acl_addr_lookup
struct acl_addr * acl_addr_lookup(struct acl_list *acl, struct sockaddr_storage *addr, socklen_t addrlen)
acl_get_control
enum acl_access acl_get_control(struct acl_addr *acl)
dnstree.h
uint8_t
unsigned char uint8_t
Definition
stdint.h:124
acl_addr
Definition
acl_list.h:88
acl_addr::control
enum acl_access control
Definition
acl_list.h:92
acl_addr::node
struct addr_tree_node node
Definition
acl_list.h:90
acl_addr::tag_actions_size
size_t tag_actions_size
Definition
acl_list.h:100
acl_addr::tag_actions
uint8_t * tag_actions
Definition
acl_list.h:98
acl_addr::tag_datas_size
size_t tag_datas_size
Definition
acl_list.h:105
acl_addr::taglen
size_t taglen
Definition
acl_list.h:96
acl_addr::taglist
uint8_t * taglist
Definition
acl_list.h:94
acl_addr::tag_datas
struct config_strlist ** tag_datas
Definition
acl_list.h:103
acl_addr::view
struct view * view
Definition
acl_list.h:107
acl_list
Definition
acl_list.h:74
acl_list::tree
rbtree_type tree
Definition
acl_list.h:81
acl_list::region
struct regional * region
Definition
acl_list.h:76
addr_tree_node
Definition
dnstree.h:77
config_file
Definition
config_file.h:68
config_strlist
Definition
config_file.h:617
rbtree_type
Definition
rbtree.h:76
regional
Definition
regional.h:60
sockaddr_storage
Definition
fake-rfc2553.h:54
views
Definition
view.h:56
view.h
external
unbound
daemon
acl_list.h
Generated on
for Electroneum by
1.17.0