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

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

Issue 1534583002: Migrate Local Discovery from net::IPAddressNumber to net::IPAddress. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 5 years 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 "chrome/browser/local_discovery/service_discovery_shared_client.h" 9 #include "chrome/browser/local_discovery/service_discovery_shared_client.h"
10 #include "chrome/common/chrome_switches.h" 10 #include "chrome/common/chrome_switches.h"
11 #include "net/base/ip_address.h"
11 #include "net/base/ip_endpoint.h" 12 #include "net/base/ip_endpoint.h"
12 #include "net/base/net_util.h"
13 13
14 namespace local_discovery { 14 namespace local_discovery {
15 15
16 EndpointResolver::EndpointResolver() { 16 EndpointResolver::EndpointResolver() {
17 service_discovery_client_ = ServiceDiscoverySharedClient::GetInstance(); 17 service_discovery_client_ = ServiceDiscoverySharedClient::GetInstance();
18 } 18 }
19 19
20 EndpointResolver::~EndpointResolver() {} 20 EndpointResolver::~EndpointResolver() {}
21 21
22 void EndpointResolver::Start(const std::string& service_name, 22 void EndpointResolver::Start(const std::string& service_name,
(...skipping 10 matching lines...) Expand all
33 const ServiceDescription& description) { 33 const ServiceDescription& description) {
34 if (result != ServiceResolver::STATUS_SUCCESS) 34 if (result != ServiceResolver::STATUS_SUCCESS)
35 return callback.Run(net::IPEndPoint()); 35 return callback.Run(net::IPEndPoint());
36 36
37 Start(description.address, callback); 37 Start(description.address, callback);
38 } 38 }
39 39
40 void EndpointResolver::Start(const net::HostPortPair& address, 40 void EndpointResolver::Start(const net::HostPortPair& address,
41 const ResultCallback& callback) { 41 const ResultCallback& callback) {
42 #if defined(OS_MACOSX) 42 #if defined(OS_MACOSX)
43 net::IPAddressNumber ip_address; 43 net::IPAddress ip_address;
44 if (!net::ParseIPLiteralToNumber(address.host(), &ip_address)) { 44 if (!net::IPAddress::FromIPLiteral(address.host(), &ip_address)) {
45 NOTREACHED() << address.ToString(); 45 NOTREACHED() << address.ToString();
46 // Unexpected, but could be a reason for crbug.com/513505 46 // Unexpected, but could be a reason for crbug.com/513505
47 base::debug::DumpWithoutCrashing(); 47 base::debug::DumpWithoutCrashing();
48 return callback.Run(net::IPEndPoint()); 48 return callback.Run(net::IPEndPoint());
49 } 49 }
50 50
51 // OSX already has IP there. 51 // OSX already has IP there.
52 callback.Run(net::IPEndPoint(ip_address, address.port())); 52 callback.Run(net::IPEndPoint(ip_address, address.port()));
53 #else // OS_MACOSX 53 #else // OS_MACOSX
54 net::AddressFamily address_family = net::ADDRESS_FAMILY_UNSPECIFIED; 54 net::AddressFamily address_family = net::ADDRESS_FAMILY_UNSPECIFIED;
55 if (base::CommandLine::ForCurrentProcess()->HasSwitch( 55 if (base::CommandLine::ForCurrentProcess()->HasSwitch(
56 switches::kPrivetIPv6Only)) { 56 switches::kPrivetIPv6Only)) {
57 address_family = net::ADDRESS_FAMILY_IPV6; 57 address_family = net::ADDRESS_FAMILY_IPV6;
58 } 58 }
59 59
60 domain_resolver_ = service_discovery_client_->CreateLocalDomainResolver( 60 domain_resolver_ = service_discovery_client_->CreateLocalDomainResolver(
61 address.host(), address_family, 61 address.host(), address_family,
62 base::Bind(&EndpointResolver::DomainResolveComplete, 62 base::Bind(&EndpointResolver::DomainResolveComplete,
63 base::Unretained(this), address.port(), callback)); 63 base::Unretained(this), address.port(), callback));
64 domain_resolver_->Start(); 64 domain_resolver_->Start();
65 #endif // OS_MACOSX 65 #endif // OS_MACOSX
66 } 66 }
67 67
68 void EndpointResolver::DomainResolveComplete( 68 void EndpointResolver::DomainResolveComplete(
69 uint16 port, 69 uint16 port,
70 const ResultCallback& callback, 70 const ResultCallback& callback,
71 bool success, 71 bool success,
72 const net::IPAddressNumber& address_ipv4, 72 const net::IPAddress& address_ipv4,
73 const net::IPAddressNumber& address_ipv6) { 73 const net::IPAddress& address_ipv6) {
74 if (!success) 74 if (!success)
75 return callback.Run(net::IPEndPoint()); 75 return callback.Run(net::IPEndPoint());
76 76
77 net::IPAddressNumber address = address_ipv4; 77 net::IPAddress address = address_ipv4;
78 if (address.empty()) 78 if (!address.IsIPv4())
eroman 2015/12/21 20:47:33 This does not quite have the same meaning as befor
martijnc 2016/01/27 22:50:52 Done.
79 address = address_ipv6; 79 address = address_ipv6;
80 80
81 DCHECK(!address.empty()); 81 DCHECK(address.IsIPv4() || address.IsIPv6());
eroman 2015/12/21 20:47:33 address.IsValid() or !address.is_null()
martijnc 2016/01/27 22:50:52 Done.
82 82
83 callback.Run(net::IPEndPoint(address, port)); 83 callback.Run(net::IPEndPoint(address, port));
84 } 84 }
85 85
86 } // namespace local_discovery 86 } // namespace local_discovery
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698