chiark
/
gitweb
/
~mdw
/
adns
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
quoteok_cname added to todo
[adns]
/
src
/
event.c
diff --git
a/src/event.c
b/src/event.c
index 0115e070b287d4d8b3fd7d11c02ee0455ce9f948..481fb73eb8762c184d4989e983143c0dc3c2a208 100644
(file)
--- a/
src/event.c
+++ b/
src/event.c
@@
-59,7
+59,7
@@
void adns__tcp_broken(adns_state ads, const char *what, const char *why) {
for (qu= ads->timew.head; qu; qu= nqu) {
nqu= qu->next;
for (qu= ads->timew.head; qu; qu= nqu) {
nqu= qu->next;
- if (qu->state == query_
udp
) continue;
+ if (qu->state == query_
tosend
) continue;
assert(qu->state == query_tcpwait || qu->state == query_tcpsent);
qu->state= query_tcpwait;
qu->tcpfailed |= (1<<serv);
assert(qu->state == query_tcpwait || qu->state == query_tcpsent);
qu->state= query_tcpwait;
qu->tcpfailed |= (1<<serv);
@@
-77,7
+77,7
@@
static void tcp_connected(adns_state ads, struct timeval now) {
ads->tcpstate= server_ok;
for (qu= ads->timew.head; qu; qu= nqu) {
nqu= qu->next;
ads->tcpstate= server_ok;
for (qu= ads->timew.head; qu; qu= nqu) {
nqu= qu->next;
- if (qu->state == query_
udp
) continue;
+ if (qu->state == query_
tosend
) continue;
assert (qu->state == query_tcpwait);
adns__query_tcp(qu,now);
}
assert (qu->state == query_tcpwait);
adns__query_tcp(qu,now);
}
@@
-173,16
+173,16
@@
void adns__timeouts(adns_state ads, int act,
for (qu= ads->timew.head; qu; qu= nqu) {
nqu= qu->next;
for (qu= ads->timew.head; qu; qu= nqu) {
nqu= qu->next;
- if (
timercmp(&now,&qu->timeout,<=
)) {
+ if (
!timercmp(&now,&qu->timeout,>
)) {
if (!tv_io) continue;
inter_maxtoabs(tv_io,tvbuf,now,qu->timeout);
} else {
if (!act) continue;
LIST_UNLINK(ads->timew,qu);
if (!tv_io) continue;
inter_maxtoabs(tv_io,tvbuf,now,qu->timeout);
} else {
if (!act) continue;
LIST_UNLINK(ads->timew,qu);
- if (qu->state != query_
udp
) {
+ if (qu->state != query_
tosend
) {
adns__query_fail(qu,adns_s_timeout);
} else {
adns__query_fail(qu,adns_s_timeout);
} else {
- adns__query_
udp
(qu,now);
+ adns__query_
send
(qu,now);
}
nqu= ads->timew.head;
}
}
nqu= ads->timew.head;
}
@@
-251,7
+251,7
@@
int adns_processreadable(adns_state ads, int fd, const struct timeval *now) {
if (ads->tcprecv.used<skip+2+dgramlen) {
want= 2+dgramlen;
} else {
if (ads->tcprecv.used<skip+2+dgramlen) {
want= 2+dgramlen;
} else {
- adns__procdgram(ads,ads->tcprecv.buf+skip+2,dgramlen,ads->tcpserver,*now);
+ adns__procdgram(ads,ads->tcprecv.buf+skip+2,dgramlen,ads->tcpserver,
1,
*now);
skip+= 2+dgramlen; continue;
}
}
skip+= 2+dgramlen; continue;
}
}
@@
-315,7
+315,7
@@
int adns_processreadable(adns_state ads, int fd, const struct timeval *now) {
inet_ntoa(udpaddr.sin_addr));
continue;
}
inet_ntoa(udpaddr.sin_addr));
continue;
}
- adns__procdgram(ads,udpbuf,r,serv,*now);
+ adns__procdgram(ads,udpbuf,r,serv,
0,
*now);
}
}
return 0;
}
}
return 0;
@@
-526,6
+526,7
@@
static int internal_check(adns_state ads,
LIST_UNLINK(ads->output,qu);
*answer= qu->answer;
if (context_r) *context_r= qu->ctx.ext;
LIST_UNLINK(ads->output,qu);
*answer= qu->answer;
if (context_r) *context_r= qu->ctx.ext;
+ *query_io= qu;
free(qu);
return 0;
}
free(qu);
return 0;
}