X-Git-Url: https://git.distorted.org.uk/~mdw/adns/blobdiff_plain/4e8966f30fe4b53960581503c29677ec41f589ed..8a53cf7f63a4decacd4b293b32167a23cdeea412:/src/internal.h diff --git a/src/internal.h b/src/internal.h index 4f4f87e..7cf4cec 100644 --- a/src/internal.h +++ b/src/internal.h @@ -69,6 +69,7 @@ typedef unsigned char byte; #define DNS_CLASS_IN 1 #define DNS_INADDR_ARPA "in-addr", "arpa" +#define DNS_IP6_ARPA "ip6", "arpa" #define MAX_POLLFDS ADNS_POLLFDS_RECOMMENDED @@ -121,13 +122,21 @@ typedef struct { int af; int width; int delim; + int nrevcomp; + int revcompwd; + adns_rrtype rrtype; void *(*sockaddr_to_inaddr)(struct sockaddr *sa); void (*prefix_mask)(int len, union gen_addr *a); int (*guess_len)(const union gen_addr *a); int (*matchp)(const union gen_addr *addr, const union gen_addr *base, const union gen_addr *mask); + int (*rev_parsecomp)(const char *p, size_t n); + void (*rev_mkaddr)(union gen_addr *addr, const byte *ipv); + char *(*rev_mkname)(struct sockaddr *sa, char *buf); } afinfo; +struct afinfo_addr { const afinfo *ai; union gen_addr addr; }; + typedef struct typeinfo { adns_rrtype typekey; const char *rrtname; @@ -207,7 +216,7 @@ typedef struct { void *ext; void (*callback)(adns_query parent, adns_query child); union { - adns_rr_addr ptr_parent_addr; + struct afinfo_addr ptr_parent_addr; adns_rr_hostaddr *hostaddr; } info; } qcontext;