shill: Handle setting of cellular's AllowRoaming property.
Disconnect the cellular device when roaming and roaming is disallowed. Broadcast
changes in the property.
BUG=chromium-os:25849
TEST=unit tests
Change-Id: I099f85152871cf8e64e96ded72b40712bd66dbd1
Reviewed-on: https://gerrit.chromium.org/gerrit/15406
Tested-by: Darin Petkov <petkov@chromium.org>
Reviewed-by: Eric Shienbrood <ers@chromium.org>
Commit-Ready: Darin Petkov <petkov@chromium.org>
diff --git a/cellular.cc b/cellular.cc
index 7cd274d..349e4c6 100644
--- a/cellular.cc
+++ b/cellular.cc
@@ -316,7 +316,12 @@
void Cellular::OnConnected() {
VLOG(2) << __func__;
SetState(kStateConnected);
- EstablishLink();
+ if (!capability_->allow_roaming() &&
+ service_->roaming_state() == flimflam::kRoamingStateRoaming) {
+ Disconnect(NULL);
+ } else {
+ EstablishLink();
+ }
}
void Cellular::OnConnectFailed() {