]> git.ipfire.org Git - thirdparty/ldns.git/commitdiff
the query date is printed of a packet
authorMiek Gieben <miekg@NLnetLabs.nl>
Mon, 21 Feb 2005 13:05:51 +0000 (13:05 +0000)
committerMiek Gieben <miekg@NLnetLabs.nl>
Mon, 21 Feb 2005 13:05:51 +0000 (13:05 +0000)
host2str.c
ldns/packet.h
net.c
packet.c

index 3739868281422fab5fedb008d063eb3721b5e335..c555abf3aa40e3e75463aac634202628ddd56ede 100644 (file)
@@ -937,6 +937,10 @@ ldns_pkt2buffer_str(ldns_buffer *output, ldns_pkt *pkt)
                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);
index 74441b348b8a83b09a4d56354dea5cd5b01b388d..93624736dcd70aaa04957bd61c8f5b70e95ff23c 100644 (file)
@@ -68,6 +68,7 @@ struct ldns_struct_pkt
        /** \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 */
@@ -125,6 +126,7 @@ uint16_t ldns_pkt_ancount(ldns_pkt *);
 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 *);
 
@@ -150,6 +152,7 @@ void ldns_pkt_set_arcount(ldns_pkt *, uint16_t);
 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
diff --git a/net.c b/net.c
index 57531a16f0897016037e4b84564d2c6ddf1f6aec..148013d12355bbee9639fa920eb242f37da0f1e4 100644 (file)
--- a/net.c
+++ b/net.c
@@ -104,12 +104,13 @@ ldns_send(ldns_resolver *r, ldns_pkt *query_pkt)
                        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;
                }
        }
index c105a04d25fb618e690d63856f2e872e4ee8bf13..e57ef5bb4bc544198338a5a46d3122ff29eed0bc 100644 (file)
--- a/packet.c
+++ b/packet.c
@@ -150,6 +150,12 @@ ldns_pkt_answerfrom(ldns_pkt *packet)
        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)
 {
@@ -280,6 +286,13 @@ ldns_pkt_set_answerfrom(ldns_pkt *packet, char *answerfrom)
        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)
 {
@@ -350,6 +363,7 @@ ldns_pkt_new()
        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;
 }