struct comm_reply* ATTR_UNUSED(reply_info))
{
struct worker* worker = (struct worker*)arg;
+ LDNS_ID_SET(ldns_buffer_begin(worker->query_reply.c->buffer),
+ worker->query_id);
if(error != 0) {
replyerror(LDNS_RCODE_SERVFAIL, worker);
return 0;
worker_process_query(struct worker* worker)
{
/* query the forwarding address */
+ worker->query_id = LDNS_ID_WIRE(ldns_buffer_begin(
+ worker->query_reply.c->buffer));
pending_udp_query(worker->back, worker->query_reply.c->buffer,
&worker->fwd_addr, worker->fwd_addrlen, UDP_QUERY_TIMEOUT,
worker_handle_reply, worker);
int num_requests;
/** our one and only query, packet buffer and where to send. */
struct comm_reply query_reply;
+ /** id of query */
+ uint16_t query_id;
/** address to forward to */
struct sockaddr_storage fwd_addr;
+7 February 2007: Wouter
+ - return answer with the same ID as query was sent with.
+ - created udp forwarder test. I've done some effort to make it perform
+ quickly. After servers are created, no big sleep statements but
+ it checks the logfiles to see if servers have come up. Takes 0.14s.
+
6 February 2007: Wouter
- reviewed code and improved in places.