shill: wimax: Update WiMAX connectable property based on credential status.
BUG=chrome-os-partner:9841
TEST=unit tests
Change-Id: I4f5d518d86b2e40d7635ee631efef6a782709d1f
Reviewed-on: https://gerrit.chromium.org/gerrit/23120
Tested-by: Darin Petkov <petkov@chromium.org>
Reviewed-by: Ben Chan <benchan@chromium.org>
Commit-Ready: Darin Petkov <petkov@chromium.org>
diff --git a/wimax_service.cc b/wimax_service.cc
index bbab451..323c1b0 100644
--- a/wimax_service.cc
+++ b/wimax_service.cc
@@ -89,7 +89,7 @@
wimax_->address().c_str()));
replace_if(
storage_id_.begin(), storage_id_.end(), &Service::IllegalChar, '_');
- set_connectable(true);
+ UpdateConnectable();
return true;
}
@@ -115,6 +115,25 @@
return wimax_->GetRpcIdentifier();
}
+bool WiMaxService::Is8021x() const {
+ return true;
+}
+
+void WiMaxService::set_eap(const EapCredentials &eap) {
+ Service::set_eap(eap);
+ UpdateConnectable();
+}
+
+void WiMaxService::UpdateConnectable() {
+ // Don't use Service::Is8021xConnectable because we don't support the full set
+ // of authentication methods.
+ bool is_connectable = false;
+ if (!eap().identity.empty()) {
+ is_connectable = !eap().password.empty();
+ }
+ set_connectable(is_connectable);
+}
+
void WiMaxService::OnSignalStrengthChanged(int strength) {
SLOG(WiMax, 2) << __func__ << "(" << strength << ")";
SetStrength(strength);