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

Side by Side Diff: webrtc/api/java/jni/androidnetworkmonitor_jni.cc

Issue 1976683003: Update the type and cost of existing networks if its type is found later by network monitor (Closed) Base URL: https://chromium.googlesource.com/external/webrtc@master
Patch Set: Minor changes Created 4 years, 7 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 | « no previous file | webrtc/api/webrtcsdp.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 /* 1 /*
2 * Copyright 2015 The WebRTC project authors. All Rights Reserved. 2 * Copyright 2015 The WebRTC project authors. All Rights Reserved.
3 * 3 *
4 * Use of this source code is governed by a BSD-style license 4 * Use of this source code is governed by a BSD-style license
5 * that can be found in the LICENSE file in the root of the source 5 * that can be found in the LICENSE file in the root of the source
6 * tree. An additional intellectual property rights grant can be found 6 * tree. An additional intellectual property rights grant can be found
7 * in the file PATENTS. All contributing project authors may 7 * in the file PATENTS. All contributing project authors may
8 * be found in the AUTHORS file in the root of the source tree. 8 * be found in the AUTHORS file in the root of the source tree.
9 */ 9 */
10 10
(...skipping 250 matching lines...) Expand 10 before | Expand all | Expand 10 after
261 return rtc::NETWORK_BIND_SUCCESS; 261 return rtc::NETWORK_BIND_SUCCESS;
262 } 262 }
263 if (rv == ENONET) { 263 if (rv == ENONET) {
264 return rtc::NETWORK_BIND_NETWORK_CHANGED; 264 return rtc::NETWORK_BIND_NETWORK_CHANGED;
265 } 265 }
266 return rtc::NETWORK_BIND_FAILURE; 266 return rtc::NETWORK_BIND_FAILURE;
267 } 267 }
268 268
269 void AndroidNetworkMonitor::OnNetworkConnected( 269 void AndroidNetworkMonitor::OnNetworkConnected(
270 const NetworkInformation& network_info) { 270 const NetworkInformation& network_info) {
271 LOG(LS_INFO) << "Network connected: " << network_info.ToString();
272 worker_thread()->Invoke<void>(rtc::Bind( 271 worker_thread()->Invoke<void>(rtc::Bind(
273 &AndroidNetworkMonitor::OnNetworkConnected_w, this, network_info)); 272 &AndroidNetworkMonitor::OnNetworkConnected_w, this, network_info));
273 // Fire SignalNetworksChanged to update the list of networks.
274 OnNetworksChanged();
274 } 275 }
275 276
276 void AndroidNetworkMonitor::OnNetworkConnected_w( 277 void AndroidNetworkMonitor::OnNetworkConnected_w(
277 const NetworkInformation& network_info) { 278 const NetworkInformation& network_info) {
279 LOG(LS_INFO) << "Network connected: " << network_info.ToString();
278 adapter_type_by_name_[network_info.interface_name] = 280 adapter_type_by_name_[network_info.interface_name] =
279 AdapterTypeFromNetworkType(network_info.type); 281 AdapterTypeFromNetworkType(network_info.type);
280 network_info_by_handle_[network_info.handle] = network_info; 282 network_info_by_handle_[network_info.handle] = network_info;
281 for (const rtc::IPAddress& address : network_info.ip_addresses) { 283 for (const rtc::IPAddress& address : network_info.ip_addresses) {
282 network_handle_by_address_[address] = network_info.handle; 284 network_handle_by_address_[address] = network_info.handle;
283 } 285 }
284 } 286 }
285 287
286 void AndroidNetworkMonitor::OnNetworkDisconnected(NetworkHandle handle) { 288 void AndroidNetworkMonitor::OnNetworkDisconnected(NetworkHandle handle) {
287 LOG(LS_INFO) << "Network disconnected for handle " << handle; 289 LOG(LS_INFO) << "Network disconnected for handle " << handle;
288 worker_thread()->Invoke<void>( 290 worker_thread()->Invoke<void>(
289 rtc::Bind(&AndroidNetworkMonitor::OnNetworkDisconnected_w, this, handle)); 291 rtc::Bind(&AndroidNetworkMonitor::OnNetworkDisconnected_w, this, handle));
290 } 292 }
291 293
292 void AndroidNetworkMonitor::OnNetworkDisconnected_w(NetworkHandle handle) { 294 void AndroidNetworkMonitor::OnNetworkDisconnected_w(NetworkHandle handle) {
293 auto iter = network_info_by_handle_.find(handle); 295 auto iter = network_info_by_handle_.find(handle);
294 if (iter != network_info_by_handle_.end()) { 296 if (iter != network_info_by_handle_.end()) {
295 for (const rtc::IPAddress& address : iter->second.ip_addresses) { 297 for (const rtc::IPAddress& address : iter->second.ip_addresses) {
296 network_handle_by_address_.erase(address); 298 network_handle_by_address_.erase(address);
297 } 299 }
298 network_info_by_handle_.erase(iter); 300 network_info_by_handle_.erase(iter);
299 } 301 }
300 } 302 }
301 303
302 void AndroidNetworkMonitor::SetNetworkInfos( 304 void AndroidNetworkMonitor::SetNetworkInfos(
303 const std::vector<NetworkInformation>& network_infos) { 305 const std::vector<NetworkInformation>& network_infos) {
304 RTC_CHECK(thread_checker_.CalledOnValidThread()); 306 RTC_CHECK(thread_checker_.CalledOnValidThread());
305 network_handle_by_address_.clear(); 307 network_handle_by_address_.clear();
306 network_info_by_handle_.clear(); 308 network_info_by_handle_.clear();
309 LOG(LS_INFO) << "Android network monitor found " << network_infos.size()
310 << " networks";
307 for (NetworkInformation network : network_infos) { 311 for (NetworkInformation network : network_infos) {
308 OnNetworkConnected_w(network); 312 OnNetworkConnected_w(network);
309 } 313 }
310 } 314 }
311 315
312 rtc::AdapterType AndroidNetworkMonitor::GetAdapterType( 316 rtc::AdapterType AndroidNetworkMonitor::GetAdapterType(
313 const std::string& if_name) { 317 const std::string& if_name) {
314 auto iter = adapter_type_by_name_.find(if_name); 318 auto iter = adapter_type_by_name_.find(if_name);
315 if (iter == adapter_type_by_name_.end()) { 319 rtc::AdapterType type = (iter == adapter_type_by_name_.end())
316 LOG(LS_WARNING) << "Get adapter type for an unknown interface: " << if_name; 320 ? rtc::ADAPTER_TYPE_UNKNOWN
317 return rtc::ADAPTER_TYPE_UNKNOWN; 321 : iter->second;
322 if (type == rtc::ADAPTER_TYPE_UNKNOWN) {
323 LOG(LS_WARNING) << "Get an unknown type for the interface " << if_name;
318 } 324 }
319 return iter->second; 325 return type;
320 } 326 }
321 327
322 rtc::NetworkMonitorInterface* 328 rtc::NetworkMonitorInterface*
323 AndroidNetworkMonitorFactory::CreateNetworkMonitor() { 329 AndroidNetworkMonitorFactory::CreateNetworkMonitor() {
324 return new AndroidNetworkMonitor(); 330 return new AndroidNetworkMonitor();
325 } 331 }
326 332
327 JOW(void, NetworkMonitor_nativeNotifyConnectionTypeChanged)( 333 JOW(void, NetworkMonitor_nativeNotifyConnectionTypeChanged)(
328 JNIEnv* jni, jobject j_monitor, jlong j_native_monitor) { 334 JNIEnv* jni, jobject j_monitor, jlong j_native_monitor) {
329 rtc::NetworkMonitorInterface* network_monitor = 335 rtc::NetworkMonitorInterface* network_monitor =
(...skipping 29 matching lines...) Expand all
359 JOW(void, NetworkMonitor_nativeNotifyOfNetworkDisconnect)( 365 JOW(void, NetworkMonitor_nativeNotifyOfNetworkDisconnect)(
360 JNIEnv* jni, jobject j_monitor, jlong j_native_monitor, 366 JNIEnv* jni, jobject j_monitor, jlong j_native_monitor,
361 jint network_handle) { 367 jint network_handle) {
362 AndroidNetworkMonitor* network_monitor = 368 AndroidNetworkMonitor* network_monitor =
363 reinterpret_cast<AndroidNetworkMonitor*>(j_native_monitor); 369 reinterpret_cast<AndroidNetworkMonitor*>(j_native_monitor);
364 network_monitor->OnNetworkDisconnected( 370 network_monitor->OnNetworkDisconnected(
365 static_cast<NetworkHandle>(network_handle)); 371 static_cast<NetworkHandle>(network_handle));
366 } 372 }
367 373
368 } // namespace webrtc_jni 374 } // namespace webrtc_jni
OLDNEW
« no previous file with comments | « no previous file | webrtc/api/webrtcsdp.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698