Electroneum
Loading...
Searching...
No Matches
packed_rrset.h
Go to the documentation of this file.
1/*
2 * util/data/packed_rrset.h - data storage for a set of resource records.
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
41
42#ifndef UTIL_DATA_PACKED_RRSET_H
43#define UTIL_DATA_PACKED_RRSET_H
45struct alloc_cache;
46struct regional;
47
51
53#define PACKED_RRSET_NSEC_AT_APEX 0x1
55#define PACKED_RRSET_PARENT_SIDE 0x2
59#define PACKED_RRSET_SOA_NEG 0x4
63#define PACKED_RRSET_FIXEDTTL 0x80000000
64
69#define RR_COUNT_MAX 0xffffff
70
98
126
171
198
260
272
282
290 struct alloc_cache* alloc);
291
298
305
312size_t ub_rrset_sizefunc(void* key, void* data);
313
320int ub_rrset_compare(void* k1, void* k2);
321
330
338void ub_rrset_key_delete(void* key, void* userdata);
339
345void rrset_data_delete(void* data, void* userdata);
346
353
360
366void packed_rrset_ttl_add(struct packed_rrset_data* data, time_t add);
367
379void get_cname_target(struct ub_packed_rrset_key* rrset, uint8_t** dname,
380 size_t* dname_len);
381
388
395
402void log_rrset_key(enum verbosity_value v, const char* str,
403 struct ub_packed_rrset_key* rrset);
404
414int packed_rr_to_string(struct ub_packed_rrset_key* rrset, size_t i,
415 time_t now, char* dest, size_t dest_len);
416
423void log_packed_rrset(enum verbosity_value v, const char* str,
424 struct ub_packed_rrset_key* rrset);
425
435 struct ub_packed_rrset_key* key, struct regional* region,
436 time_t now);
437
446 struct ub_packed_rrset_key* key, struct alloc_cache* alloc,
447 time_t now);
448
449#endif /* UTIL_DATA_PACKED_RRSET_H */
const char * key
verbosity_value
Definition log.h:49
uint32_t hashvalue_type
Definition lruhash.h:119
size_t ub_rrset_sizefunc(void *key, void *data)
int packed_rr_to_string(struct ub_packed_rrset_key *rrset, size_t i, time_t now, char *dest, size_t dest_len)
hashvalue_type rrset_key_hash(struct packed_rrset_key *key)
struct ub_packed_rrset_key * packed_rrset_copy_alloc(struct ub_packed_rrset_key *key, struct alloc_cache *alloc, time_t now)
void packed_rrset_ptr_fixup(struct packed_rrset_data *data)
void ub_rrset_key_delete(void *key, void *userdata)
void log_rrset_key(enum verbosity_value v, const char *str, struct ub_packed_rrset_key *rrset)
void ub_packed_rrset_parsedelete(struct ub_packed_rrset_key *pkey, struct alloc_cache *alloc)
void get_cname_target(struct ub_packed_rrset_key *rrset, uint8_t **dname, size_t *dname_len)
int ub_rrset_compare(void *k1, void *k2)
const char * rrset_trust_to_string(enum rrset_trust s)
rrset_trust
@ rrset_trust_nonauth_ans_AA
@ rrset_trust_glue
@ rrset_trust_ans_AA
@ rrset_trust_prim_noglue
@ rrset_trust_none
@ rrset_trust_sec_noglue
@ rrset_trust_ans_noAA
@ rrset_trust_add_AA
@ rrset_trust_validated
@ rrset_trust_ultimate
@ rrset_trust_auth_AA
@ rrset_trust_add_noAA
@ rrset_trust_auth_noAA
int rrsetdata_equal(struct packed_rrset_data *d1, struct packed_rrset_data *d2)
const char * sec_status_to_string(enum sec_status s)
size_t packed_rrset_sizeof(struct packed_rrset_data *data)
time_t ub_packed_rrset_ttl(struct ub_packed_rrset_key *key)
void packed_rrset_ttl_add(struct packed_rrset_data *data, time_t add)
uint64_t rrset_id_type
void rrset_data_delete(void *data, void *userdata)
sec_status
@ sec_status_bogus
@ sec_status_secure
@ sec_status_indeterminate
@ sec_status_secure_sentinel_fail
@ sec_status_insecure
@ sec_status_unchecked
struct ub_packed_rrset_key * packed_rrset_copy_region(struct ub_packed_rrset_key *key, struct regional *region, time_t now)
void log_packed_rrset(enum verbosity_value v, const char *str, struct ub_packed_rrset_key *rrset)
CXA_THROW_INFO_T void(* dest)(void *))
unsigned short uint16_t
Definition stdint.h:125
unsigned int uint32_t
Definition stdint.h:126
unsigned char uint8_t
Definition stdint.h:124
unsigned __int64 uint64_t
Definition stdint.h:136
Definition lruhash.h:203
enum sec_status security
enum rrset_trust trust
uint16_t rrset_class
struct packed_rrset rrset
struct packed_rrset_list * next
struct packed_rrset_key * k
struct packed_rrset_data * d
struct lruhash_entry entry
struct packed_rrset_key rk