OpenDNSSEC-signer
2.1.7
src
wire
acl.h
Go to the documentation of this file.
1
/*
2
* Copyright (c) 2011 NLNet Labs. All rights reserved.
3
*
4
* Redistribution and use in source and binary forms, with or without
5
* modification, are permitted provided that the following conditions
6
* are met:
7
* 1. Redistributions of source code must retain the above copyright
8
* notice, this list of conditions and the following disclaimer.
9
* 2. Redistributions in binary form must reproduce the above copyright
10
* notice, this list of conditions and the following disclaimer in the
11
* documentation and/or other materials provided with the distribution.
12
*
13
* THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
14
* IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
15
* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
16
* ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY
17
* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
18
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE
19
* GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
20
* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER
21
* IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
22
* OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN
23
* IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
24
*
25
*/
26
32
#ifndef WIRE_ACL_H
33
#define WIRE_ACL_H
34
35
#include "config.h"
36
#include "status.h"
37
#include "
wire/listener.h
"
38
#include "
wire/tsig.h
"
39
40
45
enum
acl_range_enum
{
46
ACL_RANGE_SINGLE
= 0,
/* single adress */
47
ACL_RANGE_MASK
= 1,
/* 10.20.30.40&255.255.255.0 */
48
ACL_RANGE_SUBNET
= 2,
/* 10.20.30.40/28 */
49
ACL_RANGE_MINMAX
= 3
/* 10.20.30.40-10.20.30.60 (mask=max) */
50
};
51
typedef
enum
acl_range_enum
acl_range_type
;
52
57
typedef
struct
acl_struct
acl_type
;
58
struct
acl_struct
{
59
acl_type
*
next
;
60
/* address */
61
char
*
address
;
62
unsigned
int
port
;
63
int
family
;
64
union
acl_addr_storage
addr
;
65
union
acl_addr_storage
range_mask
;
66
acl_range_type
range_type
;
67
/* tsig */
68
const
char
*
tsig_name
;
69
tsig_type
*
tsig
;
70
/* cache */
71
time_t
ixfr_disabled
;
72
};
73
84
extern
acl_type
*
acl_create
(
char
* address,
85
char
* port,
char
* tsig_name,
tsig_type
* tsig);
86
95
extern
acl_type
*
acl_find
(
acl_type
* acl,
struct
sockaddr_storage*
addr
,
96
tsig_rr_type
* tsig);
97
104
extern
int
acl_parse_family
(
const
char
* a);
105
114
extern
int
addr2ip
(
struct
sockaddr_storage
addr
,
char
* ip,
size_t
len);
115
122
extern
void
acl_cleanup
(
acl_type
* acl);
123
124
#endif
/* WIRE_ACL_H */
acl_struct::tsig_name
const char * tsig_name
Definition:
acl.h:68
acl_range_type
enum acl_range_enum acl_range_type
Definition:
acl.h:51
acl_create
acl_type * acl_create(char *address, char *port, char *tsig_name, tsig_type *tsig)
Definition:
acl.c:126
acl_struct::port
unsigned int port
Definition:
acl.h:62
acl_addr_storage
Definition:
listener.h:59
tsig_struct
Definition:
tsig.h:110
ACL_RANGE_SUBNET
@ ACL_RANGE_SUBNET
Definition:
acl.h:48
acl_find
acl_type * acl_find(acl_type *acl, struct sockaddr_storage *addr, tsig_rr_type *tsig)
Definition:
acl.c:437
acl_struct::ixfr_disabled
time_t ixfr_disabled
Definition:
acl.h:71
tsig_rr_struct
Definition:
tsig.h:123
acl_struct::range_mask
union acl_addr_storage range_mask
Definition:
acl.h:65
listener.h
ACL_RANGE_MINMAX
@ ACL_RANGE_MINMAX
Definition:
acl.h:49
acl_struct
Definition:
acl.h:58
acl_addr_storage::addr
struct in_addr addr
Definition:
listener.h:60
acl_parse_family
int acl_parse_family(const char *a)
Definition:
acl.c:104
tsig.h
acl_struct::address
char * address
Definition:
acl.h:61
acl_struct::range_type
acl_range_type range_type
Definition:
acl.h:66
addr2ip
int addr2ip(struct sockaddr_storage addr, char *ip, size_t len)
Definition:
acl.c:416
acl_range_enum
acl_range_enum
Definition:
acl.h:45
ACL_RANGE_SINGLE
@ ACL_RANGE_SINGLE
Definition:
acl.h:46
acl_struct::addr
union acl_addr_storage addr
Definition:
acl.h:64
acl_cleanup
void acl_cleanup(acl_type *acl)
Definition:
acl.c:456
ACL_RANGE_MASK
@ ACL_RANGE_MASK
Definition:
acl.h:47
acl_struct::next
acl_type * next
Definition:
acl.h:59
acl_struct::family
int family
Definition:
acl.h:63
acl_struct::tsig
tsig_type * tsig
Definition:
acl.h:69
Generated by
1.8.18