Chromium Code Reviews| Index: net/dns/dns_query.h |
| diff --git a/net/dns/dns_query.h b/net/dns/dns_query.h |
| index c6bd3bc1ceb608836251e49b52980628bde65ccc..596caa5095d9af2e083c66bbf28d3d634bad0d19 100644 |
| --- a/net/dns/dns_query.h |
| +++ b/net/dns/dns_query.h |
| @@ -6,53 +6,42 @@ |
| #define NET_DNS_DNS_QUERY_H_ |
| #pragma once |
| -#include <string> |
| - |
| +#include "base/basictypes.h" |
| #include "base/memory/ref_counted.h" |
| +#include "base/string_piece.h" |
| +#include "net/base/io_buffer.h" |
|
mmenke
2011/12/06 20:43:01
Looks like you forward declare IOBufferWithSize, s
szym
2011/12/06 21:06:43
Done.
|
| #include "net/base/net_export.h" |
| -#include "net/base/rand_callback.h" |
| namespace net { |
| class IOBufferWithSize; |
| // Represents on-the-wire DNS query message as an object. |
| +// TODO(szym): add support for the OPT pseudo-RR (EDNS0/DNSSEC). |
| class NET_EXPORT_PRIVATE DnsQuery { |
| public: |
| // Constructs a query message from |qname| which *MUST* be in a valid |
| - // DNS name format, and |qtype| which must be either kDNS_A or kDNS_AAAA. |
| - |
| - // Every generated object has a random ID, hence two objects generated |
| - // with the same set of constructor arguments are generally not equal; |
| - // there is a 1/2^16 chance of them being equal due to size of |id_|. |
| - DnsQuery(const std::string& qname, |
| - uint16 qtype, |
| - const RandIntCallback& rand_int_cb); |
| + // DNS name format, and |qtype|. The qclass is set to IN. |
| + DnsQuery(uint16 id, const base::StringPiece& qname, uint16 qtype); |
| ~DnsQuery(); |
| - // Clones |this| verbatim, with ID field of the header regenerated. |
| - DnsQuery* CloneWithNewId() const; |
| + // Clones |this| verbatim, with ID field of the header set to |id|. |
| + DnsQuery* CloneWithNewId(uint16 id) const; |
| // DnsQuery field accessors. |
| uint16 id() const; |
| + base::StringPiece qname() const; |
| uint16 qtype() const; |
| - // Returns the size of the Question section of the query. Used when |
| - // matching the response. |
| - size_t question_size() const; |
| - |
| - // Returns pointer to the Question section of the query. Used when |
| - // matching the response. |
| - const char* question_data() const; |
| + // Returns the Question section of the query. Used when matching the |
| + // response. |
| + base::StringPiece question() const; |
| // IOBuffer accessor to be used for writing out the query. |
| IOBufferWithSize* io_buffer() const { return io_buffer_; } |
| private: |
| - const std::string qname() const; |
| - |
| - // Randomizes ID field of the query message. |
| - void RandomizeId(); |
| + DnsQuery(const DnsQuery& orig, uint16 id); |
| // Size of the DNS name (*NOT* hostname) we are trying to resolve; used |
| // to calculate offsets. |
| @@ -61,9 +50,6 @@ class NET_EXPORT_PRIVATE DnsQuery { |
| // Contains query bytes to be consumed by higher level Write() call. |
| scoped_refptr<IOBufferWithSize> io_buffer_; |
| - // PRNG function for generating IDs. |
| - RandIntCallback rand_int_cb_; |
| - |
| DISALLOW_COPY_AND_ASSIGN(DnsQuery); |
| }; |