Electroneum
Loading...
Searching...
No Matches
iter_delegpt.h
Go to the documentation of this file.
1/*
2 * iterator/iter_delegpt.h - delegation point with NS and address information.
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_DELEGPT_H
44#define ITERATOR_ITER_DELEGPT_H
45#include "util/log.h"
46struct regional;
47struct delegpt_ns;
48struct delegpt_addr;
49struct dns_msg;
51struct msgreply_entry;
52
89
125
157
164
171struct delegpt* delegpt_copy(struct delegpt* dp, struct regional* regional);
172
180int delegpt_set_name(struct delegpt* dp, struct regional* regional,
181 uint8_t* name);
182
191int delegpt_add_ns(struct delegpt* dp, struct regional* regional,
192 uint8_t* name, uint8_t lame);
193
203 struct ub_packed_rrset_key* ns_rrset, uint8_t lame);
204
219 uint8_t* name, size_t namelen, struct sockaddr_storage* addr,
220 socklen_t addrlen, uint8_t bogus, uint8_t lame);
221
231 struct ub_packed_rrset_key* rrset, uint8_t lame);
232
242 struct ub_packed_rrset_key* rrset, uint8_t lame);
243
254 struct ub_packed_rrset_key* rrset, uint8_t lame);
255
267int delegpt_add_addr(struct delegpt* dp, struct regional* regional,
268 struct sockaddr_storage* addr, socklen_t addrlen,
269 uint8_t bogus, uint8_t lame, char* tls_auth_name);
270
279 size_t namelen);
280
289 struct sockaddr_storage* addr, socklen_t addrlen);
290
296void delegpt_log(enum verbosity_value v, struct delegpt* dp);
297
299void delegpt_count_ns(struct delegpt* dp, size_t* numns, size_t* missing);
300
302void delegpt_count_addr(struct delegpt* dp, size_t* numaddr, size_t* numres,
303 size_t* numavail);
304
310
317
320
340 struct regional* regional);
341
347void delegpt_add_neg_msg(struct delegpt* dp, struct msgreply_entry* msg);
348
354void delegpt_no_ipv6(struct delegpt* dp);
355
361void delegpt_no_ipv4(struct delegpt* dp);
362
369
374void delegpt_free_mlc(struct delegpt* dp);
375
383
392
403int delegpt_add_addr_mlc(struct delegpt* dp, struct sockaddr_storage* addr,
404 socklen_t addrlen, uint8_t bogus, uint8_t lame, char* tls_auth_name);
405
419 struct sockaddr_storage* addr, socklen_t addrlen, uint8_t bogus,
420 uint8_t lame);
421
423size_t delegpt_get_mem(struct delegpt* dp);
424
425#endif /* ITERATOR_ITER_DELEGPT_H */
int delegpt_add_target_mlc(struct delegpt *dp, uint8_t *name, size_t namelen, struct sockaddr_storage *addr, socklen_t addrlen, uint8_t bogus, uint8_t lame)
int delegpt_add_rrset_AAAA(struct delegpt *dp, struct regional *regional, struct ub_packed_rrset_key *rrset, uint8_t lame)
struct delegpt * delegpt_create_mlc(uint8_t *name)
void delegpt_log(enum verbosity_value v, struct delegpt *dp)
struct delegpt * delegpt_create(struct regional *regional)
int delegpt_add_rrset_A(struct delegpt *dp, struct regional *regional, struct ub_packed_rrset_key *rrset, uint8_t lame)
void delegpt_no_ipv4(struct delegpt *dp)
void delegpt_count_ns(struct delegpt *dp, size_t *numns, size_t *missing)
int delegpt_add_ns_mlc(struct delegpt *dp, uint8_t *name, uint8_t lame)
int delegpt_add_target(struct delegpt *dp, struct regional *regional, uint8_t *name, size_t namelen, struct sockaddr_storage *addr, socklen_t addrlen, uint8_t bogus, uint8_t lame)
size_t delegpt_get_mem(struct delegpt *dp)
int delegpt_add_addr(struct delegpt *dp, struct regional *regional, struct sockaddr_storage *addr, socklen_t addrlen, uint8_t bogus, uint8_t lame, char *tls_auth_name)
int delegpt_add_ns(struct delegpt *dp, struct regional *regional, uint8_t *name, uint8_t lame)
struct delegpt_ns * delegpt_find_ns(struct delegpt *dp, uint8_t *name, size_t namelen)
int delegpt_set_name_mlc(struct delegpt *dp, uint8_t *name)
void delegpt_no_ipv6(struct delegpt *dp)
void delegpt_count_addr(struct delegpt *dp, size_t *numaddr, size_t *numres, size_t *numavail)
size_t delegpt_count_targets(struct delegpt *dp)
struct delegpt * delegpt_from_message(struct dns_msg *msg, struct regional *regional)
void delegpt_add_unused_targets(struct delegpt *dp)
void delegpt_free_mlc(struct delegpt *dp)
void delegpt_add_neg_msg(struct delegpt *dp, struct msgreply_entry *msg)
struct delegpt_addr * delegpt_find_addr(struct delegpt *dp, struct sockaddr_storage *addr, socklen_t addrlen)
struct delegpt * delegpt_copy(struct delegpt *dp, struct regional *regional)
int delegpt_set_name(struct delegpt *dp, struct regional *regional, uint8_t *name)
int delegpt_add_rrset(struct delegpt *dp, struct regional *regional, struct ub_packed_rrset_key *rrset, uint8_t lame)
int delegpt_rrset_add_ns(struct delegpt *dp, struct regional *regional, struct ub_packed_rrset_key *ns_rrset, uint8_t lame)
int delegpt_add_addr_mlc(struct delegpt *dp, struct sockaddr_storage *addr, socklen_t addrlen, uint8_t bogus, uint8_t lame, char *tls_auth_name)
size_t delegpt_count_missing_targets(struct delegpt *dp)
verbosity_value
Definition log.h:49
unsigned char uint8_t
Definition stdint.h:124
char * tls_auth_name
struct sockaddr_storage addr
struct delegpt_addr * next_result
struct delegpt_addr * next_target
socklen_t addrlen
uint8_t dnsseclame
struct delegpt_addr * next_usable
uint8_t lame
struct delegpt_ns * next
size_t namelen
uint8_t * name
uint8_t done_pside4
uint8_t done_pside6
uint8_t got6
uint8_t got4
uint8_t * name
struct delegpt_addr * result_list
struct delegpt_addr * target_list
uint8_t auth_dp
int namelabs
uint8_t dp_type_mlc
uint8_t has_parent_side_NS
uint8_t ssl_upstream
size_t namelen
struct delegpt_ns * nslist
struct delegpt_addr * usable_list
Definition dns.h:61
Definition msgreply.h:211