#define DNS_IDOFFSET 0
#define DNS_CLASS_IN 1
-#define DNS_INADDR_ARPA "in-addr", "arpa"
-#define DNS_IP6_ARPA "ip6", "arpa"
-
#define MAX_POLLFDS ADNS_POLLFDS_RECOMMENDED
/* Some preprocessor hackery */
struct timeval now;
} parseinfo;
-#define NREVDOMAINS 2 /* keep in sync with addrfam! */
+#define MAXREVLABELS 34 /* keep in sync with addrfam! */
struct revparse_state {
- unsigned map; /* which domains are still live */
- byte ipv[NREVDOMAINS][32]; /* address components so far */
+ uint16_t labstart[MAXREVLABELS];
+ uint8_t lablen[MAXREVLABELS];
};
union checklabel_state {
* because lablen is zero.
*/
- void (*postsort)(adns_state ads, void *array, int nrrs,int rrsz,
+ void (*postsort)(adns_state ads, void *array, int nrrs, int rrsz,
const struct typeinfo *typei);
/* Called immediately after the RRs have been sorted, and may rearrange
* them. (This is really for the benefit of SRV's bizarre weighting
struct query_queue udpw, tcpw, childw, output, intdone;
adns_query forallnext;
int nextid, tcpsocket;
- struct udpsocket { int af; int fd; } udpsocket[MAXUDP];
- int nudp;
+ struct udpsocket { int af; int fd; } udpsockets[MAXUDP];
+ int nudpsockets;
vbuf tcpsend, tcprecv;
int nservers, nsortlist, nsearchlist, searchndots, tcpserver, tcprecv_skip;
enum adns__tcpstate {
*/
char *adns__sockaddr_ntoa(const struct sockaddr *sa, char *buf);
-/* Convert sa to a string, and write it to buf, which must be at least
- * ADNS_ADDR2TEXT_BUFLEN bytes long (unchecked). Return buf; can't fail.
+/* Converts sa to a string, and writes it to buf, which must be at
+ * least ADNS_ADDR2TEXT_BUFLEN bytes long (unchecked). Returns buf;
+ * can't fail.
*/
extern int adns__make_reverse_domain(const struct sockaddr *sa,
void adns__cancel(adns_query qu);
void adns__query_done(adns_query qu);
-void adns__query_fail(adns_query qu, adns_status stat);
+void adns__query_fail(adns_query qu, adns_status st);
void adns__cancel_children(adns_query qu);
void adns__returning(adns_state ads, adns_query qu);