Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(514)

Side by Side Diff: net/dns/dns_response.cc

Issue 15733008: Multicast DNS implementation (initial) (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@mdns_implementation2
Patch Set: Created 7 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "net/dns/dns_response.h" 5 #include "net/dns/dns_response.h"
6 6
7 #include "base/strings/string_util.h" 7 #include "base/strings/string_util.h"
8 #include "base/sys_byteorder.h" 8 #include "base/sys_byteorder.h"
9 #include "net/base/address_list.h" 9 #include "net/base/address_list.h"
10 #include "net/base/big_endian.h" 10 #include "net/base/big_endian.h"
(...skipping 213 matching lines...) Expand 10 before | Expand all | Expand 10 after
224 uint8 DnsResponse::rcode() const { 224 uint8 DnsResponse::rcode() const {
225 DCHECK(parser_.IsValid()); 225 DCHECK(parser_.IsValid());
226 return base::NetToHost16(header()->flags) & dns_protocol::kRcodeMask; 226 return base::NetToHost16(header()->flags) & dns_protocol::kRcodeMask;
227 } 227 }
228 228
229 unsigned DnsResponse::answer_count() const { 229 unsigned DnsResponse::answer_count() const {
230 DCHECK(parser_.IsValid()); 230 DCHECK(parser_.IsValid());
231 return base::NetToHost16(header()->ancount); 231 return base::NetToHost16(header()->ancount);
232 } 232 }
233 233
234 unsigned DnsResponse::additional_answer_count() const {
235 DCHECK(parser_.IsValid());
236 return base::NetToHost16(header()->arcount);
237 }
238
234 base::StringPiece DnsResponse::qname() const { 239 base::StringPiece DnsResponse::qname() const {
235 DCHECK(parser_.IsValid()); 240 DCHECK(parser_.IsValid());
236 // The response is HEADER QNAME QTYPE QCLASS ANSWER. 241 // The response is HEADER QNAME QTYPE QCLASS ANSWER.
237 // |parser_| is positioned at the beginning of ANSWER, so the end of QNAME is 242 // |parser_| is positioned at the beginning of ANSWER, so the end of QNAME is
238 // two uint16s before it. 243 // two uint16s before it.
239 const size_t hdr_size = sizeof(dns_protocol::Header); 244 const size_t hdr_size = sizeof(dns_protocol::Header);
240 const size_t qname_size = parser_.GetOffset() - 2 * sizeof(uint16) - hdr_size; 245 const size_t qname_size = parser_.GetOffset() - 2 * sizeof(uint16) - hdr_size;
241 return base::StringPiece(io_buffer_->data() + hdr_size, qname_size); 246 return base::StringPiece(io_buffer_->data() + hdr_size, qname_size);
242 } 247 }
243 248
(...skipping 79 matching lines...) Expand 10 before | Expand all | Expand 10 after
323 328
324 // getcanonname in eglibc returns the first owner name of an A or AAAA RR. 329 // getcanonname in eglibc returns the first owner name of an A or AAAA RR.
325 // If the response passed all the checks so far, then |expected_name| is it. 330 // If the response passed all the checks so far, then |expected_name| is it.
326 *addr_list = AddressList::CreateFromIPAddressList(ip_addresses, 331 *addr_list = AddressList::CreateFromIPAddressList(ip_addresses,
327 expected_name); 332 expected_name);
328 *ttl = base::TimeDelta::FromSeconds(ttl_sec); 333 *ttl = base::TimeDelta::FromSeconds(ttl_sec);
329 return DNS_PARSE_OK; 334 return DNS_PARSE_OK;
330 } 335 }
331 336
332 } // namespace net 337 } // namespace net
OLDNEW
« no previous file with comments | « net/dns/dns_response.h ('k') | net/dns/mdns_client.h » ('j') | net/dns/mdns_client_impl.cc » ('J')

Powered by Google App Engine
This is Rietveld 408576698