| OLD | NEW |
| 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 "chrome/browser/extensions/api/dial/dial_service.h" | 5 #include "chrome/browser/extensions/api/dial/dial_service.h" |
| 6 | 6 |
| 7 #include <algorithm> | 7 #include <algorithm> |
| 8 | 8 |
| 9 #include "base/basictypes.h" | 9 #include "base/basictypes.h" |
| 10 #include "base/callback.h" | 10 #include "base/callback.h" |
| (...skipping 87 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 98 kDialResponseTimeoutSecs, | 98 kDialResponseTimeoutSecs, |
| 99 kDialSearchType, | 99 kDialSearchType, |
| 100 version.Name().c_str(), | 100 version.Name().c_str(), |
| 101 version.Version().c_str(), | 101 version.Version().c_str(), |
| 102 version.OSType().c_str())); | 102 version.OSType().c_str())); |
| 103 // 1500 is a good MTU value for most Ethernet LANs. | 103 // 1500 is a good MTU value for most Ethernet LANs. |
| 104 DCHECK(request.size() <= 1500); | 104 DCHECK(request.size() <= 1500); |
| 105 return request; | 105 return request; |
| 106 } | 106 } |
| 107 | 107 |
| 108 #if !defined(OS_CHROMEOS) |
| 108 void GetNetworkListOnFileThread( | 109 void GetNetworkListOnFileThread( |
| 109 const scoped_refptr<base::MessageLoopProxy>& loop, | 110 const scoped_refptr<base::MessageLoopProxy>& loop, |
| 110 const base::Callback<void(const NetworkInterfaceList& networks)>& cb) { | 111 const base::Callback<void(const NetworkInterfaceList& networks)>& cb) { |
| 111 NetworkInterfaceList list; | 112 NetworkInterfaceList list; |
| 112 bool success = net::GetNetworkList(&list); | 113 bool success = net::GetNetworkList(&list); |
| 113 if (!success) | 114 if (!success) |
| 114 DVLOG(1) << "Could not retrieve network list!"; | 115 DVLOG(1) << "Could not retrieve network list!"; |
| 115 | 116 |
| 116 loop->PostTask(FROM_HERE, base::Bind(cb, list)); | 117 loop->PostTask(FROM_HERE, base::Bind(cb, list)); |
| 117 } | 118 } |
| 118 | 119 |
| 119 #if defined(OS_CHROMEOS) | 120 #else |
| 121 |
| 120 IPAddressNumber GetBestBindAddressByType( | 122 IPAddressNumber GetBestBindAddressByType( |
| 121 const chromeos::NetworkTypePattern& type) { | 123 const chromeos::NetworkTypePattern& type) { |
| 122 const chromeos::NetworkState* state = chromeos::NetworkHandler::Get() | 124 const chromeos::NetworkState* state = chromeos::NetworkHandler::Get() |
| 123 ->network_state_handler()->ConnectedNetworkByType(type); | 125 ->network_state_handler()->ConnectedNetworkByType(type); |
| 124 IPAddressNumber bind_ip_address; | 126 IPAddressNumber bind_ip_address; |
| 125 if (!state || | 127 if (!state || |
| 126 !net::ParseIPLiteralToNumber(state->ip_address(), &bind_ip_address)) { | 128 !net::ParseIPLiteralToNumber(state->ip_address(), &bind_ip_address)) { |
| 127 return IPAddressNumber(); | 129 return IPAddressNumber(); |
| 128 } | 130 } |
| 129 if (bind_ip_address.size() != net::kIPv4AddressSize) { | 131 if (bind_ip_address.size() != net::kIPv4AddressSize) { |
| (...skipping 10 matching lines...) Expand all Loading... |
| 140 // ChromeOS version can prioritize wifi and ethernet interfaces. | 142 // ChromeOS version can prioritize wifi and ethernet interfaces. |
| 141 IPAddressNumber GetBestBindAddressChromeOS() { | 143 IPAddressNumber GetBestBindAddressChromeOS() { |
| 142 IPAddressNumber bind_ip_address = | 144 IPAddressNumber bind_ip_address = |
| 143 GetBestBindAddressByType(chromeos::NetworkTypePattern::Ethernet()); | 145 GetBestBindAddressByType(chromeos::NetworkTypePattern::Ethernet()); |
| 144 if (bind_ip_address.empty()) { | 146 if (bind_ip_address.empty()) { |
| 145 bind_ip_address = | 147 bind_ip_address = |
| 146 GetBestBindAddressByType(chromeos::NetworkTypePattern::WiFi()); | 148 GetBestBindAddressByType(chromeos::NetworkTypePattern::WiFi()); |
| 147 } | 149 } |
| 148 return bind_ip_address; | 150 return bind_ip_address; |
| 149 } | 151 } |
| 150 #endif | 152 #endif // !defined(OS_CHROMEOS) |
| 151 | 153 |
| 152 } // namespace | 154 } // namespace |
| 153 | 155 |
| 154 DialServiceImpl::DialServiceImpl(net::NetLog* net_log) | 156 DialServiceImpl::DialServiceImpl(net::NetLog* net_log) |
| 155 : is_writing_(false), | 157 : is_writing_(false), |
| 156 is_reading_(false), | 158 is_reading_(false), |
| 157 discovery_active_(false), | 159 discovery_active_(false), |
| 158 num_requests_sent_(0), | 160 num_requests_sent_(0), |
| 159 max_requests_(kDialMaxRequests), | 161 max_requests_(kDialMaxRequests), |
| 160 finish_delay_(TimeDelta::FromMilliseconds((kDialMaxRequests - 1) * | 162 finish_delay_(TimeDelta::FromMilliseconds((kDialMaxRequests - 1) * |
| (...skipping 329 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 490 DVLOG(0) << "dial socket error: " << error_str; | 492 DVLOG(0) << "dial socket error: " << error_str; |
| 491 // TODO(justinlin): More granular socket errors. | 493 // TODO(justinlin): More granular socket errors. |
| 492 FOR_EACH_OBSERVER( | 494 FOR_EACH_OBSERVER( |
| 493 Observer, observer_list_, OnError(this, DIAL_SERVICE_SOCKET_ERROR)); | 495 Observer, observer_list_, OnError(this, DIAL_SERVICE_SOCKET_ERROR)); |
| 494 return false; | 496 return false; |
| 495 } | 497 } |
| 496 return true; | 498 return true; |
| 497 } | 499 } |
| 498 | 500 |
| 499 } // namespace extensions | 501 } // namespace extensions |
| OLD | NEW |