#include "internal.h"
void adns__procdgram(adns_state ads, const byte *dgram, int dglen,
- int serv, struct timeval now) {
+ int serv, int viatcp, struct timeval now) {
int cbyte, rrstart, wantedrrs, rri, foundsoa, foundns, cname_here;
int id, f1, f2, qdcount, ancount, nscount, arcount;
int flg_ra, flg_rd, flg_tc, flg_qr, opcode;
dgram+DNS_HDRSIZE,
qu->query_dglen-DNS_HDRSIZE))
continue;
+ if (viatcp) {
+ if (qu->state != query_tcpsent) continue;
+ } else {
+ if (qu->state != query_tosend) continue;
+ if (!(qu->udpsent & (1<<serv))) continue;
+ }
break;
}
if (!qu) {
qu->flags |= adns_qf_usevc;
x_restartquery:
-
if (qu->cname_dgram) {
st= adns__mkquery_frdgram(qu->ads,&qu->vb,&qu->id,
qu->cname_dgram, qu->cname_dglen, qu->cname_begin,
memcpy(newquery,qu->vb.buf,qu->vb.used);
}
+ if (qu->state == query_tcpsent) qu->state= query_tosend;
adns__reset_preserved(qu);
- adns__query_udp(qu,now);
+ adns__query_send(qu,now);
}