X-Git-Url: https://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?p=adns.git;a=blobdiff_plain;f=src%2Finternal.h;h=cd58d7a2d46135f9069919ed70f9cda76df65948;hp=5b5097b7ed6b21abd81872621f67f254d5e24721;hb=0ba0614a998909d8b4f51988d7a8af3ba369a5d9;hpb=94436798148b6859a335d1e7c35c432904165e6d diff --git a/src/internal.h b/src/internal.h index 5b5097b..cd58d7a 100644 --- a/src/internal.h +++ b/src/internal.h @@ -17,13 +17,16 @@ typedef unsigned char byte; /* Configuration and constants */ #define MAXSERVERS 5 -#define MAXUDPRETRIES /*15*/5 +#define UDPMAXRETRIES /*15*/5 #define UDPRETRYMS 2000 #define TCPMS 30000 #define LOCALRESOURCEMS 20 -#define MAXUDPDGRAM 512 -#define NSPORT 53 -#define MAXDNAME 255 + +#define DNS_UDPPORT 53 +#define DNS_MAXUDP 512 +#define DNS_MAXDOMAIN 255 +#define DNS_HDRSIZE 12 +#define DNS_CLASS_IN 1 /* Shared data structures */ @@ -46,14 +49,20 @@ typedef union { int dmaddr_index; } qcontext; +typedef struct { + unsigned long searchkey; /* flags and typecode swapped */ + adns_rrtype type; +} typeinfo; + struct adns__query { /* FIXME: make sure this is all init'd properly */ enum { query_udp, query_tcpwait, query_tcpsent, query_child, query_done } state; adns_query back, next, parent; struct { adns_query head, tail; } children; struct { adns_query back, next; } siblings; - adns_rrtype type; - vbuf answer; + + const typeinfo *typei; + vbuf ans; int id, flags, udpretries; int udpnextserver; unsigned long udpsent, tcpfailed; /* bitmap indexed by server */