Electroneum
Toggle main menu visibility
Loading...
Searching...
No Matches
iter_fwd.h
Go to the documentation of this file.
1
/*
2
* iterator/iter_fwd.h - iterative resolver module forward zones.
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 ITERATOR_ITER_FWD_H
44
#define ITERATOR_ITER_FWD_H
45
#include "
util/rbtree.h
"
46
struct
config_file
;
47
struct
delegpt
;
48
52
struct
iter_forwards
{
60
rbtree_type
*
tree
;
61
};
62
66
struct
iter_forward_zone
{
68
rbnode_type
node
;
70
uint8_t
*
name
;
72
size_t
namelen
;
74
int
namelabs
;
80
struct
delegpt
*
dp
;
82
struct
iter_forward_zone
*
parent
;
84
uint16_t
dclass
;
85
};
86
91
struct
iter_forwards
*
forwards_create
(
void
);
92
97
void
forwards_delete
(
struct
iter_forwards
* fwd);
98
105
int
forwards_apply_cfg
(
struct
iter_forwards
* fwd,
struct
config_file
* cfg);
106
114
struct
delegpt
*
forwards_find
(
struct
iter_forwards
* fwd,
uint8_t
* qname,
115
uint16_t
qclass);
116
128
struct
delegpt
*
forwards_lookup
(
struct
iter_forwards
* fwd,
129
uint8_t
* qname,
uint16_t
qclass);
130
137
struct
delegpt
*
forwards_lookup_root
(
struct
iter_forwards
* fwd,
138
uint16_t
qclass);
139
146
int
forwards_next_root
(
struct
iter_forwards
* fwd,
uint16_t
* qclass);
147
153
size_t
forwards_get_mem
(
struct
iter_forwards
* fwd);
154
156
int
fwd_cmp
(
const
void
* k1,
const
void
* k2);
157
167
int
forwards_add_zone
(
struct
iter_forwards
* fwd,
uint16_t
c,
168
struct
delegpt
* dp);
169
177
void
forwards_delete_zone
(
struct
iter_forwards
* fwd,
uint16_t
c,
uint8_t
* nm);
178
188
int
forwards_add_stub_hole
(
struct
iter_forwards
* fwd,
uint16_t
c,
uint8_t
* nm);
189
196
void
forwards_delete_stub_hole
(
struct
iter_forwards
* fwd,
uint16_t
c,
197
uint8_t
* nm);
198
199
#endif
/* ITERATOR_ITER_FWD_H */
forwards_lookup
struct delegpt * forwards_lookup(struct iter_forwards *fwd, uint8_t *qname, uint16_t qclass)
forwards_lookup_root
struct delegpt * forwards_lookup_root(struct iter_forwards *fwd, uint16_t qclass)
forwards_find
struct delegpt * forwards_find(struct iter_forwards *fwd, uint8_t *qname, uint16_t qclass)
forwards_add_stub_hole
int forwards_add_stub_hole(struct iter_forwards *fwd, uint16_t c, uint8_t *nm)
forwards_add_zone
int forwards_add_zone(struct iter_forwards *fwd, uint16_t c, struct delegpt *dp)
fwd_cmp
int fwd_cmp(const void *k1, const void *k2)
forwards_delete
void forwards_delete(struct iter_forwards *fwd)
forwards_delete_stub_hole
void forwards_delete_stub_hole(struct iter_forwards *fwd, uint16_t c, uint8_t *nm)
forwards_get_mem
size_t forwards_get_mem(struct iter_forwards *fwd)
forwards_apply_cfg
int forwards_apply_cfg(struct iter_forwards *fwd, struct config_file *cfg)
forwards_next_root
int forwards_next_root(struct iter_forwards *fwd, uint16_t *qclass)
forwards_create
struct iter_forwards * forwards_create(void)
forwards_delete_zone
void forwards_delete_zone(struct iter_forwards *fwd, uint16_t c, uint8_t *nm)
rbtree.h
uint16_t
unsigned short uint16_t
Definition
stdint.h:125
uint8_t
unsigned char uint8_t
Definition
stdint.h:124
config_file
Definition
config_file.h:68
delegpt
Definition
iter_delegpt.h:57
iter_forward_zone
Definition
iter_fwd.h:66
iter_forward_zone::dp
struct delegpt * dp
Definition
iter_fwd.h:80
iter_forward_zone::node
rbnode_type node
Definition
iter_fwd.h:68
iter_forward_zone::dclass
uint16_t dclass
Definition
iter_fwd.h:84
iter_forward_zone::namelabs
int namelabs
Definition
iter_fwd.h:74
iter_forward_zone::name
uint8_t * name
Definition
iter_fwd.h:70
iter_forward_zone::parent
struct iter_forward_zone * parent
Definition
iter_fwd.h:82
iter_forward_zone::namelen
size_t namelen
Definition
iter_fwd.h:72
iter_forwards
Definition
iter_fwd.h:52
iter_forwards::tree
rbtree_type * tree
Definition
iter_fwd.h:60
rbnode_type
Definition
rbtree.h:55
rbtree_type
Definition
rbtree.h:76
external
unbound
iterator
iter_fwd.h
Generated on
for Electroneum by
1.17.0