if (ldns_pkt_answerfrom(pkt)) {
ldns_buffer_printf(output, ";; SERVER: %s\n", ldns_pkt_answerfrom(pkt));
}
+ if (ldns_pkt_when(pkt)) {
+ /* \n included in when buffer, see ctime(3) */
+ ldns_buffer_printf(output, ";; WHEN: %s", ldns_pkt_when(pkt));
+ }
ldns_buffer_printf(output, ";; MSG SIZE rcvd: %d\n", (int)ldns_pkt_size(pkt));
} else {
return ldns_buffer_status(output);
/** \brief the size in bytes of the pkt */
uint16_t _answersize;
char *_answerfrom;
+ char *_when;
/** \brief query duration */
uint32_t _querytime;
/** \brief the packet size */
uint16_t ldns_pkt_nscount(ldns_pkt *);
uint16_t ldns_pkt_arcount(ldns_pkt *);
char *ldns_pkt_answerfrom(ldns_pkt *packet);
+char *ldns_pkt_when(ldns_pkt *packet);
uint32_t ldns_pkt_querytime(ldns_pkt *);
size_t ldns_pkt_size(ldns_pkt *);
void ldns_pkt_set_answerfrom(ldns_pkt *, char *);
void ldns_pkt_set_querytime(ldns_pkt *, uint32_t);
void ldns_pkt_set_size(ldns_pkt *, size_t);
+void ldns_pkt_set_when(ldns_pkt *, char *);
/**
* Allocates and initializes a ldns_pkt structure
reply = ldns_send_udp(qb, ns, ns_len);
}
gettimeofday(&tv_e, NULL);
-
+
if (reply) {
ldns_pkt_set_querytime(reply,
((tv_e.tv_sec - tv_s.tv_sec) * 1000) +
(tv_e.tv_usec - tv_s.tv_usec) / 1000);
ldns_pkt_set_answerfrom(reply, ldns_rdf2str(ns_array[i]));
+ ldns_pkt_set_when(reply, ctime((time_t*)&tv_s.tv_sec));
break;
}
}
return packet->_answerfrom;
}
+char *
+ldns_pkt_when(ldns_pkt *packet)
+{
+ return packet->_when;
+}
+
uint16_t
ldns_pkt_xxcount(ldns_pkt *packet, ldns_pkt_section s)
{
packet->_answerfrom = answerfrom;
}
+void
+ldns_pkt_set_when(ldns_pkt *packet, char *when)
+{
+ /* TODO if exists free? */
+ packet->_when = when;
+}
+
void
ldns_pkt_set_size(ldns_pkt *packet, size_t s)
{
ldns_pkt_set_size(packet, 0);
ldns_pkt_set_querytime(packet, 0);
ldns_pkt_set_answerfrom(packet, NULL);
+ ldns_pkt_set_when(packet, NULL);
return packet;
}