From: Miek Gieben Date: Wed, 16 Feb 2005 14:07:24 +0000 (+0000) Subject: nu eens een keer wat anders X-Git-Tag: release-0.50~406 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=9cefc6bf0da769b7c410111c5130d188cebef8ac;p=thirdparty%2Fldns.git nu eens een keer wat anders msg size implemented, an heh, it works --- diff --git a/host2str.c b/host2str.c index ad4e3e38..f9f8105b 100644 --- a/host2str.c +++ b/host2str.c @@ -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 */ diff --git a/ldns/packet.h b/ldns/packet.h index e76edba8..074517ee 100644 --- a/ldns/packet.h +++ b/ldns/packet.h @@ -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 81ffb4de..13108bb9 100644 --- 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; } } diff --git a/packet.c b/packet.c index 6e70764b..de97ec8b 100644 --- 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 diff --git a/resolver.c b/resolver.c index 11138c93..d2a09251 100644 --- a/resolver.c +++ b/resolver.c @@ -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);