]> git.ipfire.org Git - thirdparty/ldns.git/commitdiff
nu eens een keer wat anders
authorMiek Gieben <miekg@NLnetLabs.nl>
Wed, 16 Feb 2005 14:07:24 +0000 (14:07 +0000)
committerMiek Gieben <miekg@NLnetLabs.nl>
Wed, 16 Feb 2005 14:07:24 +0000 (14:07 +0000)
msg size implemented, an heh, it works

host2str.c
ldns/packet.h
net.c
packet.c
resolver.c

index ad4e3e38085776ae1f3b0089e373bbe2f0ced972..f9f8105bf1c4177688c4ea7b471f7383d3881aa0 100644 (file)
@@ -940,8 +940,9 @@ ldns_pkt2buffer_str(ldns_buffer *output, ldns_pkt *pkt)
                /* add some futher fields */
                ldns_buffer_printf(output, ";; Query time: %d msec\n", ldns_pkt_querytime(pkt));
                if (ldns_pkt_answerfrom(pkt)) {
-                       ldns_buffer_printf(output, ";; Server: %s\n", ldns_pkt_answerfrom(pkt));
+                       ldns_buffer_printf(output, ";; SERVER: %s\n", ldns_pkt_answerfrom(pkt));
                }
+               ldns_buffer_printf(output, ";; MSG SIZE  rcvd: %d\n", (int)ldns_pkt_size(pkt));
        } else {
                return ldns_buffer_status(output);
        }
@@ -1000,7 +1001,7 @@ ldns_pkt2str(ldns_pkt *pkt)
 {
        char *result = NULL;
        /* XXX MAXTEXTPACKET?? */
-       ldns_buffer *tmp_buffer = ldns_buffer_new(65535);
+       ldns_buffer *tmp_buffer = ldns_buffer_new(MAX_PACKET_SIZE);
 
        if (ldns_pkt2buffer_str(tmp_buffer, pkt) == LDNS_STATUS_OK) {
                /* export and return string, destroy rest */
index e76edba8e1885ea6fffad2bdb4ff354d43b9149a..074517eebf748b8e4e4637d40c220ac05976a009 100644 (file)
@@ -70,6 +70,8 @@ struct ldns_struct_pkt
        char *_answerfrom;
        /** \brief query duration */
        uint32_t _querytime;
+       /** \brief the packet size */
+       size_t _size;
        /** \brief query data */
        /** \brief question section */
        ldns_rr_list    *_question;
@@ -124,6 +126,7 @@ uint16_t ldns_pkt_nscount(ldns_pkt *);
 uint16_t ldns_pkt_arcount(ldns_pkt *);
 char *ldns_pkt_answerfrom(ldns_pkt *packet);
 uint32_t ldns_pkt_querytime(ldns_pkt *);
+size_t ldns_pkt_size(ldns_pkt *);
 
 ldns_rr_list *ldns_pkt_question(ldns_pkt *packet);
 ldns_rr_list *ldns_pkt_answer(ldns_pkt *packet);
@@ -146,6 +149,7 @@ void ldns_pkt_set_nscount(ldns_pkt *, uint16_t);
 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);
 
 /**
  * Allocates and initializes a ldns_pkt structure
diff --git a/net.c b/net.c
index 81ffb4def963c272b0da3820692b3b07483e9753..13108bb96befbe91772801a7d9a679d73d43218f 100644 (file)
--- a/net.c
+++ b/net.c
@@ -192,6 +192,7 @@ ldns_send_udp(ldns_buffer *qbin, const struct sockaddr_storage *to, socklen_t to
                        LDNS_STATUS_OK) {
                return NULL;
        } else {
+               ldns_pkt_set_size(answer_pkt, (size_t) bytes);
                return answer_pkt;
        }
 }
@@ -312,6 +313,7 @@ ldns_send_tcp(ldns_buffer *qbin, const struct sockaddr_storage *to, socklen_t to
                printf("could not create packet\n");
                return NULL;
        } else {
+               ldns_pkt_set_size(answer_pkt, (size_t) bytes);
                return answer_pkt;
        }
 }
index 6e70764b9e0effdbc2167f9de434a33c8f0e6a81..de97ec8bd2711e99c96058004295f0a0dfcbfe98 100644 (file)
--- a/packet.c
+++ b/packet.c
@@ -131,6 +131,12 @@ ldns_pkt_additional(ldns_pkt *packet)
        return packet->_additional;
 }
 
+size_t
+ldns_pkt_size(ldns_pkt *packet)
+{
+       return packet->_size;
+}
+
 uint32_t 
 ldns_pkt_querytime(ldns_pkt *packet)
 {
@@ -273,6 +279,12 @@ ldns_pkt_set_answerfrom(ldns_pkt *packet, char *answerfrom)
        packet->_answerfrom = answerfrom;
 }
 
+void
+ldns_pkt_set_size(ldns_pkt *packet, size_t s)
+{
+       packet->_size = s;
+}
+
 /** 
  * push an rr on a packet
  * \param[in] packet packet to operatore on
index 11138c9374e184c218d6a593a0e5c1486b21b473..d2a09251b21b52a9da6349edd253f658345974a5 100644 (file)
@@ -344,8 +344,6 @@ ldns_resolver_send(ldns_resolver *r, ldns_rdf *name, ldns_rr_type type, ldns_rr_
                printf("query type is not correct type\n");
                return NULL;
        }
-       printf("We are ASKING the question\n\n");
-       
        /* prepare a question pkt from the parameters
         * and then send this */
        query_pkt = ldns_pkt_query_new(name, type, class, flags);