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 146 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
157 return ost.str(); | 157 return ost.str(); |
158 } | 158 } |
159 | 159 |
160 NetworkManager::NetworkManager() { | 160 NetworkManager::NetworkManager() { |
161 } | 161 } |
162 | 162 |
163 NetworkManager::~NetworkManager() { | 163 NetworkManager::~NetworkManager() { |
164 } | 164 } |
165 | 165 |
166 NetworkManagerBase::NetworkManagerBase() | 166 NetworkManagerBase::NetworkManagerBase() |
167 : max_ipv6_networks_(kMaxIPv6Networks), ipv6_enabled_(true) { | 167 : network_permission_state_(NetworkManager::STATE_UNKNOWN), |
168 max_ipv6_networks_(kMaxIPv6Networks), | |
169 ipv6_enabled_(true) { | |
168 } | 170 } |
169 | 171 |
170 NetworkManagerBase::~NetworkManagerBase() { | 172 NetworkManagerBase::~NetworkManagerBase() { |
171 for (const auto& kv : networks_map_) { | 173 for (const auto& kv : networks_map_) { |
172 delete kv.second; | 174 delete kv.second; |
173 } | 175 } |
174 } | 176 } |
175 | 177 |
178 NetworkManager::NetworkPermissionState | |
179 NetworkManagerBase::network_permission_state() const { | |
180 return network_permission_state_; | |
181 } | |
182 | |
176 void NetworkManagerBase::GetAnyAddressNetworks(NetworkList* networks) { | 183 void NetworkManagerBase::GetAnyAddressNetworks(NetworkList* networks) { |
177 if (!ipv4_any_address_network_) { | 184 if (!ipv4_any_address_network_) { |
178 const rtc::IPAddress ipv4_any_address(INADDR_ANY); | 185 const rtc::IPAddress ipv4_any_address(INADDR_ANY); |
179 ipv4_any_address_network_.reset( | 186 ipv4_any_address_network_.reset( |
180 new rtc::Network("any", "any", ipv4_any_address, 0)); | 187 new rtc::Network("any", "any", ipv4_any_address, 0)); |
181 ipv4_any_address_network_->AddIP(ipv4_any_address); | 188 ipv4_any_address_network_->AddIP(ipv4_any_address); |
182 } | 189 } |
183 networks->push_back(ipv4_any_address_network_.get()); | 190 networks->push_back(ipv4_any_address_network_.get()); |
184 | 191 |
185 if (ipv6_enabled()) { | 192 if (ipv6_enabled()) { |
(...skipping 113 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
299 for (Network* network : networks_) { | 306 for (Network* network : networks_) { |
300 network->set_preference(pref); | 307 network->set_preference(pref); |
301 if (pref > 0) { | 308 if (pref > 0) { |
302 --pref; | 309 --pref; |
303 } else { | 310 } else { |
304 LOG(LS_ERROR) << "Too many network interfaces to handle!"; | 311 LOG(LS_ERROR) << "Too many network interfaces to handle!"; |
305 break; | 312 break; |
306 } | 313 } |
307 } | 314 } |
308 } | 315 } |
316 | |
317 network_permission_state_ = STATE_ALLOWED; | |
pthatcher1
2015/08/18 18:34:19
I don't understand. Why is it not allowed until a
juberti1
2015/08/20 06:31:04
I'm not sure we know if it's allowed initially.
pthatcher1
2015/08/20 06:43:36
Outside of Chrome it is. Chrome can change the st
| |
309 } | 318 } |
310 | 319 |
311 BasicNetworkManager::BasicNetworkManager() | 320 BasicNetworkManager::BasicNetworkManager() |
312 : thread_(NULL), sent_first_update_(false), start_count_(0), | 321 : thread_(NULL), sent_first_update_(false), start_count_(0), |
313 network_ignore_mask_(kDefaultNetworkIgnoreMask), | 322 network_ignore_mask_(kDefaultNetworkIgnoreMask), |
314 ignore_non_default_routes_(false) { | 323 ignore_non_default_routes_(false) { |
315 } | 324 } |
316 | 325 |
317 BasicNetworkManager::~BasicNetworkManager() { | 326 BasicNetworkManager::~BasicNetworkManager() { |
318 } | 327 } |
(...skipping 338 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
657 | 666 |
658 void BasicNetworkManager::StopUpdating() { | 667 void BasicNetworkManager::StopUpdating() { |
659 ASSERT(Thread::Current() == thread_); | 668 ASSERT(Thread::Current() == thread_); |
660 if (!start_count_) | 669 if (!start_count_) |
661 return; | 670 return; |
662 | 671 |
663 --start_count_; | 672 --start_count_; |
664 if (!start_count_) { | 673 if (!start_count_) { |
665 thread_->Clear(this); | 674 thread_->Clear(this); |
666 sent_first_update_ = false; | 675 sent_first_update_ = false; |
676 set_network_permission_state(NetworkManager::STATE_UNKNOWN); | |
pthatcher1
2015/08/18 18:34:19
Why does the permission state change when we stop
| |
667 } | 677 } |
668 } | 678 } |
669 | 679 |
670 void BasicNetworkManager::OnMessage(Message* msg) { | 680 void BasicNetworkManager::OnMessage(Message* msg) { |
671 switch (msg->message_id) { | 681 switch (msg->message_id) { |
672 case kUpdateNetworksMessage: { | 682 case kUpdateNetworksMessage: { |
673 DoUpdateNetworks(); | 683 DoUpdateNetworks(); |
674 break; | 684 break; |
675 } | 685 } |
676 case kSignalNetworksMessage: { | 686 case kSignalNetworksMessage: { |
(...skipping 123 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
800 std::stringstream ss; | 810 std::stringstream ss; |
801 // Print out the first space-terminated token of the network desc, plus | 811 // Print out the first space-terminated token of the network desc, plus |
802 // the IP address. | 812 // the IP address. |
803 ss << "Net[" << description_.substr(0, description_.find(' ')) | 813 ss << "Net[" << description_.substr(0, description_.find(' ')) |
804 << ":" << prefix_.ToSensitiveString() << "/" << prefix_length_ | 814 << ":" << prefix_.ToSensitiveString() << "/" << prefix_length_ |
805 << ":" << AdapterTypeToString(type_) << "]"; | 815 << ":" << AdapterTypeToString(type_) << "]"; |
806 return ss.str(); | 816 return ss.str(); |
807 } | 817 } |
808 | 818 |
809 } // namespace rtc | 819 } // namespace rtc |
OLD | NEW |