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 "chromeos/network/network_state_handler.h" | 5 #include "chromeos/network/network_state_handler.h" |
6 | 6 |
7 #include <stddef.h> | 7 #include <stddef.h> |
8 | 8 |
9 #include "base/bind.h" | 9 #include "base/bind.h" |
10 #include "base/command_line.h" | 10 #include "base/command_line.h" |
(...skipping 482 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
493 const NetworkState* NetworkStateHandler::GetNetworkStateFromGuid( | 493 const NetworkState* NetworkStateHandler::GetNetworkStateFromGuid( |
494 const std::string& guid) const { | 494 const std::string& guid) const { |
495 DCHECK(!guid.empty()); | 495 DCHECK(!guid.empty()); |
496 return GetModifiableNetworkStateFromGuid(guid); | 496 return GetModifiableNetworkStateFromGuid(guid); |
497 } | 497 } |
498 | 498 |
499 void NetworkStateHandler::AddTetherNetworkState(const std::string& guid, | 499 void NetworkStateHandler::AddTetherNetworkState(const std::string& guid, |
500 const std::string& name, | 500 const std::string& name, |
501 const std::string& carrier, | 501 const std::string& carrier, |
502 int battery_percentage, | 502 int battery_percentage, |
503 int signal_strength) { | 503 int signal_strength, |
504 bool has_connected_to_host) { | |
504 DCHECK(!guid.empty()); | 505 DCHECK(!guid.empty()); |
505 DCHECK(battery_percentage >= 0 && battery_percentage <= 100); | 506 DCHECK(battery_percentage >= 0 && battery_percentage <= 100); |
506 DCHECK(signal_strength >= 0 && signal_strength <= 100); | 507 DCHECK(signal_strength >= 0 && signal_strength <= 100); |
507 | 508 |
508 if (tether_technology_state_ != TECHNOLOGY_ENABLED) { | 509 if (tether_technology_state_ != TECHNOLOGY_ENABLED) { |
509 NET_LOG(ERROR) << "AddTetherNetworkState() called when Tether networks " | 510 NET_LOG(ERROR) << "AddTetherNetworkState() called when Tether networks " |
510 << "are not enabled. Cannot add NetworkState."; | 511 << "are not enabled. Cannot add NetworkState."; |
511 return; | 512 return; |
512 } | 513 } |
513 | 514 |
(...skipping 10 matching lines...) Expand all Loading... | |
524 | 525 |
525 tether_network_state->set_name(name); | 526 tether_network_state->set_name(name); |
526 tether_network_state->set_type(kTypeTether); | 527 tether_network_state->set_type(kTypeTether); |
527 tether_network_state->SetGuid(guid); | 528 tether_network_state->SetGuid(guid); |
528 tether_network_state->set_visible(true); | 529 tether_network_state->set_visible(true); |
529 tether_network_state->set_update_received(); | 530 tether_network_state->set_update_received(); |
530 tether_network_state->set_update_requested(false); | 531 tether_network_state->set_update_requested(false); |
531 tether_network_state->set_connectable(true); | 532 tether_network_state->set_connectable(true); |
532 tether_network_state->set_carrier(carrier); | 533 tether_network_state->set_carrier(carrier); |
533 tether_network_state->set_battery_percentage(battery_percentage); | 534 tether_network_state->set_battery_percentage(battery_percentage); |
534 // TODO(khorimoto): Add this field as a parameter to this function and set it | 535 tether_network_state->set_tether_has_connected_to_host(has_connected_to_host); |
535 // accordingly from the Tether component. | |
536 tether_network_state->set_tether_has_connected_to_host(false); | |
537 tether_network_state->set_signal_strength(signal_strength); | 536 tether_network_state->set_signal_strength(signal_strength); |
538 | 537 |
539 tether_network_list_.push_back(std::move(tether_network_state)); | 538 tether_network_list_.push_back(std::move(tether_network_state)); |
540 NotifyNetworkListChanged(); | 539 NotifyNetworkListChanged(); |
541 } | 540 } |
542 | 541 |
543 bool NetworkStateHandler::UpdateTetherNetworkProperties( | 542 bool NetworkStateHandler::UpdateTetherNetworkProperties( |
544 const std::string& guid, | 543 const std::string& guid, |
545 const std::string& carrier, | 544 const std::string& carrier, |
546 int battery_percentage, | 545 int battery_percentage, |
547 int signal_strength) { | 546 int signal_strength) { |
548 if (tether_technology_state_ != TECHNOLOGY_ENABLED) { | 547 if (tether_technology_state_ != TECHNOLOGY_ENABLED) { |
549 NET_LOG(ERROR) << "UpdateTetherNetworkProperties() called when Tether " | 548 NET_LOG(ERROR) << "UpdateTetherNetworkProperties() called when Tether " |
550 << "networks are not enabled. Cannot update."; | 549 << "networks are not enabled. Cannot update."; |
551 return false; | 550 return false; |
552 } | 551 } |
553 | 552 |
554 NetworkState* tether_network_state = GetModifiableNetworkStateFromGuid(guid); | 553 NetworkState* tether_network_state = GetModifiableNetworkStateFromGuid(guid); |
555 if (!tether_network_state) | 554 if (!tether_network_state) { |
555 NET_LOG(ERROR) << "UpdateTetherNetworkProperties() called for Tether " | |
556 << "network with GUID " << guid << ", but this network is " | |
557 << "not currently registered. Cannot update."; | |
stevenjb
2017/05/01 16:11:31
nit: Very long messages like this in the log are a
Kyle Horimoto
2017/05/01 16:56:27
Done.
| |
556 return false; | 558 return false; |
559 } | |
557 | 560 |
558 tether_network_state->set_carrier(carrier); | 561 tether_network_state->set_carrier(carrier); |
559 tether_network_state->set_battery_percentage(battery_percentage); | 562 tether_network_state->set_battery_percentage(battery_percentage); |
560 tether_network_state->set_signal_strength(signal_strength); | 563 tether_network_state->set_signal_strength(signal_strength); |
561 | 564 |
562 NotifyNetworkListChanged(); | 565 NotifyNetworkListChanged(); |
563 return true; | 566 return true; |
564 } | 567 } |
565 | 568 |
566 void NetworkStateHandler::RemoveTetherNetworkState(const std::string& guid) { | 569 bool NetworkStateHandler::SetTetherNetworkHasConnectedToHost( |
570 const std::string& guid) { | |
571 NetworkState* tether_network_state = GetModifiableNetworkStateFromGuid(guid); | |
572 if (!tether_network_state) { | |
573 NET_LOG(ERROR) << "SetTetherNetworkHasConnectedToHost() called for Tether " | |
574 << "network which is not registered. GUID: " << guid; | |
stevenjb
2017/05/01 16:11:31
ditto
Kyle Horimoto
2017/05/01 16:56:27
Done.
| |
575 return false; | |
576 } | |
577 | |
578 bool old_tether_has_connected_to_host_value = | |
579 tether_network_state->tether_has_connected_to_host(); | |
580 if (old_tether_has_connected_to_host_value) { | |
581 return false; | |
582 } | |
stevenjb
2017/05/01 16:11:31
if (tether_network_state->tether_has_connected_to_
Kyle Horimoto
2017/05/01 16:56:27
Done.
| |
583 | |
584 tether_network_state->set_tether_has_connected_to_host(true); | |
585 NotifyNetworkListChanged(); | |
586 return true; | |
587 } | |
588 | |
589 bool NetworkStateHandler::RemoveTetherNetworkState(const std::string& guid) { | |
567 for (auto iter = tether_network_list_.begin(); | 590 for (auto iter = tether_network_list_.begin(); |
568 iter != tether_network_list_.end(); ++iter) { | 591 iter != tether_network_list_.end(); ++iter) { |
569 if (iter->get()->AsNetworkState()->guid() == guid) { | 592 if (iter->get()->AsNetworkState()->guid() == guid) { |
570 NetworkState* wifi_network = GetModifiableNetworkStateFromGuid( | 593 NetworkState* wifi_network = GetModifiableNetworkStateFromGuid( |
571 iter->get()->AsNetworkState()->tether_guid()); | 594 iter->get()->AsNetworkState()->tether_guid()); |
572 if (wifi_network) | 595 if (wifi_network) |
573 wifi_network->set_tether_guid(std::string()); | 596 wifi_network->set_tether_guid(std::string()); |
574 | 597 |
575 tether_network_list_.erase(iter); | 598 tether_network_list_.erase(iter); |
576 NotifyNetworkListChanged(); | 599 NotifyNetworkListChanged(); |
577 return; | 600 return true; |
578 } | 601 } |
579 } | 602 } |
603 | |
604 return false; | |
580 } | 605 } |
581 | 606 |
582 bool NetworkStateHandler::AssociateTetherNetworkStateWithWifiNetwork( | 607 bool NetworkStateHandler::AssociateTetherNetworkStateWithWifiNetwork( |
583 const std::string& tether_network_guid, | 608 const std::string& tether_network_guid, |
584 const std::string& wifi_network_guid) { | 609 const std::string& wifi_network_guid) { |
585 if (tether_technology_state_ != TECHNOLOGY_ENABLED) { | 610 if (tether_technology_state_ != TECHNOLOGY_ENABLED) { |
586 NET_LOG(ERROR) << "AssociateTetherNetworkStateWithWifiNetwork() called " | 611 NET_LOG(ERROR) << "AssociateTetherNetworkStateWithWifiNetwork() called " |
587 << "when Tether networks are not enabled. Cannot " | 612 << "when Tether networks are not enabled. Cannot " |
588 << "associate."; | 613 << "associate."; |
589 return false; | 614 return false; |
(...skipping 831 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
1421 if (type.MatchesType(shill::kTypeVPN)) | 1446 if (type.MatchesType(shill::kTypeVPN)) |
1422 technologies.emplace_back(shill::kTypeVPN); | 1447 technologies.emplace_back(shill::kTypeVPN); |
1423 if (type.MatchesType(kTypeTether)) | 1448 if (type.MatchesType(kTypeTether)) |
1424 technologies.emplace_back(kTypeTether); | 1449 technologies.emplace_back(kTypeTether); |
1425 | 1450 |
1426 CHECK_GT(technologies.size(), 0ul); | 1451 CHECK_GT(technologies.size(), 0ul); |
1427 return technologies; | 1452 return technologies; |
1428 } | 1453 } |
1429 | 1454 |
1430 } // namespace chromeos | 1455 } // namespace chromeos |
OLD | NEW |