X-Git-Url: https://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?a=blobdiff_plain;f=src%2Fadns-internal.h;h=f4fe829c7368505f37dca783c11aaa9dc310b14c;hb=350d37d91f274691a71c2d41854773a2f832cf07;hp=8666614456e5cd0d8db594f4864a7c20e26dee9e;hpb=964344fc6da09bb76aff991cbda338fe9c919d21;p=adns.git diff --git a/src/adns-internal.h b/src/adns-internal.h index 8666614..f4fe829 100644 --- a/src/adns-internal.h +++ b/src/adns-internal.h @@ -16,22 +16,33 @@ struct adns__query { adns_query next, back; adns_query parent, child; adns_rrtype type; - struct adns_answer *answer; - int flags, udpretries, server; + adns_answer *answer; + int id, flags, udpretries, nextserver; + unsigned long sentudp, senttcp; /* bitmaps indexed by server */ struct timeval timeout; void *context; + unsigned char *querymsg; + int querylen; char owner[1]; + /* Possible states: + * Queue child answer nextserver sentudp senttcp + * input null null 0 all bits zero all bits zero + * timew null null any at least 1 bit set any + * childw set partial any any any + * output null set any any any + */ }; struct adns__state { adns_initflags iflags; struct { adns_query head, tail; } input, timew, childw, output; - int udpsocket; + int nextid, udpsocket; int qbufavail, tcpbufavail, tcpbufused, tcpbufdone; - char *qbuf, *tcpbuf; + unsigned char *qbuf, *tcpbuf; int nservers; - struct { + struct server { struct in_addr addr; + enum { server_disc, server_connecting, server_ok } state; int tcpsocket; struct timeval timeout; struct { adns_query head, tail; } connw;