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

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

Issue 1545233002: Convert Pass()→std::move() in //net (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 4 years, 12 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
« no previous file with comments | « net/dns/dns_transaction_unittest.cc ('k') | net/dns/host_resolver_mojo.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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/host_resolver_impl.h" 5 #include "net/dns/host_resolver_impl.h"
6 6
7 #include <utility>
8
7 #if defined(OS_WIN) 9 #if defined(OS_WIN)
8 #include <Winsock2.h> 10 #include <Winsock2.h>
9 #elif defined(OS_POSIX) 11 #elif defined(OS_POSIX)
10 #include <netdb.h> 12 #include <netdb.h>
11 #endif 13 #endif
12 14
13 #include <cmath> 15 #include <cmath>
14 #include <utility> 16 #include <utility>
15 #include <vector> 17 #include <vector>
16 18
(...skipping 320 matching lines...) Expand 10 before | Expand all | Expand 10 after
337 os_error, 339 os_error,
338 0, // Use default language. 340 0, // Use default language.
339 (LPWSTR)&error_string, 341 (LPWSTR)&error_string,
340 0, // Buffer size. 342 0, // Buffer size.
341 0); // Arguments (unused). 343 0); // Arguments (unused).
342 dict->SetString("os_error_string", base::WideToUTF8(error_string)); 344 dict->SetString("os_error_string", base::WideToUTF8(error_string));
343 LocalFree(error_string); 345 LocalFree(error_string);
344 #endif 346 #endif
345 } 347 }
346 348
347 return dict.Pass(); 349 return std::move(dict);
348 } 350 }
349 351
350 // Creates NetLog parameters when the DnsTask failed. 352 // Creates NetLog parameters when the DnsTask failed.
351 scoped_ptr<base::Value> NetLogDnsTaskFailedCallback( 353 scoped_ptr<base::Value> NetLogDnsTaskFailedCallback(
352 int net_error, 354 int net_error,
353 int dns_error, 355 int dns_error,
354 NetLogCaptureMode /* capture_mode */) { 356 NetLogCaptureMode /* capture_mode */) {
355 scoped_ptr<base::DictionaryValue> dict(new base::DictionaryValue()); 357 scoped_ptr<base::DictionaryValue> dict(new base::DictionaryValue());
356 dict->SetInteger("net_error", net_error); 358 dict->SetInteger("net_error", net_error);
357 if (dns_error) 359 if (dns_error)
358 dict->SetInteger("dns_error", dns_error); 360 dict->SetInteger("dns_error", dns_error);
359 return dict.Pass(); 361 return std::move(dict);
360 }; 362 };
361 363
362 // Creates NetLog parameters containing the information in a RequestInfo object, 364 // Creates NetLog parameters containing the information in a RequestInfo object,
363 // along with the associated NetLog::Source. 365 // along with the associated NetLog::Source.
364 scoped_ptr<base::Value> NetLogRequestInfoCallback( 366 scoped_ptr<base::Value> NetLogRequestInfoCallback(
365 const HostResolver::RequestInfo* info, 367 const HostResolver::RequestInfo* info,
366 NetLogCaptureMode /* capture_mode */) { 368 NetLogCaptureMode /* capture_mode */) {
367 scoped_ptr<base::DictionaryValue> dict(new base::DictionaryValue()); 369 scoped_ptr<base::DictionaryValue> dict(new base::DictionaryValue());
368 370
369 dict->SetString("host", info->host_port_pair().ToString()); 371 dict->SetString("host", info->host_port_pair().ToString());
370 dict->SetInteger("address_family", 372 dict->SetInteger("address_family",
371 static_cast<int>(info->address_family())); 373 static_cast<int>(info->address_family()));
372 dict->SetBoolean("allow_cached_response", info->allow_cached_response()); 374 dict->SetBoolean("allow_cached_response", info->allow_cached_response());
373 dict->SetBoolean("is_speculative", info->is_speculative()); 375 dict->SetBoolean("is_speculative", info->is_speculative());
374 return dict.Pass(); 376 return std::move(dict);
375 } 377 }
376 378
377 // Creates NetLog parameters for the creation of a HostResolverImpl::Job. 379 // Creates NetLog parameters for the creation of a HostResolverImpl::Job.
378 scoped_ptr<base::Value> NetLogJobCreationCallback( 380 scoped_ptr<base::Value> NetLogJobCreationCallback(
379 const NetLog::Source& source, 381 const NetLog::Source& source,
380 const std::string* host, 382 const std::string* host,
381 NetLogCaptureMode /* capture_mode */) { 383 NetLogCaptureMode /* capture_mode */) {
382 scoped_ptr<base::DictionaryValue> dict(new base::DictionaryValue()); 384 scoped_ptr<base::DictionaryValue> dict(new base::DictionaryValue());
383 source.AddToEventParameters(dict.get()); 385 source.AddToEventParameters(dict.get());
384 dict->SetString("host", *host); 386 dict->SetString("host", *host);
385 return dict.Pass(); 387 return std::move(dict);
386 } 388 }
387 389
388 // Creates NetLog parameters for HOST_RESOLVER_IMPL_JOB_ATTACH/DETACH events. 390 // Creates NetLog parameters for HOST_RESOLVER_IMPL_JOB_ATTACH/DETACH events.
389 scoped_ptr<base::Value> NetLogJobAttachCallback( 391 scoped_ptr<base::Value> NetLogJobAttachCallback(
390 const NetLog::Source& source, 392 const NetLog::Source& source,
391 RequestPriority priority, 393 RequestPriority priority,
392 NetLogCaptureMode /* capture_mode */) { 394 NetLogCaptureMode /* capture_mode */) {
393 scoped_ptr<base::DictionaryValue> dict(new base::DictionaryValue()); 395 scoped_ptr<base::DictionaryValue> dict(new base::DictionaryValue());
394 source.AddToEventParameters(dict.get()); 396 source.AddToEventParameters(dict.get());
395 dict->SetString("priority", RequestPriorityToString(priority)); 397 dict->SetString("priority", RequestPriorityToString(priority));
396 return dict.Pass(); 398 return std::move(dict);
397 } 399 }
398 400
399 // Creates NetLog parameters for the DNS_CONFIG_CHANGED event. 401 // Creates NetLog parameters for the DNS_CONFIG_CHANGED event.
400 scoped_ptr<base::Value> NetLogDnsConfigCallback( 402 scoped_ptr<base::Value> NetLogDnsConfigCallback(
401 const DnsConfig* config, 403 const DnsConfig* config,
402 NetLogCaptureMode /* capture_mode */) { 404 NetLogCaptureMode /* capture_mode */) {
403 return make_scoped_ptr(config->ToValue()); 405 return make_scoped_ptr(config->ToValue());
404 } 406 }
405 407
406 scoped_ptr<base::Value> NetLogIPv6AvailableCallback( 408 scoped_ptr<base::Value> NetLogIPv6AvailableCallback(
407 bool ipv6_available, 409 bool ipv6_available,
408 bool cached, 410 bool cached,
409 NetLogCaptureMode /* capture_mode */) { 411 NetLogCaptureMode /* capture_mode */) {
410 scoped_ptr<base::DictionaryValue> dict(new base::DictionaryValue()); 412 scoped_ptr<base::DictionaryValue> dict(new base::DictionaryValue());
411 dict->SetBoolean("ipv6_available", ipv6_available); 413 dict->SetBoolean("ipv6_available", ipv6_available);
412 dict->SetBoolean("cached", cached); 414 dict->SetBoolean("cached", cached);
413 return dict.Pass(); 415 return std::move(dict);
414 } 416 }
415 417
416 // The logging routines are defined here because some requests are resolved 418 // The logging routines are defined here because some requests are resolved
417 // without a Request object. 419 // without a Request object.
418 420
419 // Logs when a request has just been started. 421 // Logs when a request has just been started.
420 void LogStartRequest(const BoundNetLog& source_net_log, 422 void LogStartRequest(const BoundNetLog& source_net_log,
421 const HostResolver::RequestInfo& info) { 423 const HostResolver::RequestInfo& info) {
422 source_net_log.BeginEvent( 424 source_net_log.BeginEvent(
423 NetLog::TYPE_HOST_RESOLVER_IMPL_REQUEST, 425 NetLog::TYPE_HOST_RESOLVER_IMPL_REQUEST,
(...skipping 906 matching lines...) Expand 10 before | Expand all | Expand 10 after
1330 req->source_net_log().source(), 1332 req->source_net_log().source(),
1331 priority())); 1333 priority()));
1332 1334
1333 // TODO(szym): Check if this is still needed. 1335 // TODO(szym): Check if this is still needed.
1334 if (!req->info().is_speculative()) { 1336 if (!req->info().is_speculative()) {
1335 had_non_speculative_request_ = true; 1337 had_non_speculative_request_ = true;
1336 if (proc_task_.get()) 1338 if (proc_task_.get())
1337 proc_task_->set_had_non_speculative_request(); 1339 proc_task_->set_had_non_speculative_request();
1338 } 1340 }
1339 1341
1340 requests_.push_back(req.Pass()); 1342 requests_.push_back(std::move(req));
1341 1343
1342 UpdatePriority(); 1344 UpdatePriority();
1343 } 1345 }
1344 1346
1345 // Marks |req| as cancelled. If it was the last active Request, also finishes 1347 // Marks |req| as cancelled. If it was the last active Request, also finishes
1346 // this Job, marking it as cancelled, and deletes it. 1348 // this Job, marking it as cancelled, and deletes it.
1347 void CancelRequest(Request* req) { 1349 void CancelRequest(Request* req) {
1348 DCHECK_EQ(key_.hostname, req->info().hostname()); 1350 DCHECK_EQ(key_.hostname, req->info().hostname());
1349 DCHECK(!req->was_canceled()); 1351 DCHECK(!req->was_canceled());
1350 1352
(...skipping 597 matching lines...) Expand 10 before | Expand all | Expand 10 after
1948 } else { 1950 } else {
1949 job = jobit->second; 1951 job = jobit->second;
1950 } 1952 }
1951 1953
1952 // Can't complete synchronously. Create and attach request. 1954 // Can't complete synchronously. Create and attach request.
1953 scoped_ptr<Request> req(new Request( 1955 scoped_ptr<Request> req(new Request(
1954 source_net_log, info, priority, callback, addresses)); 1956 source_net_log, info, priority, callback, addresses));
1955 if (out_req) 1957 if (out_req)
1956 *out_req = reinterpret_cast<RequestHandle>(req.get()); 1958 *out_req = reinterpret_cast<RequestHandle>(req.get());
1957 1959
1958 job->AddRequest(req.Pass()); 1960 job->AddRequest(std::move(req));
1959 // Completion happens during Job::CompleteRequests(). 1961 // Completion happens during Job::CompleteRequests().
1960 return ERR_IO_PENDING; 1962 return ERR_IO_PENDING;
1961 } 1963 }
1962 1964
1963 int HostResolverImpl::ResolveHelper(const Key& key, 1965 int HostResolverImpl::ResolveHelper(const Key& key,
1964 const RequestInfo& info, 1966 const RequestInfo& info,
1965 const IPAddressNumber* ip_number, 1967 const IPAddressNumber* ip_number,
1966 AddressList* addresses, 1968 AddressList* addresses,
1967 const BoundNetLog& source_net_log) { 1969 const BoundNetLog& source_net_log) {
1968 // The result of |getaddrinfo| for empty hosts is inconsistent across systems. 1970 // The result of |getaddrinfo| for empty hosts is inconsistent across systems.
(...skipping 442 matching lines...) Expand 10 before | Expand all | Expand 10 after
2411 AbortDnsTasks(); 2413 AbortDnsTasks();
2412 2414
2413 UMA_HISTOGRAM_BOOLEAN("AsyncDNS.DnsClientEnabled", false); 2415 UMA_HISTOGRAM_BOOLEAN("AsyncDNS.DnsClientEnabled", false);
2414 UMA_HISTOGRAM_SPARSE_SLOWLY("AsyncDNS.DnsClientDisabledReason", 2416 UMA_HISTOGRAM_SPARSE_SLOWLY("AsyncDNS.DnsClientDisabledReason",
2415 std::abs(net_error)); 2417 std::abs(net_error));
2416 } 2418 }
2417 2419
2418 void HostResolverImpl::SetDnsClient(scoped_ptr<DnsClient> dns_client) { 2420 void HostResolverImpl::SetDnsClient(scoped_ptr<DnsClient> dns_client) {
2419 // DnsClient and config must be updated before aborting DnsTasks, since doing 2421 // DnsClient and config must be updated before aborting DnsTasks, since doing
2420 // so may start new jobs. 2422 // so may start new jobs.
2421 dns_client_ = dns_client.Pass(); 2423 dns_client_ = std::move(dns_client);
2422 if (dns_client_ && !dns_client_->GetConfig() && 2424 if (dns_client_ && !dns_client_->GetConfig() &&
2423 num_dns_failures_ < kMaximumDnsFailures) { 2425 num_dns_failures_ < kMaximumDnsFailures) {
2424 DnsConfig dns_config; 2426 DnsConfig dns_config;
2425 NetworkChangeNotifier::GetDnsConfig(&dns_config); 2427 NetworkChangeNotifier::GetDnsConfig(&dns_config);
2426 dns_client_->SetConfig(dns_config); 2428 dns_client_->SetConfig(dns_config);
2427 num_dns_failures_ = 0; 2429 num_dns_failures_ = 0;
2428 if (dns_client_->GetConfig()) 2430 if (dns_client_->GetConfig())
2429 UMA_HISTOGRAM_BOOLEAN("AsyncDNS.DnsClientEnabled", true); 2431 UMA_HISTOGRAM_BOOLEAN("AsyncDNS.DnsClientEnabled", true);
2430 } 2432 }
2431 2433
2432 AbortDnsTasks(); 2434 AbortDnsTasks();
2433 } 2435 }
2434 2436
2435 } // namespace net 2437 } // namespace net
OLDNEW
« no previous file with comments | « net/dns/dns_transaction_unittest.cc ('k') | net/dns/host_resolver_mojo.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698