- Re-cloned zonemaster-ldns with --recurse-submodules so the bundled ldns C library source (including Changelog and configure.ac) is present - Added autoconf, automake, libtool to Dockerfile.backend ldns-build stage so libtoolize + autoreconf can generate ldns/configure during make Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
3435 lines
62 KiB
Plaintext
3435 lines
62 KiB
Plaintext
#include "EXTERN.h"
|
|
#include "perl.h"
|
|
#include "XSUB.h"
|
|
|
|
#include "ppport.h"
|
|
|
|
#include "ldns/ldns.h"
|
|
#include "ldns/error.h"
|
|
#include "ldns/rr.h"
|
|
#include "ldns/keys.h"
|
|
#include "ldns/dname.h"
|
|
#include "ldns/host2str.h"
|
|
#include "ldns/rdata.h"
|
|
#include "ldns/rbtree.h"
|
|
#include "ldns/resolver.h"
|
|
#include "ldns/packet.h"
|
|
#include "ldns/dnssec.h"
|
|
|
|
#include "ldns/dnssec_zone.h"
|
|
#include "ldns/dnssec_verify.h"
|
|
#include "ldns/dnssec_sign.h"
|
|
#include "ldns/rr_functions.h"
|
|
|
|
#if LDNS_REVISION < ((1<<16)|(6<<8)|(17))
|
|
#define LDNS_RDF_TYPE_HIP LDNS_RDF_TYPE_TSIG
|
|
#endif
|
|
|
|
#include "const-c.inc"
|
|
|
|
typedef ldns_zone * DNS__LDNS__Zone;
|
|
typedef ldns_rr_list * DNS__LDNS__RRList;
|
|
typedef ldns_rr * DNS__LDNS__RR;
|
|
typedef ldns_rr * DNS__LDNS__RR__Opt;
|
|
typedef ldns_rdf * DNS__LDNS__RData;
|
|
typedef ldns_rdf * DNS__LDNS__RData__Opt;
|
|
typedef ldns_dnssec_zone * DNS__LDNS__DNSSecZone;
|
|
typedef ldns_dnssec_rrsets * DNS__LDNS__DNSSecRRSets;
|
|
typedef ldns_dnssec_rrs * DNS__LDNS__DNSSecRRs;
|
|
typedef ldns_dnssec_name * DNS__LDNS__DNSSecName;
|
|
typedef ldns_rbtree_t * DNS__LDNS__RBTree;
|
|
typedef ldns_rbnode_t * DNS__LDNS__RBNode;
|
|
typedef ldns_resolver * DNS__LDNS__Resolver;
|
|
typedef ldns_pkt * DNS__LDNS__Packet;
|
|
typedef ldns_key * DNS__LDNS__Key;
|
|
typedef ldns_key_list * DNS__LDNS__KeyList;
|
|
typedef ldns_dnssec_data_chain * DNS__LDNS__DNSSecDataChain;
|
|
typedef ldns_dnssec_trust_tree * DNS__LDNS__DNSSecTrustTree;
|
|
typedef const char * Mortal_PV;
|
|
|
|
typedef ldns_pkt_opcode LDNS_Pkt_Opcode;
|
|
typedef ldns_pkt_rcode LDNS_Pkt_Rcode;
|
|
typedef ldns_pkt_section LDNS_Pkt_Section;
|
|
typedef ldns_pkt_type LDNS_Pkt_Type;
|
|
typedef ldns_rr_type LDNS_RR_Type;
|
|
typedef ldns_rr_class LDNS_RR_Class;
|
|
typedef ldns_rdf_type LDNS_RDF_Type;
|
|
typedef ldns_hash LDNS_Hash;
|
|
typedef ldns_status LDNS_Status;
|
|
typedef ldns_signing_algorithm LDNS_Signing_Algorithm;
|
|
|
|
/* callback function used by the signing methods */
|
|
int sign_policy(ldns_rr *sig, void *n) {
|
|
return *(uint16_t*)n;
|
|
}
|
|
|
|
/* utility methods */
|
|
void add_cloned_rrs_to_list(ldns_rr_list * list, ldns_rr_list * add) {
|
|
size_t count;
|
|
size_t i;
|
|
|
|
count = ldns_rr_list_rr_count(add);
|
|
|
|
for(i = 0; i < count; i++) {
|
|
ldns_rr_list_push_rr(list, ldns_rr_clone(ldns_rr_list_rr(add, i)));
|
|
}
|
|
}
|
|
|
|
|
|
#if LDNS_REVISION < ((1<<16)|(6<<8)|(12))
|
|
ldns_dnssec_trust_tree *ldns_dnssec_derive_trust_tree_time(
|
|
ldns_dnssec_data_chain *data_chain,
|
|
ldns_rr *rr, time_t check_time);
|
|
ldns_rr_list *ldns_fetch_valid_domain_keys_time(const ldns_resolver * res,
|
|
const ldns_rdf * domain, const ldns_rr_list * keys,
|
|
time_t check_time, ldns_status *status);
|
|
ldns_rr_list *ldns_validate_domain_dnskey_time(
|
|
const ldns_resolver *res, const ldns_rdf *domain,
|
|
const ldns_rr_list *keys, time_t check_time);
|
|
ldns_rr_list *ldns_validate_domain_ds_time(
|
|
const ldns_resolver *res, const ldns_rdf *domain,
|
|
const ldns_rr_list * keys, time_t check_time);
|
|
ldns_status ldns_verify_rrsig_keylist_time(
|
|
ldns_rr_list *rrset, ldns_rr *rrsig,
|
|
const ldns_rr_list *keys, time_t check_time,
|
|
ldns_rr_list *good_keys);
|
|
ldns_status ldns_verify_trusted_time(
|
|
ldns_resolver *res, ldns_rr_list *rrset,
|
|
ldns_rr_list *rrsigs, time_t check_time,
|
|
ldns_rr_list *validating_keys);
|
|
ldns_status ldns_verify_rrsig_time(
|
|
ldns_rr_list *rrset, ldns_rr *rrsig,
|
|
ldns_rr *key, time_t check_time);
|
|
ldns_status ldns_verify_time(ldns_rr_list *rrset,
|
|
ldns_rr_list *rrsig,
|
|
const ldns_rr_list *keys,
|
|
time_t check_time,
|
|
ldns_rr_list *good_keys);
|
|
|
|
ldns_dnssec_trust_tree *ldns_dnssec_derive_trust_tree_time(
|
|
ldns_dnssec_data_chain *data_chain,
|
|
ldns_rr *rr, time_t check_time) {
|
|
Perl_croak(aTHX_ "function ldns_dnssec_derive_trust_tree_time is not implemented in this version of ldns");
|
|
}
|
|
|
|
ldns_rr_list *ldns_fetch_valid_domain_keys_time(const ldns_resolver * res,
|
|
const ldns_rdf * domain, const ldns_rr_list * keys,
|
|
time_t check_time, ldns_status *status) {
|
|
Perl_croak(aTHX_ "function ldns_fetch_valid_domain_keys_time is not implemented in this version of ldns");
|
|
}
|
|
|
|
ldns_rr_list *ldns_validate_domain_dnskey_time(
|
|
const ldns_resolver *res, const ldns_rdf *domain,
|
|
const ldns_rr_list *keys, time_t check_time) {
|
|
Perl_croak(aTHX_ "function ldns_validate_domain_dnskey_time is not implemented in this version of ldns");
|
|
}
|
|
|
|
ldns_rr_list *ldns_validate_domain_ds_time(
|
|
const ldns_resolver *res, const ldns_rdf *domain,
|
|
const ldns_rr_list * keys, time_t check_time) {
|
|
Perl_croak(aTHX_ "function ldns_validate_domain_ds_time is not implemented in this version of ldns");
|
|
}
|
|
|
|
ldns_status ldns_verify_rrsig_keylist_time(
|
|
ldns_rr_list *rrset, ldns_rr *rrsig,
|
|
const ldns_rr_list *keys, time_t check_time,
|
|
ldns_rr_list *good_keys) {
|
|
Perl_croak(aTHX_ "function ldns_verify_rrsig_keylist_time is not implemented in this version of ldns");
|
|
}
|
|
|
|
ldns_status ldns_verify_trusted_time(
|
|
ldns_resolver *res, ldns_rr_list *rrset,
|
|
ldns_rr_list *rrsigs, time_t check_time,
|
|
ldns_rr_list *validating_keys) {
|
|
Perl_croak(aTHX_ "function ldns_verify_trusted_time is not implemented in this version of ldns");
|
|
}
|
|
|
|
ldns_status ldns_verify_rrsig_time(
|
|
ldns_rr_list *rrset, ldns_rr *rrsig,
|
|
ldns_rr *key, time_t check_time) {
|
|
Perl_croak(aTHX_ "function ldns_verify_rrsig_time is not implemented in this version of ldns");
|
|
}
|
|
|
|
ldns_status ldns_verify_time(ldns_rr_list *rrset,
|
|
ldns_rr_list *rrsig,
|
|
const ldns_rr_list *keys,
|
|
time_t check_time,
|
|
ldns_rr_list *good_keys) {
|
|
Perl_croak(aTHX_ "function ldns_verify_time is not implemented in this version of ldns");
|
|
}
|
|
|
|
#endif
|
|
|
|
|
|
MODULE = DNS::LDNS PACKAGE = DNS::LDNS
|
|
|
|
INCLUDE: const-xs.inc
|
|
|
|
const char *
|
|
ldns_get_errorstr_by_id(s)
|
|
LDNS_Status s
|
|
ALIAS:
|
|
errorstr_by_id = 1
|
|
|
|
Mortal_PV
|
|
ldns_rr_type2str(type)
|
|
LDNS_RR_Type type;
|
|
ALIAS:
|
|
rr_type2str = 1
|
|
|
|
Mortal_PV
|
|
ldns_rr_class2str(class)
|
|
LDNS_RR_Class class;
|
|
ALIAS:
|
|
rr_class2str = 1
|
|
|
|
Mortal_PV
|
|
ldns_pkt_opcode2str(opcode)
|
|
LDNS_Pkt_Opcode opcode;
|
|
ALIAS:
|
|
pkt_opcode2str = 1
|
|
|
|
Mortal_PV
|
|
ldns_pkt_rcode2str(rcode)
|
|
LDNS_Pkt_Rcode rcode;
|
|
ALIAS:
|
|
pkt_rcode2str = 1
|
|
|
|
LDNS_RR_Type
|
|
ldns_get_rr_type_by_name(name)
|
|
char * name;
|
|
ALIAS:
|
|
rr_type_by_name = 1
|
|
|
|
LDNS_RR_Class
|
|
ldns_get_rr_class_by_name(name)
|
|
char * name;
|
|
ALIAS:
|
|
rr_class_by_name = 1
|
|
|
|
DNS__LDNS__RR
|
|
ldns_dnssec_create_nsec(from, to, nsec_type)
|
|
DNS__LDNS__DNSSecName from;
|
|
DNS__LDNS__DNSSecName to;
|
|
LDNS_RR_Type nsec_type;
|
|
ALIAS:
|
|
dnssec_create_nsec = 1
|
|
|
|
DNS__LDNS__RR
|
|
dnssec_create_nsec3(from, to, zone_name, algorithm, flags, iterations, salt)
|
|
DNS__LDNS__DNSSecName from;
|
|
DNS__LDNS__DNSSecName to;
|
|
DNS__LDNS__RData zone_name;
|
|
uint8_t algorithm;
|
|
uint8_t flags;
|
|
uint16_t iterations;
|
|
char * salt;
|
|
CODE:
|
|
RETVAL = ldns_dnssec_create_nsec3(from, to, zone_name, algorithm, flags, iterations, strlen(salt), (uint8_t*)salt);
|
|
OUTPUT:
|
|
RETVAL
|
|
|
|
DNS__LDNS__RR
|
|
ldns_create_nsec(current, next, rrs)
|
|
DNS__LDNS__RData current;
|
|
DNS__LDNS__RData next;
|
|
DNS__LDNS__RRList rrs;
|
|
ALIAS:
|
|
create_nsec = 1
|
|
|
|
DNS__LDNS__RR
|
|
create_nsec3(cur_owner, cur_zone, rrs, algorithm, flags, iterations, salt, emptynonterminal)
|
|
DNS__LDNS__RData cur_owner;
|
|
DNS__LDNS__RData cur_zone;
|
|
DNS__LDNS__RRList rrs;
|
|
uint8_t algorithm;
|
|
uint8_t flags;
|
|
uint16_t iterations;
|
|
char * salt;
|
|
bool emptynonterminal;
|
|
CODE:
|
|
RETVAL = ldns_create_nsec3(cur_owner, cur_zone, rrs, algorithm,
|
|
flags, iterations, strlen(salt), (uint8_t*)salt, emptynonterminal);
|
|
OUTPUT:
|
|
RETVAL
|
|
|
|
LDNS_Signing_Algorithm
|
|
ldns_get_signing_algorithm_by_name(name)
|
|
const char * name;
|
|
ALIAS:
|
|
signing_algorithm_by_name = 1
|
|
|
|
int
|
|
ldns_key_algo_supported(algorithm)
|
|
int algorithm;
|
|
ALIAS:
|
|
key_algorithm_supported = 1
|
|
|
|
DNS__LDNS__RR
|
|
ldns_read_anchor_file(filename)
|
|
char * filename;
|
|
ALIAS:
|
|
read_anchor_file = 1
|
|
|
|
MODULE = DNS::LDNS PACKAGE = DNS::LDNS::GC
|
|
|
|
void
|
|
ldns_zone_deep_free(zone)
|
|
DNS__LDNS__Zone zone;
|
|
ALIAS:
|
|
_zone_deep_free = 1
|
|
|
|
void
|
|
ldns_rr_list_deep_free(list)
|
|
DNS__LDNS__RRList list;
|
|
ALIAS:
|
|
_rrlist_deep_free = 1
|
|
|
|
void
|
|
ldns_rr_free(rr)
|
|
DNS__LDNS__RR rr;
|
|
ALIAS:
|
|
_rr_free = 1
|
|
|
|
void
|
|
ldns_rdf_deep_free(rdf)
|
|
DNS__LDNS__RData rdf;
|
|
ALIAS:
|
|
_rdata_deep_free = 1
|
|
|
|
void
|
|
ldns_dnssec_zone_deep_free(zone)
|
|
DNS__LDNS__DNSSecZone zone;
|
|
ALIAS:
|
|
_dnssec_zone_deep_free = 1
|
|
|
|
void
|
|
ldns_dnssec_name_deep_free(name)
|
|
DNS__LDNS__DNSSecName name;
|
|
ALIAS:
|
|
_dnssec_name_deep_free = 1
|
|
|
|
void
|
|
ldns_resolver_deep_free(resolver)
|
|
DNS__LDNS__Resolver resolver;
|
|
ALIAS:
|
|
_resolver_deep_free = 1
|
|
|
|
void
|
|
ldns_pkt_free(pkt)
|
|
DNS__LDNS__Packet pkt;
|
|
ALIAS:
|
|
_packet_free = 1
|
|
|
|
void
|
|
ldns_key_deep_free(key)
|
|
DNS__LDNS__Key key;
|
|
ALIAS:
|
|
_key_deep_free = 1
|
|
|
|
void
|
|
ldns_key_list_free(keylist)
|
|
DNS__LDNS__KeyList keylist;
|
|
ALIAS:
|
|
_keylist_free = 1
|
|
|
|
void
|
|
ldns_dnssec_data_chain_deep_free(chain)
|
|
DNS__LDNS__DNSSecDataChain chain;
|
|
ALIAS:
|
|
_dnssec_datachain_deep_free = 1
|
|
|
|
void
|
|
ldns_dnssec_trust_tree_free(tree)
|
|
DNS__LDNS__DNSSecTrustTree tree;
|
|
ALIAS:
|
|
_dnssec_trusttree_free = 1
|
|
|
|
MODULE = DNS::LDNS PACKAGE = DNS::LDNS::Zone
|
|
|
|
PROTOTYPES: ENABLE
|
|
|
|
DNS__LDNS__Zone
|
|
ldns_zone_new()
|
|
ALIAS:
|
|
_new = 1
|
|
|
|
DNS__LDNS__Zone
|
|
_new_from_file(fp, origin, ttl, c, s, line_nr)
|
|
FILE* fp;
|
|
DNS__LDNS__RData__Opt origin;
|
|
uint32_t ttl;
|
|
LDNS_RR_Class c;
|
|
LDNS_Status s;
|
|
int line_nr;
|
|
PREINIT:
|
|
ldns_zone *z;
|
|
CODE:
|
|
if (ttl == 0) { ttl = 0; }
|
|
RETVAL = NULL;
|
|
s = ldns_zone_new_frm_fp_l(&z, fp, origin, ttl, c, &line_nr);
|
|
|
|
if (s == LDNS_STATUS_OK) {
|
|
RETVAL = z;
|
|
}
|
|
|
|
OUTPUT:
|
|
RETVAL
|
|
s
|
|
line_nr
|
|
|
|
void
|
|
print(zone, fp)
|
|
DNS__LDNS__Zone zone;
|
|
FILE* fp;
|
|
CODE:
|
|
ldns_zone_print(fp, zone);
|
|
|
|
void
|
|
canonicalize(zone)
|
|
DNS__LDNS__Zone zone;
|
|
PREINIT:
|
|
ldns_rr_list *list;
|
|
size_t count;
|
|
size_t i;
|
|
CODE:
|
|
list = ldns_zone_rrs(zone);
|
|
count = ldns_rr_list_rr_count(list);
|
|
|
|
ldns_rr2canonical(ldns_zone_soa(zone));
|
|
for (i = 0; i < ldns_rr_list_rr_count(ldns_zone_rrs(zone)); i++) {
|
|
ldns_rr2canonical(ldns_rr_list_rr(ldns_zone_rrs(zone), i));
|
|
}
|
|
|
|
void
|
|
ldns_zone_sort(zone)
|
|
DNS__LDNS__Zone zone;
|
|
ALIAS:
|
|
sort = 1
|
|
|
|
DNS__LDNS__RR
|
|
ldns_zone_soa(zone)
|
|
DNS__LDNS__Zone zone;
|
|
ALIAS:
|
|
_soa = 1
|
|
|
|
void
|
|
ldns_zone_set_soa(zone, soa)
|
|
DNS__LDNS__Zone zone;
|
|
DNS__LDNS__RR soa;
|
|
ALIAS:
|
|
_set_soa = 1
|
|
|
|
DNS__LDNS__RRList
|
|
ldns_zone_rrs(zone)
|
|
DNS__LDNS__Zone zone;
|
|
ALIAS:
|
|
_rrs = 1
|
|
|
|
void
|
|
ldns_zone_set_rrs(zone, list)
|
|
DNS__LDNS__Zone zone;
|
|
DNS__LDNS__RRList list;
|
|
ALIAS:
|
|
_set_rrs = 1
|
|
|
|
DNS__LDNS__Zone
|
|
ldns_zone_sign(zone, keylist)
|
|
DNS__LDNS__Zone zone;
|
|
DNS__LDNS__KeyList keylist;
|
|
ALIAS:
|
|
sign = 1
|
|
|
|
DNS__LDNS__Zone
|
|
sign_nsec3(zone, keylist, algorithm, flags, iterations, salt)
|
|
DNS__LDNS__Zone zone;
|
|
DNS__LDNS__KeyList keylist;
|
|
uint8_t algorithm;
|
|
uint8_t flags;
|
|
uint16_t iterations;
|
|
unsigned char * salt;
|
|
CODE:
|
|
RETVAL = ldns_zone_sign_nsec3(zone, keylist, algorithm, flags, iterations, strlen(salt), (uint8_t*)salt);
|
|
OUTPUT:
|
|
RETVAL
|
|
|
|
|
|
MODULE = DNS::LDNS PACKAGE = DNS::LDNS::RRList
|
|
|
|
PROTOTYPES: ENABLE
|
|
|
|
DNS__LDNS__RRList
|
|
ldns_rr_list_new()
|
|
ALIAS:
|
|
_new = 1
|
|
|
|
DNS__LDNS__RRList
|
|
_new_hosts_from_file(fp, line_nr)
|
|
FILE * fp;
|
|
int line_nr;
|
|
CODE:
|
|
RETVAL = ldns_get_rr_list_hosts_frm_fp_l(fp, &line_nr);
|
|
OUTPUT:
|
|
RETVAL
|
|
|
|
DNS__LDNS__RRList
|
|
ldns_rr_list_clone(list)
|
|
DNS__LDNS__RRList list;
|
|
ALIAS:
|
|
clone = 1
|
|
|
|
void
|
|
print(list, fp)
|
|
DNS__LDNS__RRList list;
|
|
FILE* fp;
|
|
CODE:
|
|
ldns_rr_list_print(fp, list);
|
|
|
|
Mortal_PV
|
|
ldns_rr_list2str(list)
|
|
DNS__LDNS__RRList list;
|
|
ALIAS:
|
|
to_string = 1
|
|
|
|
DNS__LDNS__RR
|
|
ldns_rr_list_rr(list, i)
|
|
DNS__LDNS__RRList list;
|
|
size_t i;
|
|
ALIAS:
|
|
_rr = 1
|
|
|
|
DNS__LDNS__RR
|
|
ldns_rr_list_pop_rr(list)
|
|
DNS__LDNS__RRList list;
|
|
ALIAS:
|
|
pop = 1
|
|
|
|
bool
|
|
ldns_rr_list_push_rr(list, rr)
|
|
DNS__LDNS__RRList list;
|
|
DNS__LDNS__RR rr;
|
|
ALIAS:
|
|
_push = 1
|
|
|
|
size_t
|
|
ldns_rr_list_rr_count(list)
|
|
DNS__LDNS__RRList list;
|
|
ALIAS:
|
|
rr_count = 1
|
|
|
|
int
|
|
ldns_rr_list_compare(list, otherlist)
|
|
DNS__LDNS__RRList list;
|
|
DNS__LDNS__RRList otherlist;
|
|
ALIAS:
|
|
compare = 1
|
|
|
|
DNS__LDNS__RRList
|
|
ldns_rr_list_subtype_by_rdf(list, rdf, pos)
|
|
DNS__LDNS__RRList list;
|
|
DNS__LDNS__RData rdf;
|
|
size_t pos;
|
|
ALIAS:
|
|
subtype_by_rdata = 1
|
|
|
|
DNS__LDNS__RRList
|
|
ldns_rr_list_pop_rrset(list)
|
|
DNS__LDNS__RRList list;
|
|
ALIAS:
|
|
pop_rrset = 1
|
|
|
|
bool
|
|
ldns_is_rrset(list)
|
|
DNS__LDNS__RRList list;
|
|
ALIAS:
|
|
is_rrset = 1
|
|
|
|
bool
|
|
ldns_rr_list_contains_rr(list, rr)
|
|
DNS__LDNS__RRList list;
|
|
DNS__LDNS__RR rr;
|
|
ALIAS:
|
|
contains_rr = 1
|
|
|
|
DNS__LDNS__RRList
|
|
ldns_rr_list_pop_rr_list(list, count)
|
|
DNS__LDNS__RRList list;
|
|
size_t count;
|
|
ALIAS:
|
|
pop_list = 1
|
|
|
|
bool
|
|
_push_list(list, otherlist)
|
|
DNS__LDNS__RRList list;
|
|
DNS__LDNS__RRList otherlist;
|
|
PREINIT:
|
|
bool ret;
|
|
CODE:
|
|
ret = ldns_rr_list_push_rr_list(list, otherlist);
|
|
if (ret) {
|
|
ldns_rr_list_free(otherlist);
|
|
}
|
|
OUTPUT:
|
|
RETVAL
|
|
|
|
LDNS_Status
|
|
_verify_rrsig_keylist(rrset, rrsig, keys, good_keys)
|
|
DNS__LDNS__RRList rrset;
|
|
DNS__LDNS__RR rrsig;
|
|
DNS__LDNS__RRList keys;
|
|
DNS__LDNS__RRList good_keys;
|
|
PREINIT:
|
|
DNS__LDNS__RRList gk;
|
|
CODE:
|
|
gk = ldns_rr_list_new();
|
|
RETVAL = ldns_verify_rrsig_keylist(rrset, rrsig, keys, good_keys);
|
|
add_cloned_rrs_to_list(good_keys, gk);
|
|
ldns_rr_list_free(gk);
|
|
OUTPUT:
|
|
RETVAL
|
|
|
|
LDNS_Status
|
|
_verify_rrsig_keylist_time(rrset, rrsig, keys, check_time, good_keys)
|
|
DNS__LDNS__RRList rrset;
|
|
DNS__LDNS__RR rrsig;
|
|
DNS__LDNS__RRList keys;
|
|
time_t check_time;
|
|
DNS__LDNS__RRList good_keys;
|
|
PREINIT:
|
|
DNS__LDNS__RRList gk;
|
|
CODE:
|
|
gk = ldns_rr_list_new();
|
|
RETVAL = ldns_verify_rrsig_keylist_time(
|
|
rrset, rrsig, keys, check_time, good_keys);
|
|
add_cloned_rrs_to_list(good_keys, gk);
|
|
ldns_rr_list_free(gk);
|
|
OUTPUT:
|
|
RETVAL
|
|
|
|
LDNS_Status
|
|
_verify_rrsig_keylist_notime(rrset, rrsig, keys, good_keys)
|
|
DNS__LDNS__RRList rrset;
|
|
DNS__LDNS__RR rrsig;
|
|
DNS__LDNS__RRList keys;
|
|
DNS__LDNS__RRList good_keys;
|
|
PREINIT:
|
|
DNS__LDNS__RRList gk;
|
|
CODE:
|
|
gk = ldns_rr_list_new();
|
|
RETVAL = ldns_verify_rrsig_keylist_notime(rrset, rrsig, keys, NULL);
|
|
add_cloned_rrs_to_list(good_keys, gk);
|
|
ldns_rr_list_free(gk);
|
|
OUTPUT:
|
|
RETVAL
|
|
|
|
LDNS_Status
|
|
ldns_verify_rrsig(rrset, rrsig, key)
|
|
DNS__LDNS__RRList rrset;
|
|
DNS__LDNS__RR rrsig;
|
|
DNS__LDNS__RR key;
|
|
ALIAS:
|
|
_verify_rrsig = 1
|
|
|
|
LDNS_Status
|
|
ldns_verify_rrsig_time(rrset, rrsig, key, check_time)
|
|
DNS__LDNS__RRList rrset;
|
|
DNS__LDNS__RR rrsig;
|
|
DNS__LDNS__RR key;
|
|
time_t check_time;
|
|
ALIAS:
|
|
_verify_rrsig_time = 1
|
|
|
|
LDNS_Status
|
|
_verify(rrset, rrsig, keys, good_keys)
|
|
DNS__LDNS__RRList rrset;
|
|
DNS__LDNS__RRList rrsig;
|
|
DNS__LDNS__RRList keys;
|
|
DNS__LDNS__RRList good_keys;
|
|
PREINIT:
|
|
DNS__LDNS__RRList gk;
|
|
CODE:
|
|
gk = ldns_rr_list_new();
|
|
RETVAL = ldns_verify(rrset, rrsig, keys, gk);
|
|
add_cloned_rrs_to_list(good_keys, gk);
|
|
ldns_rr_list_free(gk);
|
|
OUTPUT:
|
|
RETVAL
|
|
|
|
LDNS_Status
|
|
_verify_time(rrset, rrsig, keys, check_time, good_keys)
|
|
DNS__LDNS__RRList rrset;
|
|
DNS__LDNS__RRList rrsig;
|
|
DNS__LDNS__RRList keys;
|
|
time_t check_time;
|
|
DNS__LDNS__RRList good_keys;
|
|
PREINIT:
|
|
DNS__LDNS__RRList gk;
|
|
CODE:
|
|
gk = ldns_rr_list_new();
|
|
RETVAL = ldns_verify_time(rrset, rrsig, keys, check_time, gk);
|
|
add_cloned_rrs_to_list(good_keys, gk);
|
|
ldns_rr_list_free(gk);
|
|
OUTPUT:
|
|
RETVAL
|
|
|
|
LDNS_Status
|
|
_verify_notime(rrset, rrsig, keys, good_keys)
|
|
DNS__LDNS__RRList rrset;
|
|
DNS__LDNS__RRList rrsig;
|
|
DNS__LDNS__RRList keys;
|
|
DNS__LDNS__RRList good_keys;
|
|
PREINIT:
|
|
DNS__LDNS__RRList gk;
|
|
CODE:
|
|
gk = ldns_rr_list_new();
|
|
RETVAL = ldns_verify_notime(rrset, rrsig, keys, gk);
|
|
add_cloned_rrs_to_list(good_keys, gk);
|
|
ldns_rr_list_free(gk);
|
|
OUTPUT:
|
|
RETVAL
|
|
|
|
DNS__LDNS__RR
|
|
ldns_create_empty_rrsig(rrset, current_key)
|
|
DNS__LDNS__RRList rrset;
|
|
DNS__LDNS__Key current_key;
|
|
ALIAS:
|
|
create_empty_rrsig = 1
|
|
|
|
DNS__LDNS__RRList
|
|
ldns_sign_public(rrset, keys)
|
|
DNS__LDNS__RRList rrset;
|
|
DNS__LDNS__KeyList keys;
|
|
ALIAS:
|
|
sign_public = 1
|
|
|
|
void
|
|
ldns_rr_list_sort(list)
|
|
DNS__LDNS__RRList list;
|
|
ALIAS:
|
|
sort = 1
|
|
|
|
void
|
|
ldns_rr_list_sort_nsec3(list)
|
|
DNS__LDNS__RRList list;
|
|
ALIAS:
|
|
sort_nsec3 = 1
|
|
|
|
void
|
|
ldns_rr_list2canonical(list)
|
|
DNS__LDNS__RRList list;
|
|
ALIAS:
|
|
canonicalize = 1
|
|
|
|
DNS__LDNS__RR
|
|
ldns_dnssec_get_dnskey_for_rrsig(rr, rrlist)
|
|
DNS__LDNS__RR rr;
|
|
DNS__LDNS__RRList rrlist;
|
|
ALIAS:
|
|
_get_dnskey_for_rrsig = 1
|
|
|
|
DNS__LDNS__RR
|
|
ldns_dnssec_get_rrsig_for_name_and_type(name, type, rrsigs)
|
|
DNS__LDNS__RData name;
|
|
LDNS_RR_Type type;
|
|
DNS__LDNS__RRList rrsigs;
|
|
ALIAS:
|
|
_get_rrsig_for_name_and_type = 1
|
|
|
|
|
|
MODULE = DNS::LDNS PACKAGE = DNS::LDNS::RR
|
|
|
|
PROTOTYPES: ENABLE
|
|
|
|
DNS__LDNS__RR
|
|
ldns_rr_new()
|
|
ALIAS:
|
|
_new = 1
|
|
|
|
DNS__LDNS__RR
|
|
ldns_rr_new_frm_type(t)
|
|
LDNS_RR_Type t;
|
|
ALIAS:
|
|
_new_from_type = 1
|
|
|
|
DNS__LDNS__RR
|
|
_new_from_str(str, default_ttl, origin, prev, s)
|
|
const char* str;
|
|
uint32_t default_ttl;
|
|
DNS__LDNS__RData__Opt origin;
|
|
DNS__LDNS__RData__Opt prev;
|
|
LDNS_Status s;
|
|
PREINIT:
|
|
DNS__LDNS__RR rr = NULL;
|
|
ldns_rdf *pclone = NULL;
|
|
CODE:
|
|
|
|
if (prev != NULL) {
|
|
pclone = ldns_rdf_clone(prev);
|
|
}
|
|
|
|
s = ldns_rr_new_frm_str(&rr, str, default_ttl, origin, &prev);
|
|
if (prev != NULL) {
|
|
prev = pclone;
|
|
}
|
|
|
|
if (s == LDNS_STATUS_OK) {
|
|
RETVAL = rr;
|
|
}
|
|
OUTPUT:
|
|
RETVAL
|
|
s
|
|
prev
|
|
|
|
DNS__LDNS__RR
|
|
_new_from_file(fp, default_ttl, origin, prev, s, line_nr)
|
|
FILE* fp;
|
|
uint32_t default_ttl;
|
|
DNS__LDNS__RData__Opt origin;
|
|
DNS__LDNS__RData__Opt prev;
|
|
LDNS_Status s;
|
|
int line_nr;
|
|
PREINIT:
|
|
ldns_rr *rr;
|
|
ldns_rdf *oclone = NULL;
|
|
ldns_rdf *pclone = NULL;
|
|
CODE:
|
|
|
|
/* Must clone origin and prev because new_frm_fp_l may change
|
|
them and may not (we do not know for certain). The perl layer
|
|
will take care of freeing the old structs. */
|
|
if (origin != NULL) {
|
|
oclone = ldns_rdf_clone(origin);
|
|
}
|
|
if (prev != NULL) {
|
|
pclone = ldns_rdf_clone(prev);
|
|
}
|
|
|
|
RETVAL = NULL;
|
|
s = ldns_rr_new_frm_fp_l(&rr, fp, &default_ttl, &oclone, &pclone,
|
|
&line_nr);
|
|
|
|
/* Replace the input origin with our new clone. The perl layer will
|
|
take care of freeing it later. */
|
|
if (origin != NULL) {
|
|
origin = oclone;
|
|
}
|
|
if (prev != NULL) {
|
|
prev = pclone;
|
|
}
|
|
|
|
if (s == LDNS_STATUS_OK) {
|
|
RETVAL = rr;
|
|
}
|
|
|
|
OUTPUT:
|
|
RETVAL
|
|
s
|
|
line_nr
|
|
default_ttl
|
|
origin
|
|
prev
|
|
|
|
DNS__LDNS__RR
|
|
ldns_rr_clone(rr)
|
|
DNS__LDNS__RR rr;
|
|
ALIAS:
|
|
clone = 1
|
|
|
|
void
|
|
ldns_rr_set_owner(rr, owner)
|
|
DNS__LDNS__RR rr;
|
|
DNS__LDNS__RData owner;
|
|
ALIAS:
|
|
_set_owner = 1
|
|
|
|
void
|
|
ldns_rr_set_ttl(rr, ttl)
|
|
DNS__LDNS__RR rr;
|
|
uint32_t ttl;
|
|
ALIAS:
|
|
set_ttl = 1
|
|
|
|
void
|
|
ldns_rr_set_type(rr, type)
|
|
DNS__LDNS__RR rr;
|
|
LDNS_RR_Type type;
|
|
ALIAS:
|
|
set_type = 1
|
|
|
|
void
|
|
ldns_rr_set_class(rr, class)
|
|
DNS__LDNS__RR rr;
|
|
LDNS_RR_Class class;
|
|
ALIAS:
|
|
set_class = 1
|
|
|
|
void
|
|
print(rr, fp)
|
|
DNS__LDNS__RR rr;
|
|
FILE* fp;
|
|
CODE:
|
|
ldns_rr_print(fp, rr);
|
|
|
|
Mortal_PV
|
|
ldns_rr2str(rr)
|
|
DNS__LDNS__RR rr;
|
|
ALIAS:
|
|
to_string = 1
|
|
|
|
int
|
|
ldns_rr_compare(rr, otherrr)
|
|
DNS__LDNS__RR rr;
|
|
DNS__LDNS__RR otherrr;
|
|
ALIAS:
|
|
compare = 1
|
|
|
|
int
|
|
ldns_rr_compare_no_rdata(rr, otherrr)
|
|
DNS__LDNS__RR rr;
|
|
DNS__LDNS__RR otherrr;
|
|
ALIAS:
|
|
compare_no_rdata = 1
|
|
|
|
int
|
|
ldns_rr_compare_ds(rr, otherrr)
|
|
DNS__LDNS__RR rr;
|
|
DNS__LDNS__RR otherrr;
|
|
ALIAS:
|
|
compare_ds = 1
|
|
|
|
int
|
|
compare_dname(rr, otherrr)
|
|
DNS__LDNS__RR rr;
|
|
DNS__LDNS__RR otherrr;
|
|
CODE:
|
|
RETVAL = ldns_dname_compare(
|
|
ldns_rr_owner(rr), ldns_rr_owner(otherrr));
|
|
OUTPUT:
|
|
RETVAL
|
|
|
|
DNS__LDNS__RData
|
|
ldns_rr_owner(rr)
|
|
DNS__LDNS__RR rr;
|
|
ALIAS:
|
|
_owner = 1
|
|
|
|
size_t
|
|
ldns_rr_rd_count(rr);
|
|
DNS__LDNS__RR rr;
|
|
ALIAS:
|
|
rd_count = 1
|
|
|
|
DNS__LDNS__RData
|
|
ldns_rr_rdf(rr, i)
|
|
DNS__LDNS__RR rr;
|
|
size_t i;
|
|
ALIAS:
|
|
_rdata = 1
|
|
|
|
DNS__LDNS__RData
|
|
ldns_rr_set_rdf(rr, rdf, i)
|
|
DNS__LDNS__RR rr;
|
|
DNS__LDNS__RData rdf;
|
|
size_t i;
|
|
ALIAS:
|
|
_set_rdata = 1
|
|
|
|
uint32_t
|
|
ldns_rr_ttl(rr)
|
|
DNS__LDNS__RR rr;
|
|
ALIAS:
|
|
ttl = 1
|
|
|
|
LDNS_RR_Class
|
|
ldns_rr_get_class(rr)
|
|
DNS__LDNS__RR rr;
|
|
ALIAS:
|
|
class = 1
|
|
|
|
LDNS_RR_Type
|
|
ldns_rr_get_type(rr)
|
|
DNS__LDNS__RR rr;
|
|
ALIAS:
|
|
type = 1
|
|
|
|
DNS__LDNS__RData
|
|
ldns_rr_pop_rdf(rr)
|
|
DNS__LDNS__RR rr;
|
|
ALIAS:
|
|
pop_rdata = 1
|
|
|
|
bool
|
|
ldns_rr_push_rdf(rr, rdf)
|
|
DNS__LDNS__RR rr;
|
|
DNS__LDNS__RData rdf;
|
|
ALIAS:
|
|
_push_rdata = 1
|
|
|
|
DNS__LDNS__RData
|
|
ldns_rr_rrsig_typecovered(rr)
|
|
DNS__LDNS__RR rr;
|
|
ALIAS:
|
|
_rrsig_typecovered = 1
|
|
|
|
bool
|
|
ldns_rr_rrsig_set_typecovered(rr, rdf)
|
|
DNS__LDNS__RR rr;
|
|
DNS__LDNS__RData rdf;
|
|
ALIAS:
|
|
_rrsig_set_typecovered = 1
|
|
|
|
DNS__LDNS__RData
|
|
ldns_rr_rrsig_algorithm(rr)
|
|
DNS__LDNS__RR rr;
|
|
ALIAS:
|
|
_rrsig_algorithm = 1
|
|
|
|
bool
|
|
ldns_rr_rrsig_set_algorithm(rr, rdf)
|
|
DNS__LDNS__RR rr;
|
|
DNS__LDNS__RData rdf;
|
|
ALIAS:
|
|
_rrsig_set_algorithm = 1
|
|
|
|
DNS__LDNS__RData
|
|
ldns_rr_rrsig_expiration(rr)
|
|
DNS__LDNS__RR rr;
|
|
ALIAS:
|
|
_rrsig_expiration = 1
|
|
|
|
bool
|
|
ldns_rr_rrsig_set_expiration(rr, rdf)
|
|
DNS__LDNS__RR rr;
|
|
DNS__LDNS__RData rdf;
|
|
ALIAS:
|
|
_rrsig_set_expiration = 1
|
|
|
|
DNS__LDNS__RData
|
|
ldns_rr_rrsig_inception(rr)
|
|
DNS__LDNS__RR rr;
|
|
ALIAS:
|
|
_rrsig_inception = 1
|
|
|
|
bool
|
|
ldns_rr_rrsig_set_inception(rr, rdf)
|
|
DNS__LDNS__RR rr;
|
|
DNS__LDNS__RData rdf;
|
|
ALIAS:
|
|
_rrsig_set_inception = 1
|
|
|
|
DNS__LDNS__RData
|
|
ldns_rr_rrsig_keytag(rr)
|
|
DNS__LDNS__RR rr;
|
|
ALIAS:
|
|
_rrsig_keytag = 1
|
|
|
|
bool
|
|
ldns_rr_rrsig_set_keytag(rr, rdf)
|
|
DNS__LDNS__RR rr;
|
|
DNS__LDNS__RData rdf;
|
|
ALIAS:
|
|
_rrsig_set_keytag = 1
|
|
|
|
DNS__LDNS__RData
|
|
ldns_rr_rrsig_sig(rr)
|
|
DNS__LDNS__RR rr;
|
|
ALIAS:
|
|
_rrsig_sig = 1
|
|
|
|
bool
|
|
ldns_rr_rrsig_set_sig(rr, rdf)
|
|
DNS__LDNS__RR rr;
|
|
DNS__LDNS__RData rdf;
|
|
ALIAS:
|
|
_rrsig_set_sig = 1
|
|
|
|
DNS__LDNS__RData
|
|
ldns_rr_rrsig_labels(rr)
|
|
DNS__LDNS__RR rr;
|
|
ALIAS:
|
|
_rrsig_labels = 1
|
|
|
|
bool
|
|
ldns_rr_rrsig_set_labels(rr, rdf)
|
|
DNS__LDNS__RR rr;
|
|
DNS__LDNS__RData rdf;
|
|
ALIAS:
|
|
_rrsig_set_labels = 1
|
|
|
|
DNS__LDNS__RData
|
|
ldns_rr_rrsig_origttl(rr)
|
|
DNS__LDNS__RR rr;
|
|
ALIAS:
|
|
_rrsig_origttl = 1
|
|
|
|
bool
|
|
ldns_rr_rrsig_set_origttl(rr, rdf)
|
|
DNS__LDNS__RR rr;
|
|
DNS__LDNS__RData rdf;
|
|
ALIAS:
|
|
_rrsig_set_origttl = 1
|
|
|
|
DNS__LDNS__RData
|
|
ldns_rr_rrsig_signame(rr)
|
|
DNS__LDNS__RR rr;
|
|
ALIAS:
|
|
_rrsig_signame = 1
|
|
|
|
bool
|
|
ldns_rr_rrsig_set_signame(rr, rdf)
|
|
DNS__LDNS__RR rr;
|
|
DNS__LDNS__RData rdf;
|
|
ALIAS:
|
|
_rrsig_set_signame = 1
|
|
|
|
DNS__LDNS__RData
|
|
ldns_rr_dnskey_algorithm(rr)
|
|
DNS__LDNS__RR rr;
|
|
ALIAS:
|
|
_dnskey_algorithm = 1
|
|
|
|
bool
|
|
ldns_rr_dnskey_set_algorithm(rr, rdf)
|
|
DNS__LDNS__RR rr;
|
|
DNS__LDNS__RData rdf;
|
|
ALIAS:
|
|
_dnskey_set_algorithm = 1
|
|
|
|
DNS__LDNS__RData
|
|
ldns_rr_dnskey_flags(rr)
|
|
DNS__LDNS__RR rr;
|
|
ALIAS:
|
|
_dnskey_flags = 1
|
|
|
|
bool
|
|
ldns_rr_dnskey_set_flags(rr, rdf)
|
|
DNS__LDNS__RR rr;
|
|
DNS__LDNS__RData rdf;
|
|
ALIAS:
|
|
_dnskey_set_flags = 1
|
|
|
|
DNS__LDNS__RData
|
|
ldns_rr_dnskey_protocol(rr)
|
|
DNS__LDNS__RR rr;
|
|
ALIAS:
|
|
_dnskey_protocol = 1
|
|
|
|
bool
|
|
ldns_rr_dnskey_set_protocol(rr, rdf)
|
|
DNS__LDNS__RR rr;
|
|
DNS__LDNS__RData rdf;
|
|
ALIAS:
|
|
_dnskey_set_protocol = 1
|
|
|
|
DNS__LDNS__RData
|
|
ldns_rr_dnskey_key(rr)
|
|
DNS__LDNS__RR rr;
|
|
ALIAS:
|
|
_dnskey_key = 1
|
|
|
|
bool
|
|
ldns_rr_dnskey_set_key(rr, rdf)
|
|
DNS__LDNS__RR rr;
|
|
DNS__LDNS__RData rdf;
|
|
ALIAS:
|
|
_dnskey_set_key = 1
|
|
|
|
size_t
|
|
ldns_rr_dnskey_key_size(rr)
|
|
DNS__LDNS__RR rr;
|
|
ALIAS:
|
|
dnskey_key_size = 1
|
|
|
|
uint16_t
|
|
ldns_calc_keytag(key)
|
|
DNS__LDNS__RR key;
|
|
ALIAS:
|
|
calc_keytag = 1
|
|
|
|
DNS__LDNS__RData
|
|
ldns_nsec3_hash_name_frm_nsec3(rr, name)
|
|
DNS__LDNS__RR rr;
|
|
DNS__LDNS__RData name;
|
|
ALIAS:
|
|
_hash_name_from_nsec3 = 1
|
|
|
|
DNS__LDNS__RData
|
|
_nsec3_hash_name(name, algorithm, iterations, salt)
|
|
DNS__LDNS__RData name;
|
|
uint8_t algorithm;
|
|
uint16_t iterations;
|
|
char * salt;
|
|
CODE:
|
|
RETVAL = ldns_nsec3_hash_name(name, algorithm, iterations,
|
|
strlen(salt), (uint8_t *)salt);
|
|
OUTPUT:
|
|
RETVAL
|
|
|
|
LDNS_Status
|
|
ldns_dnssec_verify_denial(rr, nsecs, rrsigs)
|
|
DNS__LDNS__RR rr;
|
|
DNS__LDNS__RRList nsecs;
|
|
DNS__LDNS__RRList rrsigs;
|
|
ALIAS:
|
|
_verify_denial = 1
|
|
|
|
LDNS_Status
|
|
ldns_dnssec_verify_denial_nsec3(rr, nsecs, rrsigs, packet_rcode, packet_qtype, packet_nodata)
|
|
DNS__LDNS__RR rr;
|
|
DNS__LDNS__RRList nsecs;
|
|
DNS__LDNS__RRList rrsigs;
|
|
LDNS_Pkt_Rcode packet_rcode;
|
|
LDNS_RR_Type packet_qtype;
|
|
signed char packet_nodata;
|
|
ALIAS:
|
|
_verify_denial_nsec3 = 1
|
|
|
|
DNS__LDNS__RR
|
|
_verify_denial_nsec3_match(rr, nsecs, rrsigs, packet_rcode, packet_qtype, packet_nodata, status)
|
|
DNS__LDNS__RR rr;
|
|
DNS__LDNS__RRList nsecs;
|
|
DNS__LDNS__RRList rrsigs;
|
|
LDNS_Pkt_Rcode packet_rcode;
|
|
LDNS_RR_Type packet_qtype;
|
|
signed char packet_nodata;
|
|
LDNS_Status status;
|
|
PREINIT:
|
|
ldns_rr ** match;
|
|
CODE:
|
|
RETVAL = NULL;
|
|
status = ldns_dnssec_verify_denial_nsec3_match(rr, nsecs, rrsigs,
|
|
packet_rcode, packet_qtype, packet_nodata, match);
|
|
if (status == LDNS_STATUS_OK) {
|
|
RETVAL = *match;
|
|
}
|
|
OUTPUT:
|
|
status
|
|
RETVAL
|
|
|
|
void
|
|
nsec3_add_param_rdfs(rr, algorithm, flags, iterations, salt)
|
|
DNS__LDNS__RR rr;
|
|
uint8_t algorithm;
|
|
uint8_t flags;
|
|
uint16_t iterations;
|
|
char * salt;
|
|
CODE:
|
|
ldns_nsec3_add_param_rdfs(rr, algorithm, flags, iterations, strlen(salt), (uint8_t*)salt);
|
|
|
|
uint8_t
|
|
ldns_nsec3_algorithm(nsec3)
|
|
DNS__LDNS__RR nsec3;
|
|
ALIAS:
|
|
nsec3_algorithm = 1
|
|
|
|
uint8_t
|
|
ldns_nsec3_flags(nsec3)
|
|
DNS__LDNS__RR nsec3;
|
|
ALIAS:
|
|
nsec3_flags = 1
|
|
|
|
bool
|
|
ldns_nsec3_optout(nsec3)
|
|
DNS__LDNS__RR nsec3;
|
|
ALIAS:
|
|
nsec3_optout = 1
|
|
|
|
uint16_t
|
|
ldns_nsec3_iterations(nsec3)
|
|
DNS__LDNS__RR nsec3;
|
|
ALIAS:
|
|
nsec3_iterations = 1
|
|
|
|
DNS__LDNS__RData
|
|
ldns_nsec3_next_owner(nsec3)
|
|
DNS__LDNS__RR nsec3;
|
|
ALIAS:
|
|
_nsec3_next_owner = 1
|
|
|
|
DNS__LDNS__RData
|
|
ldns_nsec3_bitmap(nsec3)
|
|
DNS__LDNS__RR nsec3;
|
|
ALIAS:
|
|
_nsec3_bitmap = 1
|
|
|
|
DNS__LDNS__RData
|
|
ldns_nsec3_salt(nsec3)
|
|
DNS__LDNS__RR nsec3;
|
|
ALIAS:
|
|
_nsec3_salt = 1
|
|
|
|
DNS__LDNS__RR
|
|
ldns_key_rr2ds(key, hash)
|
|
DNS__LDNS__RR key;
|
|
LDNS_Hash hash;
|
|
ALIAS:
|
|
key_to_ds = 1
|
|
|
|
bool
|
|
ldns_rr_is_question(rr)
|
|
DNS__LDNS__RR rr;
|
|
ALIAS:
|
|
is_question = 1
|
|
|
|
uint8_t
|
|
ldns_rr_label_count(rr)
|
|
DNS__LDNS__RR rr;
|
|
ALIAS:
|
|
label_count = 1
|
|
|
|
MODULE = DNS::LDNS PACKAGE = DNS::LDNS::RData
|
|
|
|
PROTOTYPES: ENABLE
|
|
|
|
DNS__LDNS__RData
|
|
ldns_rdf_new_frm_str(type, str)
|
|
LDNS_RDF_Type type;
|
|
const char *str;
|
|
ALIAS:
|
|
_new = 1
|
|
|
|
DNS__LDNS__RData
|
|
ldns_rdf_clone(rdf)
|
|
DNS__LDNS__RData rdf;
|
|
ALIAS:
|
|
clone = 1
|
|
|
|
Mortal_PV
|
|
ldns_rdf2str(rdf)
|
|
DNS__LDNS__RData rdf;
|
|
ALIAS:
|
|
to_string = 1
|
|
|
|
void
|
|
print(rdf, fp)
|
|
DNS__LDNS__RData rdf;
|
|
FILE* fp;
|
|
CODE:
|
|
ldns_rdf_print(fp, rdf);
|
|
|
|
LDNS_RDF_Type
|
|
ldns_rdf_get_type(rdf)
|
|
DNS__LDNS__RData rdf;
|
|
ALIAS:
|
|
type = 1
|
|
|
|
void
|
|
ldns_rdf_set_type(rdf, type)
|
|
DNS__LDNS__RData rdf;
|
|
LDNS_RDF_Type type
|
|
ALIAS:
|
|
set_type = 1
|
|
|
|
int
|
|
ldns_rdf_compare(rd1, rd2)
|
|
DNS__LDNS__RData rd1;
|
|
DNS__LDNS__RData rd2;
|
|
ALIAS:
|
|
compare = 1
|
|
|
|
DNS__LDNS__RData
|
|
ldns_rdf_address_reverse(rdf)
|
|
DNS__LDNS__RData rdf;
|
|
ALIAS:
|
|
address_reverse = 1
|
|
|
|
uint8_t
|
|
ldns_dname_label_count(rdf)
|
|
DNS__LDNS__RData rdf;
|
|
ALIAS:
|
|
label_count = 1
|
|
|
|
DNS__LDNS__RData
|
|
ldns_dname_label(rdf, labelpos)
|
|
DNS__LDNS__RData rdf;
|
|
uint8_t labelpos;
|
|
ALIAS:
|
|
label = 1
|
|
|
|
int
|
|
ldns_dname_is_wildcard(rdf)
|
|
DNS__LDNS__RData rdf;
|
|
ALIAS:
|
|
is_wildcard = 1
|
|
|
|
int
|
|
ldns_dname_match_wildcard(rdf, wildcard)
|
|
DNS__LDNS__RData rdf;
|
|
DNS__LDNS__RData wildcard;
|
|
ALIAS:
|
|
matches_wildcard = 1
|
|
|
|
signed char
|
|
ldns_dname_is_subdomain(rdf, parent)
|
|
DNS__LDNS__RData rdf;
|
|
DNS__LDNS__RData parent;
|
|
ALIAS:
|
|
is_subdomain = 1
|
|
|
|
DNS__LDNS__RData
|
|
ldns_dname_left_chop(rdf)
|
|
DNS__LDNS__RData rdf
|
|
ALIAS:
|
|
left_chop = 1
|
|
|
|
LDNS_Status
|
|
ldns_dname_cat(rdata, otherrd)
|
|
DNS__LDNS__RData rdata;
|
|
DNS__LDNS__RData otherrd;
|
|
ALIAS:
|
|
_cat = 1
|
|
|
|
int
|
|
ldns_dname_compare(dname, otherdname)
|
|
DNS__LDNS__RData dname;
|
|
DNS__LDNS__RData otherdname;
|
|
ALIAS:
|
|
compare = 1
|
|
|
|
LDNS_RR_Type
|
|
ldns_rdf2rr_type(rdf)
|
|
DNS__LDNS__RData rdf;
|
|
ALIAS:
|
|
to_rr_type = 1
|
|
|
|
DNS__LDNS__RData
|
|
ldns_dname_reverse(rdf)
|
|
DNS__LDNS__RData rdf;
|
|
ALIAS:
|
|
dname_reverse = 1
|
|
|
|
void
|
|
ldns_dname2canonical(rdf)
|
|
DNS__LDNS__RData rdf;
|
|
ALIAS:
|
|
dname2canonical = 1
|
|
|
|
time_t
|
|
ldns_rdf2native_time_t(rdf)
|
|
DNS__LDNS__RData rdf;
|
|
ALIAS:
|
|
to_unix_time = 1
|
|
2native_time_t = 2
|
|
|
|
|
|
MODULE = DNS::LDNS PACKAGE = DNS::LDNS::DNSSecZone
|
|
|
|
PROTOTYPES: ENABLE
|
|
|
|
DNS__LDNS__DNSSecZone
|
|
ldns_dnssec_zone_new()
|
|
ALIAS:
|
|
_new = 1
|
|
|
|
DNS__LDNS__DNSSecZone
|
|
_new_from_file(fp, origin, ttl, c, s, line_nr)
|
|
FILE* fp;
|
|
DNS__LDNS__RData__Opt origin;
|
|
uint32_t ttl;
|
|
LDNS_RR_Class c;
|
|
LDNS_Status s;
|
|
int line_nr;
|
|
PREINIT:
|
|
ldns_dnssec_zone *z;
|
|
CODE:
|
|
RETVAL = NULL;
|
|
#if LDNS_REVISION < ((1<<16)|(6<<8)|(13))
|
|
Perl_croak(aTHX_ "function ldns_dnssec_zone_new_frm_fp_l is not implemented in this version of ldns");
|
|
#else
|
|
s = ldns_dnssec_zone_new_frm_fp_l(&z, fp, origin, ttl, c, &line_nr);
|
|
#endif
|
|
|
|
if (s == LDNS_STATUS_OK) {
|
|
RETVAL = z;
|
|
}
|
|
|
|
OUTPUT:
|
|
RETVAL
|
|
s
|
|
line_nr
|
|
|
|
LDNS_Status
|
|
create_from_zone(dnssec_zone, zone)
|
|
DNS__LDNS__DNSSecZone dnssec_zone;
|
|
DNS__LDNS__Zone zone;
|
|
PREINIT:
|
|
size_t i;
|
|
ldns_rr *cur_rr;
|
|
ldns_status status;
|
|
ldns_rr_list *failed_nsec3s;
|
|
ldns_rr_list *failed_nsec3_rrsigs;
|
|
ldns_status result = LDNS_STATUS_OK;
|
|
CODE:
|
|
failed_nsec3s = ldns_rr_list_new();
|
|
failed_nsec3_rrsigs = ldns_rr_list_new();
|
|
|
|
status = ldns_dnssec_zone_add_rr(dnssec_zone,
|
|
ldns_rr_clone(ldns_zone_soa(zone)));
|
|
if (result == LDNS_STATUS_OK) {
|
|
result = status;
|
|
}
|
|
|
|
for (i = 0; i < ldns_rr_list_rr_count(ldns_zone_rrs(zone)); i++) {
|
|
cur_rr = ldns_rr_list_rr(ldns_zone_rrs(zone), i);
|
|
status = ldns_dnssec_zone_add_rr(dnssec_zone,
|
|
ldns_rr_clone(cur_rr));
|
|
if (status != LDNS_STATUS_OK) {
|
|
if (LDNS_STATUS_DNSSEC_NSEC3_ORIGINAL_NOT_FOUND == status) {
|
|
if (ldns_rr_get_type(cur_rr) == LDNS_RR_TYPE_RRSIG
|
|
&& ldns_rdf2rr_type(ldns_rr_rrsig_typecovered(cur_rr))
|
|
== LDNS_RR_TYPE_NSEC3) {
|
|
ldns_rr_list_push_rr(failed_nsec3_rrsigs, cur_rr);
|
|
} else {
|
|
ldns_rr_list_push_rr(failed_nsec3s, cur_rr);
|
|
}
|
|
}
|
|
if (result == LDNS_STATUS_OK) {
|
|
result = status;
|
|
}
|
|
}
|
|
}
|
|
|
|
if (ldns_rr_list_rr_count(failed_nsec3s) > 0) {
|
|
(void) ldns_dnssec_zone_add_empty_nonterminals(dnssec_zone);
|
|
for (i = 0; i < ldns_rr_list_rr_count(failed_nsec3s); i++) {
|
|
cur_rr = ldns_rr_list_rr(failed_nsec3s, i);
|
|
status = ldns_dnssec_zone_add_rr(dnssec_zone,
|
|
ldns_rr_clone(cur_rr));
|
|
if (result == LDNS_STATUS_OK) {
|
|
result = status;
|
|
}
|
|
}
|
|
for (i = 0; i < ldns_rr_list_rr_count(failed_nsec3_rrsigs); i++) {
|
|
cur_rr = ldns_rr_list_rr(failed_nsec3_rrsigs, i);
|
|
status = ldns_dnssec_zone_add_rr(dnssec_zone,
|
|
ldns_rr_clone(cur_rr));
|
|
if (result == LDNS_STATUS_OK) {
|
|
result = status;
|
|
}
|
|
}
|
|
}
|
|
|
|
ldns_rr_list_free(failed_nsec3_rrsigs);
|
|
ldns_rr_list_free(failed_nsec3s);
|
|
RETVAL = result;
|
|
OUTPUT:
|
|
RETVAL
|
|
|
|
void
|
|
print(zone, fp)
|
|
DNS__LDNS__DNSSecZone zone;
|
|
FILE* fp;
|
|
CODE:
|
|
ldns_dnssec_zone_print(fp, zone);
|
|
|
|
LDNS_Status
|
|
ldns_dnssec_zone_add_rr(zone, rr)
|
|
DNS__LDNS__DNSSecZone zone;
|
|
DNS__LDNS__RR rr;
|
|
ALIAS:
|
|
_add_rr = 1
|
|
|
|
LDNS_Status
|
|
ldns_dnssec_zone_add_empty_nonterminals(zone)
|
|
DNS__LDNS__DNSSecZone zone;
|
|
ALIAS:
|
|
_add_empty_nonterminals = 1
|
|
|
|
LDNS_Status
|
|
ldns_dnssec_zone_mark_glue(zone)
|
|
DNS__LDNS__DNSSecZone zone;
|
|
ALIAS:
|
|
_mark_glue = 1
|
|
|
|
DNS__LDNS__DNSSecName
|
|
_soa(zone)
|
|
DNS__LDNS__DNSSecZone zone;
|
|
CODE:
|
|
RETVAL = zone->soa;
|
|
OUTPUT:
|
|
RETVAL
|
|
|
|
DNS__LDNS__RBTree
|
|
_names(zone)
|
|
DNS__LDNS__DNSSecZone zone;
|
|
CODE:
|
|
RETVAL = zone->names;
|
|
OUTPUT:
|
|
RETVAL
|
|
|
|
DNS__LDNS__DNSSecRRSets
|
|
ldns_dnssec_zone_find_rrset(zone, rdf, type)
|
|
DNS__LDNS__DNSSecZone zone;
|
|
DNS__LDNS__RData rdf;
|
|
LDNS_RR_Type type;
|
|
ALIAS:
|
|
_find_rrset = 1
|
|
|
|
LDNS_Status
|
|
_sign(zone, key_list, policy, flags)
|
|
DNS__LDNS__DNSSecZone zone;
|
|
DNS__LDNS__KeyList key_list;
|
|
uint16_t policy;
|
|
int flags;
|
|
PREINIT:
|
|
ldns_rr_list * new_rrs;
|
|
CODE:
|
|
new_rrs = ldns_rr_list_new();
|
|
RETVAL = ldns_dnssec_zone_sign_flg(zone, new_rrs, key_list,
|
|
sign_policy, (void*)&policy, flags);
|
|
ldns_rr_list_free(new_rrs);
|
|
OUTPUT:
|
|
RETVAL
|
|
|
|
LDNS_Status
|
|
_sign_nsec3(zone, key_list, policy, algorithm, flags, iterations, salt, signflags)
|
|
DNS__LDNS__DNSSecZone zone;
|
|
DNS__LDNS__KeyList key_list;
|
|
uint16_t policy;
|
|
uint8_t algorithm;
|
|
uint8_t flags;
|
|
uint16_t iterations;
|
|
char * salt;
|
|
int signflags;
|
|
PREINIT:
|
|
ldns_rr_list * new_rrs;
|
|
CODE:
|
|
new_rrs = ldns_rr_list_new();
|
|
RETVAL = ldns_dnssec_zone_sign_nsec3_flg(zone, new_rrs, key_list,
|
|
sign_policy, (void*)&policy, algorithm, flags, iterations,
|
|
strlen(salt), (uint8_t*)salt, signflags);
|
|
ldns_rr_list_free(new_rrs);
|
|
OUTPUT:
|
|
RETVAL
|
|
|
|
LDNS_Status
|
|
create_nsecs(zone)
|
|
DNS__LDNS__DNSSecZone zone;
|
|
PREINIT:
|
|
ldns_rr_list * new_rrs;
|
|
CODE:
|
|
new_rrs = ldns_rr_list_new();
|
|
RETVAL = ldns_dnssec_zone_create_nsecs(zone, new_rrs);
|
|
ldns_rr_list_free(new_rrs);
|
|
OUTPUT:
|
|
RETVAL
|
|
|
|
LDNS_Status
|
|
create_nsec3s(zone, algorithm, flags, iterations, salt)
|
|
DNS__LDNS__DNSSecZone zone;
|
|
uint8_t algorithm;
|
|
uint8_t flags;
|
|
uint8_t iterations;
|
|
char * salt;
|
|
PREINIT:
|
|
ldns_rr_list * new_rrs;
|
|
CODE:
|
|
new_rrs = ldns_rr_list_new();
|
|
RETVAL = ldns_dnssec_zone_create_nsec3s(zone, new_rrs, algorithm,
|
|
flags, iterations, strlen(salt), (uint8_t*)salt);
|
|
ldns_rr_list_free(new_rrs);
|
|
OUTPUT:
|
|
RETVAL
|
|
|
|
LDNS_Status
|
|
create_rrsigs(zone, key_list, policy, flags)
|
|
DNS__LDNS__DNSSecZone zone;
|
|
DNS__LDNS__KeyList key_list;
|
|
uint16_t policy;
|
|
int flags;
|
|
PREINIT:
|
|
ldns_rr_list * new_rrs;
|
|
CODE:
|
|
new_rrs = ldns_rr_list_new();
|
|
RETVAL = ldns_dnssec_zone_create_rrsigs_flg(zone, new_rrs, key_list,
|
|
sign_policy, (void*)&policy, flags);
|
|
ldns_rr_list_free(new_rrs);
|
|
OUTPUT:
|
|
RETVAL
|
|
|
|
|
|
MODULE = DNS::LDNS PACKAGE = DNS::LDNS::DNSSecRRSets
|
|
|
|
DNS__LDNS__DNSSecRRs
|
|
_rrs(rrsets)
|
|
DNS__LDNS__DNSSecRRSets rrsets;
|
|
CODE:
|
|
RETVAL = rrsets->rrs;
|
|
OUTPUT:
|
|
RETVAL
|
|
|
|
DNS__LDNS__DNSSecRRs
|
|
_signatures(rrsets)
|
|
DNS__LDNS__DNSSecRRSets rrsets;
|
|
CODE:
|
|
RETVAL = rrsets->signatures;
|
|
OUTPUT:
|
|
RETVAL
|
|
|
|
bool
|
|
ldns_dnssec_rrsets_contains_type(rrsets, type)
|
|
DNS__LDNS__DNSSecRRSets rrsets;
|
|
LDNS_RR_Type type;
|
|
ALIAS:
|
|
contains_type = 1
|
|
|
|
LDNS_RR_Type
|
|
ldns_dnssec_rrsets_type(rrsets)
|
|
DNS__LDNS__DNSSecRRSets rrsets;
|
|
ALIAS:
|
|
type = 1
|
|
|
|
LDNS_Status
|
|
ldns_dnssec_rrsets_set_type(rrsets, type)
|
|
DNS__LDNS__DNSSecRRSets rrsets;
|
|
LDNS_RR_Type type;
|
|
ALIAS:
|
|
_set_type = 1
|
|
|
|
DNS__LDNS__DNSSecRRSets
|
|
_next(rrsets)
|
|
DNS__LDNS__DNSSecRRSets rrsets;
|
|
CODE:
|
|
RETVAL = rrsets->next;
|
|
OUTPUT:
|
|
RETVAL
|
|
|
|
LDNS_Status
|
|
ldns_dnssec_rrsets_add_rr(rrsets, rr)
|
|
DNS__LDNS__DNSSecRRSets rrsets;
|
|
DNS__LDNS__RR rr;
|
|
ALIAS:
|
|
_add_rr = 1
|
|
|
|
|
|
MODULE = DNS::LDNS PACKAGE = DNS::LDNS::DNSSecRRs
|
|
|
|
DNS__LDNS__DNSSecRRs
|
|
ldns_dnssec_rrs_new()
|
|
ALIAS:
|
|
_new = 1
|
|
|
|
DNS__LDNS__RR
|
|
_rr(rrs)
|
|
DNS__LDNS__DNSSecRRs rrs;
|
|
CODE:
|
|
RETVAL = rrs->rr;
|
|
OUTPUT:
|
|
RETVAL
|
|
|
|
DNS__LDNS__DNSSecRRs
|
|
_next(rrs)
|
|
DNS__LDNS__DNSSecRRs rrs;
|
|
CODE:
|
|
RETVAL = rrs->next;
|
|
OUTPUT:
|
|
RETVAL
|
|
|
|
LDNS_Status
|
|
ldns_dnssec_rrs_add_rr(rrs, rr)
|
|
DNS__LDNS__DNSSecRRs rrs;
|
|
DNS__LDNS__RR rr;
|
|
ALIAS:
|
|
_add_rr = 1
|
|
|
|
|
|
MODULE = DNS::LDNS PACKAGE = DNS::LDNS::DNSSecName
|
|
|
|
DNS__LDNS__DNSSecName
|
|
ldns_dnssec_name_new()
|
|
ALIAS:
|
|
_new = 1
|
|
|
|
DNS__LDNS__RData
|
|
ldns_dnssec_name_name(name)
|
|
DNS__LDNS__DNSSecName name;
|
|
ALIAS:
|
|
_name = 1
|
|
|
|
bool
|
|
ldns_dnssec_name_is_glue(name)
|
|
DNS__LDNS__DNSSecName name;
|
|
ALIAS:
|
|
is_glue = 1
|
|
|
|
DNS__LDNS__DNSSecRRSets
|
|
_rrsets(name)
|
|
DNS__LDNS__DNSSecName name;
|
|
CODE:
|
|
RETVAL = name->rrsets;
|
|
OUTPUT:
|
|
RETVAL
|
|
|
|
DNS__LDNS__RR
|
|
_nsec(name)
|
|
DNS__LDNS__DNSSecName name;
|
|
CODE:
|
|
RETVAL = name->nsec;
|
|
OUTPUT:
|
|
RETVAL
|
|
|
|
DNS__LDNS__RData
|
|
_hashed_name(name)
|
|
DNS__LDNS__DNSSecName name;
|
|
CODE:
|
|
RETVAL = name->hashed_name;
|
|
OUTPUT:
|
|
RETVAL
|
|
|
|
DNS__LDNS__DNSSecRRs
|
|
_nsec_signatures(name)
|
|
DNS__LDNS__DNSSecName name;
|
|
CODE:
|
|
RETVAL = name->nsec_signatures;
|
|
OUTPUT:
|
|
RETVAL
|
|
|
|
void
|
|
ldns_dnssec_name_set_name(name, dname)
|
|
DNS__LDNS__DNSSecName name;
|
|
DNS__LDNS__RData dname;
|
|
ALIAS:
|
|
_set_name = 1
|
|
|
|
void
|
|
ldns_dnssec_name_set_nsec(name, nsec)
|
|
DNS__LDNS__DNSSecName name;
|
|
DNS__LDNS__RR nsec;
|
|
ALIAS:
|
|
_set_nsec = 1
|
|
|
|
int
|
|
ldns_dnssec_name_cmp(a, b)
|
|
DNS__LDNS__DNSSecName a;
|
|
DNS__LDNS__DNSSecName b;
|
|
ALIAS:
|
|
compare = 1
|
|
|
|
LDNS_Status
|
|
ldns_dnssec_name_add_rr(name, rr)
|
|
DNS__LDNS__DNSSecName name;
|
|
DNS__LDNS__RR rr;
|
|
ALIAS:
|
|
_add_rr = 1
|
|
|
|
|
|
MODULE = DNS::LDNS PACKAGE = DNS::LDNS::RBTree
|
|
|
|
DNS__LDNS__RBNode
|
|
ldns_rbtree_first(tree)
|
|
DNS__LDNS__RBTree tree;
|
|
ALIAS:
|
|
_first = 1
|
|
|
|
DNS__LDNS__RBNode
|
|
ldns_rbtree_last(tree)
|
|
DNS__LDNS__RBTree tree;
|
|
ALIAS:
|
|
_last = 1
|
|
|
|
|
|
MODULE = DNS::LDNS PACKAGE = DNS::LDNS::RBNode
|
|
|
|
DNS__LDNS__RBNode
|
|
ldns_rbtree_next(node)
|
|
DNS__LDNS__RBNode node;
|
|
ALIAS:
|
|
_next = 1
|
|
|
|
DNS__LDNS__RBNode
|
|
ldns_rbtree_previous(node)
|
|
DNS__LDNS__RBNode node;
|
|
ALIAS:
|
|
_previous = 1
|
|
|
|
DNS__LDNS__RBNode
|
|
ldns_dnssec_name_node_next_nonglue(node)
|
|
DNS__LDNS__RBNode node;
|
|
ALIAS:
|
|
_next_nonglue = 1
|
|
|
|
bool
|
|
is_null(node)
|
|
DNS__LDNS__RBNode node;
|
|
CODE:
|
|
RETVAL = (node == LDNS_RBTREE_NULL);
|
|
OUTPUT:
|
|
RETVAL
|
|
|
|
DNS__LDNS__DNSSecName
|
|
_name(node)
|
|
DNS__LDNS__RBNode node;
|
|
CODE:
|
|
RETVAL = (ldns_dnssec_name*)node->data;
|
|
OUTPUT:
|
|
RETVAL
|
|
|
|
|
|
MODULE = DNS::LDNS PACKAGE = DNS::LDNS::Resolver
|
|
|
|
DNS__LDNS__Resolver
|
|
_new_from_file(fp, s)
|
|
FILE* fp;
|
|
LDNS_Status s;
|
|
PREINIT:
|
|
ldns_resolver *r;
|
|
CODE:
|
|
RETVAL = NULL;
|
|
s = ldns_resolver_new_frm_fp(&r, fp);
|
|
if (s == LDNS_STATUS_OK) {
|
|
RETVAL = r;
|
|
}
|
|
OUTPUT:
|
|
RETVAL
|
|
s
|
|
|
|
DNS__LDNS__Resolver
|
|
ldns_resolver_new()
|
|
ALIAS:
|
|
_new = 1
|
|
|
|
bool
|
|
ldns_resolver_dnssec(resolver)
|
|
DNS__LDNS__Resolver resolver;
|
|
ALIAS:
|
|
dnssec = 1
|
|
|
|
void
|
|
ldns_resolver_set_dnssec(resolver, d)
|
|
DNS__LDNS__Resolver resolver;
|
|
bool d;
|
|
ALIAS:
|
|
set_dnssec = 1
|
|
|
|
bool
|
|
ldns_resolver_dnssec_cd(resolver)
|
|
DNS__LDNS__Resolver resolver;
|
|
ALIAS:
|
|
dnssec_cd = 1
|
|
|
|
void
|
|
ldns_resolver_set_dnssec_cd(resolver, d)
|
|
DNS__LDNS__Resolver resolver;
|
|
bool d;
|
|
ALIAS:
|
|
set_dnssec_cd = 1
|
|
|
|
uint16_t
|
|
ldns_resolver_port(resolver)
|
|
DNS__LDNS__Resolver resolver;
|
|
ALIAS:
|
|
port = 1
|
|
|
|
void
|
|
ldns_resolver_set_port(resolver, port)
|
|
DNS__LDNS__Resolver resolver;
|
|
uint16_t port;
|
|
ALIAS:
|
|
set_port = 1
|
|
|
|
bool
|
|
ldns_resolver_recursive(resolver)
|
|
DNS__LDNS__Resolver resolver;
|
|
ALIAS:
|
|
recursive = 1
|
|
|
|
void
|
|
ldns_resolver_set_recursive(resolver, b)
|
|
DNS__LDNS__Resolver resolver;
|
|
bool b;
|
|
ALIAS:
|
|
set_recursive = 1
|
|
|
|
bool
|
|
ldns_resolver_debug(resolver)
|
|
DNS__LDNS__Resolver resolver;
|
|
ALIAS:
|
|
debug = 1
|
|
|
|
void
|
|
ldns_resolver_set_debug(resolver, b)
|
|
DNS__LDNS__Resolver resolver;
|
|
bool b;
|
|
ALIAS:
|
|
set_debug = 1
|
|
|
|
uint8_t
|
|
ldns_resolver_retry(resolver)
|
|
DNS__LDNS__Resolver resolver;
|
|
ALIAS:
|
|
retry = 1
|
|
|
|
void
|
|
ldns_resolver_set_retry(resolver, re)
|
|
DNS__LDNS__Resolver resolver;
|
|
uint8_t re;
|
|
ALIAS:
|
|
set_retry = 1
|
|
|
|
uint8_t
|
|
ldns_resolver_retrans(resolver)
|
|
DNS__LDNS__Resolver resolver;
|
|
ALIAS:
|
|
retrans = 1
|
|
|
|
void
|
|
ldns_resolver_set_retrans(resolver, re)
|
|
DNS__LDNS__Resolver resolver;
|
|
uint8_t re;
|
|
ALIAS:
|
|
set_retrans = 1
|
|
|
|
bool
|
|
ldns_resolver_fallback(resolver)
|
|
DNS__LDNS__Resolver resolver;
|
|
ALIAS:
|
|
fallback = 1
|
|
|
|
void
|
|
ldns_resolver_set_fallback(resolver, f)
|
|
DNS__LDNS__Resolver resolver;
|
|
bool f;
|
|
ALIAS:
|
|
set_fallback = 1
|
|
|
|
uint8_t
|
|
ldns_resolver_ip6(resolver)
|
|
DNS__LDNS__Resolver resolver;
|
|
ALIAS:
|
|
ip6 = 1
|
|
|
|
void
|
|
ldns_resolver_set_ip6(resolver, i)
|
|
DNS__LDNS__Resolver resolver;
|
|
uint8_t i;
|
|
ALIAS:
|
|
set_ip6 = 1
|
|
|
|
uint16_t
|
|
ldns_resolver_edns_udp_size(resolver)
|
|
DNS__LDNS__Resolver resolver;
|
|
ALIAS:
|
|
edns_udp_size = 1
|
|
|
|
void
|
|
ldns_resolver_set_edns_udp_size(resolver, s)
|
|
DNS__LDNS__Resolver resolver;
|
|
uint16_t s;
|
|
ALIAS:
|
|
set_edns_udp_size = 1
|
|
|
|
bool
|
|
ldns_resolver_usevc(resolver)
|
|
DNS__LDNS__Resolver resolver;
|
|
ALIAS:
|
|
usevc = 1
|
|
|
|
void
|
|
ldns_resolver_set_usevc(resolver, b)
|
|
DNS__LDNS__Resolver resolver;
|
|
bool b;
|
|
ALIAS:
|
|
set_usevc = 1
|
|
|
|
bool
|
|
ldns_resolver_fail(resolver)
|
|
DNS__LDNS__Resolver resolver;
|
|
ALIAS:
|
|
fail = 1
|
|
|
|
void
|
|
ldns_resolver_set_fail(resolver, b)
|
|
DNS__LDNS__Resolver resolver;
|
|
bool b;
|
|
ALIAS:
|
|
set_fail = 1
|
|
|
|
bool
|
|
ldns_resolver_defnames(resolver)
|
|
DNS__LDNS__Resolver resolver;
|
|
ALIAS:
|
|
defnames = 1
|
|
|
|
void
|
|
ldns_resolver_set_defnames(resolver, b)
|
|
DNS__LDNS__Resolver resolver;
|
|
bool b;
|
|
ALIAS:
|
|
set_defnames = 1
|
|
|
|
bool
|
|
ldns_resolver_dnsrch(resolver)
|
|
DNS__LDNS__Resolver resolver;
|
|
ALIAS:
|
|
dnsrch = 1
|
|
|
|
void
|
|
ldns_resolver_set_dnsrch(resolver, b)
|
|
DNS__LDNS__Resolver resolver;
|
|
bool b;
|
|
ALIAS:
|
|
set_dnsrch = 1
|
|
|
|
bool
|
|
ldns_resolver_igntc(resolver)
|
|
DNS__LDNS__Resolver resolver;
|
|
ALIAS:
|
|
igntc = 1
|
|
|
|
void
|
|
ldns_resolver_set_igntc(resolver, b)
|
|
DNS__LDNS__Resolver resolver;
|
|
bool b;
|
|
ALIAS:
|
|
set_igntc = 1
|
|
|
|
bool
|
|
ldns_resolver_random(resolver)
|
|
DNS__LDNS__Resolver resolver;
|
|
ALIAS:
|
|
random = 1
|
|
|
|
void
|
|
ldns_resolver_set_random(resolver, b)
|
|
DNS__LDNS__Resolver resolver;
|
|
bool b;
|
|
ALIAS:
|
|
set_random = 1
|
|
|
|
bool
|
|
ldns_resolver_trusted_key(resolver, keys, trusted_key)
|
|
DNS__LDNS__Resolver resolver;
|
|
DNS__LDNS__RRList keys;
|
|
DNS__LDNS__RRList trusted_key;
|
|
ALIAS:
|
|
trusted_key = 1
|
|
|
|
DNS__LDNS__RRList
|
|
ldns_resolver_dnssec_anchors(resolver)
|
|
DNS__LDNS__Resolver resolver;
|
|
ALIAS:
|
|
_dnssec_anchors = 1
|
|
|
|
void
|
|
ldns_resolver_set_dnssec_anchors(resolver, list)
|
|
DNS__LDNS__Resolver resolver;
|
|
DNS__LDNS__RRList list;
|
|
ALIAS:
|
|
_set_dnssec_anchors = 1
|
|
|
|
void
|
|
ldns_resolver_push_dnssec_anchor(resolver, rr)
|
|
DNS__LDNS__Resolver resolver;
|
|
DNS__LDNS__RR rr;
|
|
ALIAS:
|
|
_push_dnssec_anchor = 1
|
|
|
|
DNS__LDNS__RData
|
|
ldns_resolver_domain(resolver)
|
|
DNS__LDNS__Resolver resolver;
|
|
ALIAS:
|
|
_domain = 1
|
|
|
|
void
|
|
ldns_resolver_set_domain(resolver, rd)
|
|
DNS__LDNS__Resolver resolver;
|
|
DNS__LDNS__RData rd;
|
|
ALIAS:
|
|
_set_domain = 1
|
|
|
|
AV *
|
|
_nameservers(resolver)
|
|
DNS__LDNS__Resolver resolver;
|
|
PREINIT:
|
|
ldns_rdf** list;
|
|
AV * result;
|
|
int i;
|
|
SV * elem;
|
|
CODE:
|
|
result = (AV *)sv_2mortal((SV *)newAV());
|
|
list = ldns_resolver_nameservers(resolver);
|
|
|
|
/* FIXME: Make a typemap for this ? */
|
|
for (i = 0; i < ldns_resolver_nameserver_count(resolver); i++) {
|
|
elem = newSVpv(0, 0);
|
|
sv_setref_pv(elem, "LDNS::RData", list[i]);
|
|
av_push(result, elem);
|
|
}
|
|
RETVAL = result;
|
|
OUTPUT:
|
|
RETVAL
|
|
|
|
size_t
|
|
ldns_resolver_nameserver_count(resolver)
|
|
DNS__LDNS__Resolver resolver;
|
|
ALIAS:
|
|
nameserver_count = 1
|
|
|
|
LDNS_Status
|
|
ldns_resolver_push_nameserver(resolver, n)
|
|
DNS__LDNS__Resolver resolver;
|
|
DNS__LDNS__RData n;
|
|
ALIAS:
|
|
_push_nameserver = 1
|
|
|
|
DNS__LDNS__RData
|
|
ldns_resolver_pop_nameserver(resolver)
|
|
DNS__LDNS__Resolver resolver;
|
|
ALIAS:
|
|
_pop_nameserver = 1
|
|
|
|
void
|
|
ldns_resolver_nameservers_randomize(resolver)
|
|
DNS__LDNS__Resolver resolver;
|
|
ALIAS:
|
|
nameservers_randomize = 1
|
|
|
|
const char*
|
|
ldns_resolver_tsig_keyname(resolver)
|
|
DNS__LDNS__Resolver resolver;
|
|
ALIAS:
|
|
tsig_keyname = 1
|
|
|
|
void
|
|
ldns_resolver_set_tsig_keyname(resolver, tsig_keyname)
|
|
DNS__LDNS__Resolver resolver;
|
|
char* tsig_keyname;
|
|
ALIAS:
|
|
set_tsig_keyname = 1
|
|
|
|
const char*
|
|
ldns_resolver_tsig_algorithm(resolver)
|
|
DNS__LDNS__Resolver resolver;
|
|
ALIAS:
|
|
tsig_algorithm = 1
|
|
|
|
void
|
|
ldns_resolver_set_tsig_algorithm(resolver, tsig_algorithm)
|
|
DNS__LDNS__Resolver resolver;
|
|
char* tsig_algorithm;
|
|
ALIAS:
|
|
set_tsig_algorithm = 1
|
|
|
|
const char*
|
|
ldns_resolver_tsig_keydata(resolver)
|
|
DNS__LDNS__Resolver resolver;
|
|
ALIAS:
|
|
tsig_keydata = 1
|
|
|
|
void
|
|
ldns_resolver_set_tsig_keydata(resolver, tsig_keydata)
|
|
DNS__LDNS__Resolver resolver;
|
|
char* tsig_keydata;
|
|
ALIAS:
|
|
set_tsig_keydata = 1
|
|
|
|
size_t
|
|
ldns_resolver_searchlist_count(resolver)
|
|
DNS__LDNS__Resolver resolver;
|
|
ALIAS:
|
|
searchlist_count = 1
|
|
|
|
void
|
|
ldns_resolver_push_searchlist(resolver, rd)
|
|
DNS__LDNS__Resolver resolver;
|
|
DNS__LDNS__RData rd;
|
|
ALIAS:
|
|
_push_searchlist = 1
|
|
|
|
AV *
|
|
_searchlist(resolver)
|
|
DNS__LDNS__Resolver resolver;
|
|
PREINIT:
|
|
ldns_rdf** list;
|
|
AV * result;
|
|
int i;
|
|
SV * elem;
|
|
CODE:
|
|
result = (AV *)sv_2mortal((SV *)newAV());
|
|
list = ldns_resolver_searchlist(resolver);
|
|
|
|
/* FIXME: Make a typemap for this ? */
|
|
for (i = 0; i < ldns_resolver_searchlist_count(resolver); i++) {
|
|
elem = newSVpv(0, 0);
|
|
sv_setref_pv(elem, "LDNS::RData", list[i]);
|
|
av_push(result, elem);
|
|
}
|
|
RETVAL = result;
|
|
OUTPUT:
|
|
RETVAL
|
|
|
|
size_t
|
|
ldns_resolver_nameserver_rtt(resolver, pos)
|
|
DNS__LDNS__Resolver resolver;
|
|
size_t pos;
|
|
ALIAS:
|
|
nameserver_rtt = 1
|
|
|
|
void
|
|
ldns_resolver_set_nameserver_rtt(resolver, pos, val)
|
|
DNS__LDNS__Resolver resolver;
|
|
size_t pos;
|
|
size_t val;
|
|
ALIAS:
|
|
set_nameserver_rtt = 1
|
|
|
|
AV *
|
|
_timeout(resolver)
|
|
DNS__LDNS__Resolver resolver;
|
|
PREINIT:
|
|
struct timeval t;
|
|
AV * result;
|
|
CODE:
|
|
t = ldns_resolver_timeout(resolver);
|
|
result = (AV *)sv_2mortal((SV *)newAV());
|
|
av_push(result, newSVuv(t.tv_sec));
|
|
av_push(result, newSVuv(t.tv_usec));
|
|
RETVAL = result;
|
|
OUTPUT:
|
|
RETVAL
|
|
|
|
void
|
|
set_timeout(resolver, sec, usec)
|
|
DNS__LDNS__Resolver resolver;
|
|
uint32_t sec;
|
|
uint32_t usec;
|
|
PREINIT:
|
|
struct timeval t;
|
|
CODE:
|
|
t.tv_sec = sec;
|
|
t.tv_usec = usec;
|
|
ldns_resolver_set_timeout(resolver, t);
|
|
|
|
void
|
|
_set_rtt(resolver, rtt)
|
|
DNS__LDNS__Resolver resolver;
|
|
AV * rtt;
|
|
PREINIT:
|
|
size_t *buff;
|
|
int i;
|
|
SV** elem;
|
|
CODE:
|
|
buff = malloc(sizeof(size_t)*(av_len(rtt)+1));
|
|
for (i = 0; i <= av_len(rtt); i++) {
|
|
elem = av_fetch(rtt, i, 0);
|
|
buff[i] = SvUV(*elem);
|
|
}
|
|
ldns_resolver_set_rtt(resolver, buff);
|
|
|
|
AV *
|
|
_rtt(resolver)
|
|
DNS__LDNS__Resolver resolver;
|
|
PREINIT:
|
|
int i;
|
|
size_t *rtt;
|
|
AV * result;
|
|
CODE:
|
|
result = (AV *)sv_2mortal((SV *)newAV());
|
|
rtt = ldns_resolver_rtt(resolver);
|
|
|
|
for (i = 0; i < ldns_resolver_nameserver_count(resolver); i++) {
|
|
av_push(result, newSVuv(rtt[i]));
|
|
}
|
|
RETVAL = result;
|
|
OUTPUT:
|
|
RETVAL
|
|
|
|
DNS__LDNS__RRList
|
|
ldns_validate_domain_ds(resolver, domain, keys)
|
|
DNS__LDNS__Resolver resolver;
|
|
DNS__LDNS__RData domain;
|
|
DNS__LDNS__RRList keys;
|
|
ALIAS:
|
|
validate_domain_ds = 1
|
|
|
|
DNS__LDNS__RRList
|
|
ldns_validate_domain_ds_time(resolver, domain, keys, check_time)
|
|
DNS__LDNS__Resolver resolver;
|
|
DNS__LDNS__RData domain;
|
|
DNS__LDNS__RRList keys;
|
|
time_t check_time;
|
|
ALIAS:
|
|
validate_domain_ds_time = 1
|
|
|
|
DNS__LDNS__RRList
|
|
ldns_validate_domain_dnskey(resolver, domain, keys)
|
|
DNS__LDNS__Resolver resolver;
|
|
DNS__LDNS__RData domain;
|
|
DNS__LDNS__RRList keys;
|
|
ALIAS:
|
|
validate_domain_dnskey = 1
|
|
|
|
DNS__LDNS__RRList
|
|
ldns_validate_domain_dnskey_time(resolver, domain, keys, check_time)
|
|
DNS__LDNS__Resolver resolver;
|
|
DNS__LDNS__RData domain;
|
|
DNS__LDNS__RRList keys;
|
|
time_t check_time;
|
|
ALIAS:
|
|
validate_domain_dnskey_time = 1
|
|
|
|
LDNS_Status
|
|
ldns_verify_trusted(resolver, rrset, rrsigs, validating_keys)
|
|
DNS__LDNS__Resolver resolver;
|
|
DNS__LDNS__RRList rrset;
|
|
DNS__LDNS__RRList rrsigs;
|
|
DNS__LDNS__RRList validating_keys;
|
|
ALIAS:
|
|
_verify_trusted = 1
|
|
|
|
LDNS_Status
|
|
ldns_verify_trusted_time(resolver, rrset, rrsigs, check_time, validating_keys)
|
|
DNS__LDNS__Resolver resolver;
|
|
DNS__LDNS__RRList rrset;
|
|
DNS__LDNS__RRList rrsigs;
|
|
time_t check_time;
|
|
DNS__LDNS__RRList validating_keys;
|
|
ALIAS:
|
|
_verify_trusted_time = 1
|
|
|
|
DNS__LDNS__RRList
|
|
_fetch_valid_domain_keys(resolver, domain, keys, s)
|
|
DNS__LDNS__Resolver resolver;
|
|
DNS__LDNS__RData domain;
|
|
DNS__LDNS__RRList keys;
|
|
LDNS_Status s;
|
|
PREINIT:
|
|
DNS__LDNS__RRList trusted;
|
|
DNS__LDNS__RRList ret;
|
|
size_t i;
|
|
CODE:
|
|
RETVAL = NULL;
|
|
trusted = ldns_fetch_valid_domain_keys(resolver, domain, keys, &s);
|
|
if (s == LDNS_STATUS_OK) {
|
|
RETVAL = ldns_rr_list_clone(trusted);
|
|
ldns_rr_list_free(trusted);
|
|
}
|
|
OUTPUT:
|
|
RETVAL
|
|
s
|
|
|
|
DNS__LDNS__RRList
|
|
_fetch_valid_domain_keys_time(resolver, domain, keys, check_time, s)
|
|
DNS__LDNS__Resolver resolver;
|
|
DNS__LDNS__RData domain;
|
|
DNS__LDNS__RRList keys;
|
|
time_t check_time;
|
|
LDNS_Status s;
|
|
PREINIT:
|
|
DNS__LDNS__RRList trusted;
|
|
DNS__LDNS__RRList ret;
|
|
size_t i;
|
|
CODE:
|
|
RETVAL = NULL;
|
|
trusted = ldns_fetch_valid_domain_keys_time(
|
|
resolver, domain, keys, check_time, &s);
|
|
if (s == LDNS_STATUS_OK) {
|
|
RETVAL = ldns_rr_list_clone(trusted);
|
|
ldns_rr_list_free(trusted);
|
|
}
|
|
OUTPUT:
|
|
RETVAL
|
|
s
|
|
|
|
DNS__LDNS__Packet
|
|
ldns_resolver_query(resolver, name, type, class, flags)
|
|
DNS__LDNS__Resolver resolver;
|
|
DNS__LDNS__RData name;
|
|
LDNS_RR_Type type;
|
|
LDNS_RR_Class class;
|
|
uint16_t flags;
|
|
ALIAS:
|
|
query = 1
|
|
|
|
DNS__LDNS__Packet
|
|
_send(resolver, name, type, class, flags, s)
|
|
DNS__LDNS__Resolver resolver;
|
|
DNS__LDNS__RData name;
|
|
LDNS_RR_Type type;
|
|
LDNS_RR_Class class;
|
|
uint16_t flags;
|
|
LDNS_Status s;
|
|
PREINIT:
|
|
DNS__LDNS__Packet packet;
|
|
CODE:
|
|
s = ldns_resolver_send(&packet, resolver, name, type, class, flags);
|
|
if (s == LDNS_STATUS_OK) {
|
|
RETVAL = packet;
|
|
}
|
|
OUTPUT:
|
|
RETVAL
|
|
s
|
|
|
|
DNS__LDNS__Packet
|
|
_send_pkt(resolver, packet, s)
|
|
DNS__LDNS__Resolver resolver;
|
|
DNS__LDNS__Packet packet;
|
|
LDNS_Status s;
|
|
PREINIT:
|
|
DNS__LDNS__Packet answer;
|
|
CODE:
|
|
s = ldns_resolver_send_pkt(&answer, resolver, packet);
|
|
if (s == LDNS_STATUS_OK) {
|
|
RETVAL = answer;
|
|
}
|
|
OUTPUT:
|
|
RETVAL
|
|
s
|
|
|
|
DNS__LDNS__Packet
|
|
_prepare_query_pkt(resolver, name, type, class, flags, s)
|
|
DNS__LDNS__Resolver resolver;
|
|
DNS__LDNS__RData name;
|
|
LDNS_RR_Type type;
|
|
LDNS_RR_Class class;
|
|
uint16_t flags;
|
|
LDNS_Status s;
|
|
PREINIT:
|
|
DNS__LDNS__Packet packet;
|
|
CODE:
|
|
s = ldns_resolver_prepare_query_pkt(&packet, resolver, name, type, class, flags);
|
|
if (s == LDNS_STATUS_OK) {
|
|
RETVAL = packet;
|
|
}
|
|
OUTPUT:
|
|
RETVAL
|
|
s
|
|
|
|
DNS__LDNS__Packet
|
|
ldns_resolver_search(resolver, name, type, class, flags)
|
|
DNS__LDNS__Resolver resolver;
|
|
DNS__LDNS__RData name;
|
|
LDNS_RR_Type type;
|
|
LDNS_RR_Class class;
|
|
uint16_t flags;
|
|
ALIAS:
|
|
search = 1
|
|
|
|
DNS__LDNS__DNSSecDataChain
|
|
build_data_chain(res, qflags, data_set, pkt, orig_rr)
|
|
DNS__LDNS__Resolver res;
|
|
uint16_t qflags;
|
|
DNS__LDNS__RRList data_set;
|
|
DNS__LDNS__Packet pkt;
|
|
DNS__LDNS__RR__Opt orig_rr;
|
|
CODE:
|
|
RETVAL = ldns_dnssec_build_data_chain(res, qflags, data_set, pkt, orig_rr);
|
|
OUTPUT:
|
|
RETVAL
|
|
|
|
DNS__LDNS__RRList
|
|
ldns_get_rr_list_addr_by_name(res, name, class, flags)
|
|
DNS__LDNS__Resolver res;
|
|
DNS__LDNS__RData name;
|
|
LDNS_RR_Class class;
|
|
uint16_t flags;
|
|
ALIAS:
|
|
get_rr_list_addr_by_name = 1
|
|
|
|
DNS__LDNS__RRList
|
|
ldns_get_rr_list_name_by_addr(res, addr, class, flags)
|
|
DNS__LDNS__Resolver res;
|
|
DNS__LDNS__RData addr;
|
|
LDNS_RR_Class class;
|
|
uint16_t flags;
|
|
ALIAS:
|
|
get_rr_list_addr_by_addr = 1
|
|
|
|
|
|
MODULE = DNS::LDNS PACKAGE = DNS::LDNS::Packet
|
|
|
|
Mortal_PV
|
|
ldns_pkt2str(pkt)
|
|
DNS__LDNS__Packet pkt;
|
|
ALIAS:
|
|
to_string = 1
|
|
|
|
DNS__LDNS__RRList
|
|
ldns_pkt_question(pkt)
|
|
DNS__LDNS__Packet pkt;
|
|
ALIAS:
|
|
_question = 1
|
|
|
|
void
|
|
ldns_pkt_set_question(pkt, l)
|
|
DNS__LDNS__Packet pkt;
|
|
DNS__LDNS__RRList l;
|
|
ALIAS:
|
|
_set_question = 1
|
|
|
|
DNS__LDNS__RRList
|
|
ldns_pkt_answer(pkt)
|
|
DNS__LDNS__Packet pkt;
|
|
ALIAS:
|
|
_answer = 1
|
|
|
|
void
|
|
ldns_pkt_set_answer(pkt, l)
|
|
DNS__LDNS__Packet pkt;
|
|
DNS__LDNS__RRList l;
|
|
ALIAS:
|
|
_set_answer = 1
|
|
|
|
DNS__LDNS__RRList
|
|
ldns_pkt_authority(pkt)
|
|
DNS__LDNS__Packet pkt;
|
|
ALIAS:
|
|
_authority = 1
|
|
|
|
void
|
|
ldns_pkt_set_authority(pkt, l)
|
|
DNS__LDNS__Packet pkt;
|
|
DNS__LDNS__RRList l;
|
|
ALIAS:
|
|
_set_authority = 1
|
|
|
|
DNS__LDNS__RRList
|
|
ldns_pkt_additional(pkt)
|
|
DNS__LDNS__Packet pkt;
|
|
ALIAS:
|
|
_additional = 1
|
|
|
|
void
|
|
ldns_pkt_set_additional(pkt, l)
|
|
DNS__LDNS__Packet pkt;
|
|
DNS__LDNS__RRList l;
|
|
ALIAS:
|
|
_set_additional = 1
|
|
|
|
DNS__LDNS__RRList
|
|
ldns_pkt_all(pkt)
|
|
DNS__LDNS__Packet pkt;
|
|
ALIAS:
|
|
all = 1
|
|
|
|
DNS__LDNS__RRList
|
|
ldns_pkt_all_noquestion(pkt)
|
|
DNS__LDNS__Packet pkt;
|
|
ALIAS:
|
|
all_noquestion = 1
|
|
|
|
signed char
|
|
ldns_pkt_qr(pkt)
|
|
DNS__LDNS__Packet pkt;
|
|
ALIAS:
|
|
qr = 1
|
|
|
|
void
|
|
ldns_pkt_set_qr(pkt, b)
|
|
DNS__LDNS__Packet pkt;
|
|
signed char b;
|
|
ALIAS:
|
|
set_qr = 1
|
|
|
|
signed char
|
|
ldns_pkt_aa(pkt)
|
|
DNS__LDNS__Packet pkt;
|
|
ALIAS:
|
|
aa = 1
|
|
|
|
void
|
|
ldns_pkt_set_aa(pkt, b)
|
|
DNS__LDNS__Packet pkt;
|
|
signed char b;
|
|
ALIAS:
|
|
set_aa = 1
|
|
|
|
signed char
|
|
ldns_pkt_tc(pkt)
|
|
DNS__LDNS__Packet pkt;
|
|
ALIAS:
|
|
tc = 1
|
|
|
|
void
|
|
ldns_pkt_set_tc(pkt, b)
|
|
DNS__LDNS__Packet pkt;
|
|
signed char b;
|
|
ALIAS:
|
|
set_tc = 1
|
|
|
|
signed char
|
|
ldns_pkt_rd(pkt)
|
|
DNS__LDNS__Packet pkt;
|
|
ALIAS:
|
|
rd = 1
|
|
|
|
void
|
|
ldns_pkt_set_rd(pkt, b)
|
|
DNS__LDNS__Packet pkt;
|
|
signed char b;
|
|
ALIAS:
|
|
set_rd = 1
|
|
|
|
bool
|
|
ldns_pkt_cd(pkt)
|
|
DNS__LDNS__Packet pkt;
|
|
ALIAS:
|
|
cd = 1
|
|
|
|
void
|
|
ldns_pkt_set_cd(pkt, b)
|
|
DNS__LDNS__Packet pkt;
|
|
signed char b;
|
|
ALIAS:
|
|
set_cd = 1
|
|
|
|
signed char
|
|
ldns_pkt_ra(pkt)
|
|
DNS__LDNS__Packet pkt;
|
|
ALIAS:
|
|
ra = 1
|
|
|
|
void
|
|
ldns_pkt_set_ra(pkt, b)
|
|
DNS__LDNS__Packet pkt;
|
|
signed char b;
|
|
ALIAS:
|
|
set_ra = 1
|
|
|
|
signed char
|
|
ldns_pkt_ad(pkt)
|
|
DNS__LDNS__Packet pkt;
|
|
ALIAS:
|
|
ad = 1
|
|
|
|
void
|
|
ldns_pkt_set_ad(pkt, b)
|
|
DNS__LDNS__Packet pkt;
|
|
signed char b;
|
|
ALIAS:
|
|
set_ad = 1
|
|
|
|
uint16_t
|
|
ldns_pkt_id(pkt)
|
|
DNS__LDNS__Packet pkt;
|
|
ALIAS:
|
|
id = 1
|
|
|
|
void
|
|
ldns_pkt_set_id(pkt, id)
|
|
DNS__LDNS__Packet pkt;
|
|
uint16_t id;
|
|
ALIAS:
|
|
set_id = 1
|
|
|
|
void
|
|
ldns_pkt_set_random_id(pkt)
|
|
DNS__LDNS__Packet pkt;
|
|
ALIAS:
|
|
set_random_id = 1
|
|
|
|
uint16_t
|
|
ldns_pkt_qdcount(pkt)
|
|
DNS__LDNS__Packet pkt;
|
|
ALIAS:
|
|
qdcount = 1
|
|
|
|
uint16_t
|
|
ldns_pkt_ancount(pkt)
|
|
DNS__LDNS__Packet pkt;
|
|
ALIAS:
|
|
ancount = 1
|
|
|
|
uint16_t
|
|
ldns_pkt_nscount(pkt)
|
|
DNS__LDNS__Packet pkt;
|
|
ALIAS:
|
|
nscount = 1
|
|
|
|
uint16_t
|
|
ldns_pkt_arcount(pkt)
|
|
DNS__LDNS__Packet pkt;
|
|
ALIAS:
|
|
arcount = 1
|
|
|
|
LDNS_Pkt_Opcode
|
|
ldns_pkt_get_opcode(pkt)
|
|
DNS__LDNS__Packet pkt;
|
|
ALIAS:
|
|
opcode = 1
|
|
|
|
void
|
|
ldns_pkt_set_opcode(pkt, c)
|
|
DNS__LDNS__Packet pkt;
|
|
LDNS_Pkt_Opcode c;
|
|
ALIAS:
|
|
set_opcode = 1
|
|
|
|
uint8_t
|
|
ldns_pkt_get_rcode(pkt)
|
|
DNS__LDNS__Packet pkt;
|
|
ALIAS:
|
|
rcode = 1
|
|
|
|
void
|
|
ldns_pkt_set_rcode(pkt, r)
|
|
DNS__LDNS__Packet pkt;
|
|
uint8_t r;
|
|
ALIAS:
|
|
set_rcode = 1
|
|
|
|
size_t
|
|
ldns_pkt_size(pkt)
|
|
DNS__LDNS__Packet pkt;
|
|
ALIAS:
|
|
size = 1
|
|
|
|
uint32_t
|
|
ldns_pkt_querytime(pkt)
|
|
DNS__LDNS__Packet pkt;
|
|
ALIAS:
|
|
querytime = 1
|
|
|
|
void
|
|
ldns_pkt_set_querytime(pkt, t)
|
|
DNS__LDNS__Packet pkt;
|
|
uint32_t t;
|
|
ALIAS:
|
|
set_querytime = 1
|
|
|
|
DNS__LDNS__RData
|
|
ldns_pkt_answerfrom(pkt)
|
|
DNS__LDNS__Packet pkt;
|
|
ALIAS:
|
|
_answerfrom = 1
|
|
|
|
AV *
|
|
_timestamp(pkt)
|
|
DNS__LDNS__Packet pkt;
|
|
PREINIT:
|
|
struct timeval t;
|
|
AV * result;
|
|
CODE:
|
|
t = ldns_pkt_timestamp(pkt);
|
|
result = (AV *)sv_2mortal((SV *)newAV());
|
|
av_push(result, newSVuv(t.tv_sec));
|
|
av_push(result, newSVuv(t.tv_usec));
|
|
RETVAL = result;
|
|
OUTPUT:
|
|
RETVAL
|
|
|
|
void
|
|
set_timestamp(pkt, sec, usec)
|
|
DNS__LDNS__Packet pkt;
|
|
uint32_t sec;
|
|
uint32_t usec;
|
|
PREINIT:
|
|
struct timeval t;
|
|
CODE:
|
|
t.tv_sec = sec;
|
|
t.tv_usec = usec;
|
|
ldns_pkt_set_timestamp(pkt, t);
|
|
|
|
void
|
|
ldns_pkt_set_answerfrom(pkt, a)
|
|
DNS__LDNS__Packet pkt;
|
|
DNS__LDNS__RData a;
|
|
ALIAS:
|
|
_set_answerfrom = 1
|
|
|
|
bool
|
|
ldns_pkt_set_flags(pkt, f)
|
|
DNS__LDNS__Packet pkt;
|
|
uint16_t f;
|
|
ALIAS:
|
|
set_flags = 1
|
|
|
|
DNS__LDNS__RRList
|
|
ldns_pkt_rr_list_by_name(pkt, name, sec)
|
|
DNS__LDNS__Packet pkt;
|
|
DNS__LDNS__RData name;
|
|
LDNS_Pkt_Section sec;
|
|
ALIAS:
|
|
rr_list_by_name = 1
|
|
|
|
DNS__LDNS__RRList
|
|
ldns_pkt_rr_list_by_type(pkt, type, sec)
|
|
DNS__LDNS__Packet pkt;
|
|
LDNS_RR_Type type;
|
|
LDNS_Pkt_Section sec;
|
|
ALIAS:
|
|
rr_list_by_type = 1
|
|
|
|
DNS__LDNS__RRList
|
|
ldns_pkt_rr_list_by_name_and_type(pkt, name, type, sec)
|
|
DNS__LDNS__Packet pkt;
|
|
DNS__LDNS__RData name;
|
|
LDNS_RR_Type type;
|
|
LDNS_Pkt_Section sec;
|
|
ALIAS:
|
|
rr_list_by_name_and_type = 1
|
|
|
|
bool
|
|
ldns_pkt_rr(pkt, sec, rr)
|
|
DNS__LDNS__Packet pkt;
|
|
LDNS_Pkt_Section sec;
|
|
DNS__LDNS__RR rr;
|
|
ALIAS:
|
|
rr = 1
|
|
|
|
bool
|
|
ldns_pkt_push_rr(pkt, sec, rr)
|
|
DNS__LDNS__Packet pkt;
|
|
LDNS_Pkt_Section sec;
|
|
DNS__LDNS__RR rr;
|
|
ALIAS:
|
|
_push_rr = 1
|
|
|
|
bool
|
|
ldns_pkt_safe_push_rr(pkt, sec, rr)
|
|
DNS__LDNS__Packet pkt;
|
|
LDNS_Pkt_Section sec;
|
|
DNS__LDNS__RR rr;
|
|
ALIAS:
|
|
_safe_push_rr = 1
|
|
|
|
uint16_t
|
|
ldns_pkt_section_count(pkt, sec)
|
|
DNS__LDNS__Packet pkt;
|
|
LDNS_Pkt_Section sec;
|
|
ALIAS:
|
|
section_count = 1
|
|
|
|
signed char
|
|
ldns_pkt_empty(pkt)
|
|
DNS__LDNS__Packet pkt;
|
|
ALIAS:
|
|
empty = 1
|
|
|
|
DNS__LDNS__RR
|
|
ldns_pkt_tsig(pkt)
|
|
DNS__LDNS__Packet pkt;
|
|
ALIAS:
|
|
_tsig = 1
|
|
|
|
void
|
|
ldns_pkt_set_tsig(pkt, rr)
|
|
DNS__LDNS__Packet pkt;
|
|
DNS__LDNS__RR rr;
|
|
ALIAS:
|
|
_set_tsig = 1
|
|
|
|
DNS__LDNS__Packet
|
|
ldns_pkt_clone(pkt)
|
|
DNS__LDNS__Packet pkt;
|
|
ALIAS:
|
|
clone = 1
|
|
|
|
LDNS_Pkt_Type
|
|
ldns_pkt_reply_type(pkt)
|
|
DNS__LDNS__Packet pkt;
|
|
ALIAS:
|
|
reply_type = 1
|
|
|
|
DNS__LDNS__Packet
|
|
ldns_pkt_new()
|
|
ALIAS:
|
|
_new = 1
|
|
|
|
DNS__LDNS__Packet
|
|
ldns_pkt_query_new(name, type, class, flags)
|
|
DNS__LDNS__RData name;
|
|
LDNS_RR_Type type;
|
|
LDNS_RR_Class class;
|
|
uint16_t flags;
|
|
ALIAS:
|
|
_query_new = 1
|
|
|
|
DNS__LDNS__RRList
|
|
ldns_dnssec_pkt_get_rrsigs_for_name_and_type(pkt, name, type)
|
|
DNS__LDNS__Packet pkt;
|
|
DNS__LDNS__RData name;
|
|
LDNS_RR_Type type;
|
|
ALIAS:
|
|
get_rrsigs_for_name_and_type = 1
|
|
|
|
DNS__LDNS__RRList
|
|
ldns_dnssec_pkt_get_rrsigs_for_type(pkt, type)
|
|
DNS__LDNS__Packet pkt;
|
|
LDNS_RR_Type type;
|
|
ALIAS:
|
|
get_rrsigs_for_type = 1
|
|
|
|
uint16_t
|
|
ldns_pkt_edns_udp_size(pkt)
|
|
DNS__LDNS__Packet pkt;
|
|
ALIAS:
|
|
edns_udp_size = 1
|
|
|
|
void
|
|
ldns_pkt_set_edns_udp_size(pkt, s)
|
|
DNS__LDNS__Packet pkt;
|
|
uint16_t s;
|
|
ALIAS:
|
|
set_edns_udp_size = 1
|
|
|
|
uint8_t
|
|
ldns_pkt_edns_extended_rcode(pkt)
|
|
DNS__LDNS__Packet pkt;
|
|
ALIAS:
|
|
edns_extended_rcode = 1
|
|
|
|
void
|
|
ldns_pkt_set_edns_extended_rcode(pkt, c)
|
|
DNS__LDNS__Packet pkt;
|
|
uint8_t c;
|
|
ALIAS:
|
|
set_edns_extended_rcode = 1
|
|
|
|
uint8_t
|
|
ldns_pkt_edns_version(pkt)
|
|
DNS__LDNS__Packet pkt;
|
|
ALIAS:
|
|
edns_version = 1
|
|
|
|
void
|
|
ldns_pkt_set_edns_version(pkt, v)
|
|
DNS__LDNS__Packet pkt;
|
|
uint8_t v;
|
|
ALIAS:
|
|
set_edns_version = 1
|
|
|
|
uint16_t
|
|
ldns_pkt_edns_z(pkt)
|
|
DNS__LDNS__Packet pkt;
|
|
ALIAS:
|
|
edns_z = 1
|
|
|
|
void
|
|
ldns_pkt_set_edns_z(pkt, z)
|
|
DNS__LDNS__Packet pkt;
|
|
uint16_t z;
|
|
ALIAS:
|
|
set_edns_z = 1
|
|
|
|
signed char
|
|
ldns_pkt_edns_do(pkt)
|
|
DNS__LDNS__Packet pkt;
|
|
ALIAS:
|
|
edns_do = 1
|
|
|
|
DNS__LDNS__RData
|
|
ldns_pkt_edns_data(pkt)
|
|
DNS__LDNS__Packet pkt;
|
|
ALIAS:
|
|
_edns_data = 1
|
|
|
|
void
|
|
ldns_pkt_set_edns_data(pkt, data)
|
|
DNS__LDNS__Packet pkt;
|
|
DNS__LDNS__RData data;
|
|
ALIAS:
|
|
_set_edns_data = 1
|
|
|
|
void
|
|
ldns_pkt_set_edns_do(pkt, val)
|
|
DNS__LDNS__Packet pkt;
|
|
signed char val;
|
|
ALIAS:
|
|
set_edns_do = 1
|
|
|
|
bool
|
|
ldns_pkt_edns(pkt)
|
|
DNS__LDNS__Packet pkt;
|
|
ALIAS:
|
|
edns = 1
|
|
|
|
|
|
MODULE = DNS::LDNS PACKAGE = DNS::LDNS::Key
|
|
|
|
DNS__LDNS__Key
|
|
_new_from_file(fp, line_nr, s)
|
|
FILE* fp;
|
|
int line_nr;
|
|
LDNS_Status s;
|
|
PREINIT:
|
|
ldns_key *key;
|
|
CODE:
|
|
RETVAL = NULL;
|
|
s = ldns_key_new_frm_fp_l(&key, fp, &line_nr);
|
|
|
|
if (s == LDNS_STATUS_OK) {
|
|
RETVAL = key;
|
|
}
|
|
OUTPUT:
|
|
RETVAL
|
|
s
|
|
line_nr
|
|
|
|
DNS__LDNS__Key
|
|
ldns_key_new()
|
|
ALIAS:
|
|
_new = 1
|
|
|
|
void
|
|
print(key, fp)
|
|
DNS__LDNS__Key key;
|
|
FILE* fp;
|
|
CODE:
|
|
ldns_key_print(fp, key);
|
|
|
|
Mortal_PV
|
|
ldns_key2str(key)
|
|
DNS__LDNS__Key key;
|
|
ALIAS:
|
|
to_string = 1
|
|
|
|
void
|
|
ldns_key_set_algorithm(key, algorithm)
|
|
DNS__LDNS__Key key;
|
|
LDNS_Signing_Algorithm algorithm;
|
|
ALIAS:
|
|
set_algorithm = 1
|
|
|
|
LDNS_Signing_Algorithm
|
|
ldns_key_algorithm(key)
|
|
DNS__LDNS__Key key;
|
|
ALIAS:
|
|
algorithm = 1
|
|
|
|
void
|
|
ldns_key_set_flags(key, flags)
|
|
DNS__LDNS__Key key;
|
|
uint16_t flags;
|
|
ALIAS:
|
|
set_flags = 1
|
|
|
|
uint16_t
|
|
ldns_key_flags(key)
|
|
DNS__LDNS__Key key;
|
|
ALIAS:
|
|
flags = 1
|
|
|
|
void
|
|
ldns_key_set_hmac_key(key, hmac)
|
|
DNS__LDNS__Key key;
|
|
unsigned char* hmac;
|
|
ALIAS:
|
|
set_hmac_key = 1
|
|
|
|
unsigned char *
|
|
ldns_key_hmac_key(key)
|
|
DNS__LDNS__Key key;
|
|
ALIAS:
|
|
hmac_key = 1
|
|
|
|
void
|
|
ldns_key_set_hmac_size(key, size)
|
|
DNS__LDNS__Key key;
|
|
size_t size;
|
|
ALIAS:
|
|
set_hmac_size = 1
|
|
|
|
size_t
|
|
ldns_key_hmac_size(key)
|
|
DNS__LDNS__Key key;
|
|
ALIAS:
|
|
hmac_size = 1
|
|
|
|
void
|
|
ldns_key_set_origttl(key, t)
|
|
DNS__LDNS__Key key;
|
|
uint32_t t;
|
|
ALIAS:
|
|
set_origttl = 1
|
|
|
|
uint32_t
|
|
ldns_key_origttl(key)
|
|
DNS__LDNS__Key key;
|
|
ALIAS:
|
|
origttl = 1
|
|
|
|
void
|
|
ldns_key_set_inception(key, i)
|
|
DNS__LDNS__Key key;
|
|
uint32_t i;
|
|
ALIAS:
|
|
set_inception = 1
|
|
|
|
uint32_t
|
|
ldns_key_inception(key)
|
|
DNS__LDNS__Key key;
|
|
ALIAS:
|
|
inception = 1
|
|
|
|
void
|
|
ldns_key_set_expiration(key, e)
|
|
DNS__LDNS__Key key;
|
|
uint32_t e;
|
|
ALIAS:
|
|
set_expiration = 1
|
|
|
|
uint32_t
|
|
ldns_key_expiration(key)
|
|
DNS__LDNS__Key key;
|
|
ALIAS:
|
|
expiration = 1
|
|
|
|
void
|
|
ldns_key_set_pubkey_owner(key, r)
|
|
DNS__LDNS__Key key;
|
|
DNS__LDNS__RData r;
|
|
ALIAS:
|
|
_set_pubkey_owner = 1
|
|
|
|
DNS__LDNS__RData
|
|
ldns_key_pubkey_owner(key)
|
|
DNS__LDNS__Key key;
|
|
ALIAS:
|
|
_pubkey_owner = 1
|
|
|
|
void
|
|
ldns_key_set_keytag(key, tag)
|
|
DNS__LDNS__Key key;
|
|
uint16_t tag;
|
|
ALIAS:
|
|
set_keytag = 1
|
|
|
|
uint16_t
|
|
ldns_key_keytag(key)
|
|
DNS__LDNS__Key key;
|
|
ALIAS:
|
|
keytag = 1
|
|
|
|
void
|
|
ldns_key_set_use(key, v)
|
|
DNS__LDNS__Key key;
|
|
signed char v;
|
|
ALIAS:
|
|
set_use = 1
|
|
|
|
signed char
|
|
ldns_key_use(key)
|
|
DNS__LDNS__Key key;
|
|
ALIAS:
|
|
use = 1
|
|
|
|
char *
|
|
ldns_key_get_file_base_name(key)
|
|
DNS__LDNS__Key key;
|
|
ALIAS:
|
|
get_file_base_name = 1
|
|
|
|
DNS__LDNS__RR
|
|
ldns_key2rr(key)
|
|
DNS__LDNS__Key key;
|
|
ALIAS:
|
|
to_rr = 1
|
|
|
|
|
|
MODULE = DNS::LDNS PACKAGE = DNS::LDNS::KeyList
|
|
|
|
DNS__LDNS__KeyList
|
|
ldns_key_list_new()
|
|
ALIAS:
|
|
_new = 1
|
|
|
|
void
|
|
ldns_key_list_set_use(keys, v)
|
|
DNS__LDNS__KeyList keys;
|
|
bool v;
|
|
ALIAS:
|
|
set_use = 1
|
|
|
|
DNS__LDNS__Key
|
|
ldns_key_list_pop_key(keylist)
|
|
DNS__LDNS__KeyList keylist;
|
|
ALIAS:
|
|
pop = 1
|
|
|
|
void
|
|
ldns_key_list_push_key(keylist, key)
|
|
DNS__LDNS__KeyList keylist;
|
|
DNS__LDNS__Key key;
|
|
ALIAS:
|
|
_push = 1
|
|
|
|
size_t
|
|
ldns_key_list_key_count(keylist)
|
|
DNS__LDNS__KeyList keylist;
|
|
ALIAS:
|
|
count = 1
|
|
|
|
DNS__LDNS__Key
|
|
ldns_key_list_key(keylist, nr)
|
|
DNS__LDNS__KeyList keylist;
|
|
size_t nr;
|
|
ALIAS:
|
|
_key = 1
|
|
|
|
|
|
MODULE = DNS::LDNS PACKAGE = DNS::LDNS::DNSSecDataChain
|
|
|
|
DNS__LDNS__DNSSecDataChain
|
|
ldns_dnssec_data_chain_new()
|
|
ALIAS:
|
|
_new = 1
|
|
|
|
void
|
|
print(chain, fp)
|
|
DNS__LDNS__DNSSecDataChain chain;
|
|
FILE* fp;
|
|
CODE:
|
|
ldns_dnssec_data_chain_print(fp, chain);
|
|
|
|
DNS__LDNS__DNSSecTrustTree
|
|
ldns_dnssec_derive_trust_tree(chain, rr)
|
|
DNS__LDNS__DNSSecDataChain chain;
|
|
DNS__LDNS__RR rr;
|
|
ALIAS:
|
|
_derive_trust_tree = 1
|
|
|
|
DNS__LDNS__DNSSecTrustTree
|
|
ldns_dnssec_derive_trust_tree_time(chain, rr, check_time)
|
|
DNS__LDNS__DNSSecDataChain chain;
|
|
DNS__LDNS__RR rr;
|
|
time_t check_time;
|
|
ALIAS:
|
|
_derive_trust_tree_time = 1
|
|
|
|
DNS__LDNS__RRList
|
|
_rrset(chain)
|
|
DNS__LDNS__DNSSecDataChain chain;
|
|
CODE:
|
|
RETVAL = chain->rrset;
|
|
OUTPUT:
|
|
RETVAL
|
|
|
|
DNS__LDNS__RRList
|
|
_signatures(chain)
|
|
DNS__LDNS__DNSSecDataChain chain;
|
|
CODE:
|
|
RETVAL = chain->signatures;
|
|
OUTPUT:
|
|
RETVAL
|
|
|
|
LDNS_RR_Type
|
|
parent_type(chain)
|
|
DNS__LDNS__DNSSecDataChain chain;
|
|
CODE:
|
|
RETVAL = chain->parent_type;
|
|
OUTPUT:
|
|
RETVAL
|
|
|
|
DNS__LDNS__DNSSecDataChain
|
|
_parent(chain)
|
|
DNS__LDNS__DNSSecDataChain chain;
|
|
CODE:
|
|
RETVAL = chain->parent;
|
|
OUTPUT:
|
|
RETVAL
|
|
|
|
LDNS_Pkt_Rcode
|
|
packet_rcode(chain)
|
|
DNS__LDNS__DNSSecDataChain chain;
|
|
CODE:
|
|
RETVAL = chain->packet_rcode;
|
|
OUTPUT:
|
|
RETVAL
|
|
|
|
LDNS_RR_Type
|
|
packet_qtype(chain)
|
|
DNS__LDNS__DNSSecDataChain chain;
|
|
CODE:
|
|
RETVAL = chain->packet_qtype;
|
|
OUTPUT:
|
|
RETVAL
|
|
|
|
signed char
|
|
packet_nodata(chain)
|
|
DNS__LDNS__DNSSecDataChain chain;
|
|
CODE:
|
|
RETVAL = chain->packet_nodata;
|
|
OUTPUT:
|
|
RETVAL
|
|
|
|
|
|
MODULE = DNS::LDNS PACKAGE = DNS::LDNS::DNSSecTrustTree
|
|
|
|
DNS__LDNS__DNSSecTrustTree
|
|
ldns_dnssec_trust_tree_new()
|
|
ALIAS:
|
|
_new = 1
|
|
|
|
void
|
|
print(tree, fp, tabs, extended)
|
|
DNS__LDNS__DNSSecTrustTree tree;
|
|
FILE* fp;
|
|
size_t tabs;
|
|
bool extended;
|
|
CODE:
|
|
ldns_dnssec_trust_tree_print(fp, tree, tabs, extended);
|
|
|
|
size_t
|
|
ldns_dnssec_trust_tree_depth(tree)
|
|
DNS__LDNS__DNSSecTrustTree tree;
|
|
ALIAS:
|
|
depth = 1
|
|
|
|
LDNS_Status
|
|
ldns_dnssec_trust_tree_add_parent(tree, parent, signature, parent_status)
|
|
DNS__LDNS__DNSSecTrustTree tree;
|
|
DNS__LDNS__DNSSecTrustTree parent;
|
|
DNS__LDNS__RR signature;
|
|
LDNS_Status parent_status;
|
|
ALIAS:
|
|
_add_parent = 1
|
|
|
|
LDNS_Status
|
|
ldns_dnssec_trust_tree_contains_keys(tree, trusted_keys)
|
|
DNS__LDNS__DNSSecTrustTree tree;
|
|
DNS__LDNS__RRList trusted_keys;
|
|
ALIAS:
|
|
_contains_keys = 1
|
|
|
|
DNS__LDNS__RR
|
|
_rr(tree)
|
|
DNS__LDNS__DNSSecTrustTree tree;
|
|
CODE:
|
|
RETVAL = tree->rr;
|
|
OUTPUT:
|
|
RETVAL
|
|
|
|
DNS__LDNS__RRList
|
|
_rrset(tree)
|
|
DNS__LDNS__DNSSecTrustTree tree;
|
|
CODE:
|
|
RETVAL = tree->rrset;
|
|
OUTPUT:
|
|
RETVAL
|
|
|
|
DNS__LDNS__DNSSecTrustTree
|
|
_parent(tree, i)
|
|
DNS__LDNS__DNSSecTrustTree tree;
|
|
size_t i;
|
|
CODE:
|
|
RETVAL = tree->parents[i];
|
|
OUTPUT:
|
|
RETVAL
|
|
|
|
LDNS_Status
|
|
_parent_status(tree, i)
|
|
DNS__LDNS__DNSSecTrustTree tree;
|
|
size_t i;
|
|
CODE:
|
|
RETVAL = tree->parent_status[i];
|
|
OUTPUT:
|
|
RETVAL
|
|
|
|
DNS__LDNS__RR
|
|
_parent_signature(tree, i)
|
|
DNS__LDNS__DNSSecTrustTree tree;
|
|
size_t i;
|
|
CODE:
|
|
RETVAL = tree->parent_signature[i];
|
|
OUTPUT:
|
|
RETVAL
|
|
|
|
size_t
|
|
parent_count(tree)
|
|
DNS__LDNS__DNSSecTrustTree tree;
|
|
CODE:
|
|
RETVAL = tree->parent_count;
|
|
OUTPUT:
|
|
RETVAL
|