OLD | NEW |
---|---|
1 /* | 1 /* |
2 * Copyright 2004 The WebRTC Project Authors. All rights reserved. | 2 * Copyright 2004 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 353 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
364 } | 364 } |
365 return false; | 365 return false; |
366 } | 366 } |
367 | 367 |
368 BasicNetworkManager::BasicNetworkManager() | 368 BasicNetworkManager::BasicNetworkManager() |
369 : thread_(NULL), sent_first_update_(false), start_count_(0), | 369 : thread_(NULL), sent_first_update_(false), start_count_(0), |
370 ignore_non_default_routes_(false) { | 370 ignore_non_default_routes_(false) { |
371 } | 371 } |
372 | 372 |
373 BasicNetworkManager::~BasicNetworkManager() { | 373 BasicNetworkManager::~BasicNetworkManager() { |
374 if (thread_ && network_monitor_ && | |
375 thread_->socketserver()->network_binder() == network_monitor_.get()) { | |
376 // In case that network binder is still being used by the socket server | |
377 // after it is released here. | |
378 thread_->socketserver()->set_network_binder(nullptr); | |
379 } | |
374 } | 380 } |
375 | 381 |
376 void BasicNetworkManager::OnNetworksChanged() { | 382 void BasicNetworkManager::OnNetworksChanged() { |
377 LOG(LS_VERBOSE) << "Network change was observed at the network manager"; | 383 LOG(LS_VERBOSE) << "Network change was observed at the network manager"; |
378 UpdateNetworksOnce(); | 384 UpdateNetworksOnce(); |
379 } | 385 } |
380 | 386 |
381 #if defined(__native_client__) | 387 #if defined(__native_client__) |
382 | 388 |
383 bool BasicNetworkManager::CreateNetworks(bool include_ignored, | 389 bool BasicNetworkManager::CreateNetworks(bool include_ignored, |
(...skipping 340 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
724 sent_first_update_ = false; | 730 sent_first_update_ = false; |
725 StopNetworkMonitor(); | 731 StopNetworkMonitor(); |
726 } | 732 } |
727 } | 733 } |
728 | 734 |
729 void BasicNetworkManager::StartNetworkMonitor() { | 735 void BasicNetworkManager::StartNetworkMonitor() { |
730 NetworkMonitorFactory* factory = NetworkMonitorFactory::GetFactory(); | 736 NetworkMonitorFactory* factory = NetworkMonitorFactory::GetFactory(); |
731 if (factory == nullptr) { | 737 if (factory == nullptr) { |
732 return; | 738 return; |
733 } | 739 } |
734 network_monitor_.reset(factory->CreateNetworkMonitor()); | |
735 if (!network_monitor_) { | 740 if (!network_monitor_) { |
736 return; | 741 network_monitor_.reset(factory->CreateNetworkMonitor()); |
742 ASSERT(network_monitor_); | |
743 ASSERT(thread_ && thread_->socketserver()); | |
744 thread_->socketserver()->set_network_binder(network_monitor_.get()); | |
pthatcher1
2016/01/15 19:56:11
While much less complex than before (which is good
| |
737 } | 745 } |
746 | |
738 network_monitor_->SignalNetworksChanged.connect( | 747 network_monitor_->SignalNetworksChanged.connect( |
739 this, &BasicNetworkManager::OnNetworksChanged); | 748 this, &BasicNetworkManager::OnNetworksChanged); |
740 network_monitor_->Start(); | 749 network_monitor_->Start(); |
741 } | 750 } |
742 | 751 |
743 void BasicNetworkManager::StopNetworkMonitor() { | 752 void BasicNetworkManager::StopNetworkMonitor() { |
744 if (!network_monitor_) { | 753 if (!network_monitor_) { |
745 return; | 754 return; |
746 } | 755 } |
747 network_monitor_->Stop(); | 756 network_monitor_->Stop(); |
748 network_monitor_.reset(); | |
749 } | 757 } |
750 | 758 |
751 void BasicNetworkManager::OnMessage(Message* msg) { | 759 void BasicNetworkManager::OnMessage(Message* msg) { |
752 switch (msg->message_id) { | 760 switch (msg->message_id) { |
753 case kUpdateNetworksMessage: { | 761 case kUpdateNetworksMessage: { |
754 UpdateNetworksContinually(); | 762 UpdateNetworksContinually(); |
755 break; | 763 break; |
756 } | 764 } |
757 case kSignalNetworksMessage: { | 765 case kSignalNetworksMessage: { |
758 SignalNetworksChanged(); | 766 SignalNetworksChanged(); |
(...skipping 153 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
912 std::stringstream ss; | 920 std::stringstream ss; |
913 // Print out the first space-terminated token of the network desc, plus | 921 // Print out the first space-terminated token of the network desc, plus |
914 // the IP address. | 922 // the IP address. |
915 ss << "Net[" << description_.substr(0, description_.find(' ')) | 923 ss << "Net[" << description_.substr(0, description_.find(' ')) |
916 << ":" << prefix_.ToSensitiveString() << "/" << prefix_length_ | 924 << ":" << prefix_.ToSensitiveString() << "/" << prefix_length_ |
917 << ":" << AdapterTypeToString(type_) << "]"; | 925 << ":" << AdapterTypeToString(type_) << "]"; |
918 return ss.str(); | 926 return ss.str(); |
919 } | 927 } |
920 | 928 |
921 } // namespace rtc | 929 } // namespace rtc |
OLD | NEW |