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

Side by Side Diff: chrome/browser/local_discovery/endpoint_resolver.cc

Issue 1653573003: Revert of Migrate Local Discovery from net::IPAddressNumber to net::IPAddress. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 4 years, 10 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 2015 The Chromium Authors. All rights reserved. 1 // Copyright 2015 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 "chrome/browser/local_discovery/endpoint_resolver.h" 5 #include "chrome/browser/local_discovery/endpoint_resolver.h"
6 6
7 #include "base/command_line.h" 7 #include "base/command_line.h"
8 #include "base/debug/dump_without_crashing.h" 8 #include "base/debug/dump_without_crashing.h"
9 #include "build/build_config.h" 9 #include "build/build_config.h"
10 #include "chrome/browser/local_discovery/service_discovery_shared_client.h" 10 #include "chrome/browser/local_discovery/service_discovery_shared_client.h"
11 #include "chrome/common/chrome_switches.h" 11 #include "chrome/common/chrome_switches.h"
12 #include "net/base/ip_address.h"
13 #include "net/base/ip_endpoint.h" 12 #include "net/base/ip_endpoint.h"
13 #include "net/base/net_util.h"
14 14
15 namespace local_discovery { 15 namespace local_discovery {
16 16
17 EndpointResolver::EndpointResolver() { 17 EndpointResolver::EndpointResolver() {
18 service_discovery_client_ = ServiceDiscoverySharedClient::GetInstance(); 18 service_discovery_client_ = ServiceDiscoverySharedClient::GetInstance();
19 } 19 }
20 20
21 EndpointResolver::~EndpointResolver() {} 21 EndpointResolver::~EndpointResolver() {}
22 22
23 void EndpointResolver::Start(const std::string& service_name, 23 void EndpointResolver::Start(const std::string& service_name,
(...skipping 10 matching lines...) Expand all
34 const ServiceDescription& description) { 34 const ServiceDescription& description) {
35 if (result != ServiceResolver::STATUS_SUCCESS) 35 if (result != ServiceResolver::STATUS_SUCCESS)
36 return callback.Run(net::IPEndPoint()); 36 return callback.Run(net::IPEndPoint());
37 37
38 Start(description.address, callback); 38 Start(description.address, callback);
39 } 39 }
40 40
41 void EndpointResolver::Start(const net::HostPortPair& address, 41 void EndpointResolver::Start(const net::HostPortPair& address,
42 const ResultCallback& callback) { 42 const ResultCallback& callback) {
43 #if defined(OS_MACOSX) 43 #if defined(OS_MACOSX)
44 net::IPAddress ip_address; 44 net::IPAddressNumber ip_address;
45 if (!net::IPAddress::FromIPLiteral(address.host(), &ip_address)) { 45 if (!net::ParseIPLiteralToNumber(address.host(), &ip_address)) {
46 NOTREACHED() << address.ToString(); 46 NOTREACHED() << address.ToString();
47 // Unexpected, but could be a reason for crbug.com/513505 47 // Unexpected, but could be a reason for crbug.com/513505
48 base::debug::DumpWithoutCrashing(); 48 base::debug::DumpWithoutCrashing();
49 return callback.Run(net::IPEndPoint()); 49 return callback.Run(net::IPEndPoint());
50 } 50 }
51 51
52 // OSX already has IP there. 52 // OSX already has IP there.
53 callback.Run(net::IPEndPoint(ip_address, address.port())); 53 callback.Run(net::IPEndPoint(ip_address, address.port()));
54 #else // OS_MACOSX 54 #else // OS_MACOSX
55 net::AddressFamily address_family = net::ADDRESS_FAMILY_UNSPECIFIED; 55 net::AddressFamily address_family = net::ADDRESS_FAMILY_UNSPECIFIED;
56 if (base::CommandLine::ForCurrentProcess()->HasSwitch( 56 if (base::CommandLine::ForCurrentProcess()->HasSwitch(
57 switches::kPrivetIPv6Only)) { 57 switches::kPrivetIPv6Only)) {
58 address_family = net::ADDRESS_FAMILY_IPV6; 58 address_family = net::ADDRESS_FAMILY_IPV6;
59 } 59 }
60 60
61 domain_resolver_ = service_discovery_client_->CreateLocalDomainResolver( 61 domain_resolver_ = service_discovery_client_->CreateLocalDomainResolver(
62 address.host(), address_family, 62 address.host(), address_family,
63 base::Bind(&EndpointResolver::DomainResolveComplete, 63 base::Bind(&EndpointResolver::DomainResolveComplete,
64 base::Unretained(this), address.port(), callback)); 64 base::Unretained(this), address.port(), callback));
65 domain_resolver_->Start(); 65 domain_resolver_->Start();
66 #endif // OS_MACOSX 66 #endif // OS_MACOSX
67 } 67 }
68 68
69 void EndpointResolver::DomainResolveComplete( 69 void EndpointResolver::DomainResolveComplete(
70 uint16_t port, 70 uint16_t port,
71 const ResultCallback& callback, 71 const ResultCallback& callback,
72 bool success, 72 bool success,
73 const net::IPAddress& address_ipv4, 73 const net::IPAddressNumber& address_ipv4,
74 const net::IPAddress& address_ipv6) { 74 const net::IPAddressNumber& address_ipv6) {
75 if (!success) 75 if (!success)
76 return callback.Run(net::IPEndPoint()); 76 return callback.Run(net::IPEndPoint());
77 77
78 net::IPAddress address = address_ipv4; 78 net::IPAddressNumber address = address_ipv4;
79 if (!address.IsValid()) 79 if (address.empty())
80 address = address_ipv6; 80 address = address_ipv6;
81 81
82 DCHECK(address.IsValid()); 82 DCHECK(!address.empty());
83 83
84 callback.Run(net::IPEndPoint(address, port)); 84 callback.Run(net::IPEndPoint(address, port));
85 } 85 }
86 86
87 } // namespace local_discovery 87 } // namespace local_discovery
OLDNEW
« no previous file with comments | « chrome/browser/local_discovery/endpoint_resolver.h ('k') | chrome/browser/local_discovery/local_domain_resolver_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698