chiark
/
gitweb
/
~mdw
/
adns
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Extra infra.
[adns]
/
src
/
adns-internal.h
diff --git
a/src/adns-internal.h
b/src/adns-internal.h
index 05dd29c389d060aa04e6ee23d4e65d224fd0c57e..e3a013254cbc875fb76b012ad5cc76ef76887027 100644
(file)
--- a/
src/adns-internal.h
+++ b/
src/adns-internal.h
@@
-17,21
+17,30
@@
struct adns__query {
adns_query parent, child;
adns_rrtype type;
adns_answer *answer;
adns_query parent, child;
adns_rrtype type;
adns_answer *answer;
- int flags, udpretries, server;
+ int id, flags, udpretries, nextserver;
+ unsigned long sentudp, senttcp; /* bitmaps indexed by server */
struct timeval timeout;
void *context;
char owner[1];
struct timeval timeout;
void *context;
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;
};
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;
int nservers;
int qbufavail, tcpbufavail, tcpbufused, tcpbufdone;
char *qbuf, *tcpbuf;
int nservers;
- struct {
+ struct
server
{
struct in_addr addr;
struct in_addr addr;
+ enum { server_disc, server_connecting, server_ok } state;
int tcpsocket;
struct timeval timeout;
struct { adns_query head, tail; } connw;
int tcpsocket;
struct timeval timeout;
struct { adns_query head, tail; } connw;