Electroneum
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
46#include "services/view.h"
47struct config_file;
48struct regional;
49
70
83
88struct acl_addr {
96 size_t taglen;
106 /* view element, NULL if none */
107 struct view* view;
108};
109
115
120void acl_list_delete(struct acl_list* acl);
121
129int acl_list_apply_cfg(struct acl_list* acl, struct config_file* cfg,
130 struct views* v);
131
138
146struct acl_addr*
147acl_addr_lookup(struct acl_list* acl, struct sockaddr_storage* addr,
148 socklen_t addrlen);
149
155size_t acl_list_get_mem(struct acl_list* acl);
156
157#endif /* DAEMON_ACL_LIST_H */
struct acl_list * acl_list_create(void)
acl_access
Definition acl_list.h:54
@ acl_deny
Definition acl_list.h:56
@ acl_deny_non_local
Definition acl_list.h:60
@ acl_allow
Definition acl_list.h:64
@ acl_refuse_non_local
Definition acl_list.h:62
@ acl_allow_setrd
Definition acl_list.h:68
@ acl_allow_snoop
Definition acl_list.h:66
@ acl_refuse
Definition acl_list.h:58
int acl_list_apply_cfg(struct acl_list *acl, struct config_file *cfg, struct views *v)
size_t acl_list_get_mem(struct acl_list *acl)
void acl_list_delete(struct acl_list *acl)
struct acl_addr * acl_addr_lookup(struct acl_list *acl, struct sockaddr_storage *addr, socklen_t addrlen)
enum acl_access acl_get_control(struct acl_addr *acl)
unsigned char uint8_t
Definition stdint.h:124
enum acl_access control
Definition acl_list.h:92
struct addr_tree_node node
Definition acl_list.h:90
size_t tag_actions_size
Definition acl_list.h:100
uint8_t * tag_actions
Definition acl_list.h:98
size_t tag_datas_size
Definition acl_list.h:105
size_t taglen
Definition acl_list.h:96
uint8_t * taglist
Definition acl_list.h:94
struct config_strlist ** tag_datas
Definition acl_list.h:103
struct view * view
Definition acl_list.h:107
rbtree_type tree
Definition acl_list.h:81
struct regional * region
Definition acl_list.h:76
Definition view.h:56