shill: cellular: Create a pseudo service for activation.
BUG=chromium-os:16134
TEST=Tested the following:
1. Build and run unit tests.
2. Verify existing GSM and CDMA cellular services work as expected.
3. Verify a cellular service that requires activation is created without
registering to a network.
Change-Id: Ic02ac53641483d60c0517691b9b1f42dc4744d6e
Reviewed-on: https://gerrit.chromium.org/gerrit/38096
Reviewed-by: Darin Petkov <petkov@chromium.org>
Commit-Ready: Ben Chan <benchan@chromium.org>
Tested-by: Ben Chan <benchan@chromium.org>
diff --git a/cellular.cc b/cellular.cc
index dd387dd..ace05cd 100644
--- a/cellular.cc
+++ b/cellular.cc
@@ -343,6 +343,12 @@
void Cellular::HandleNewRegistrationState() {
SLOG(Cellular, 2) << __func__ << ": " << GetStateString(state_);
+ if (capability_->IsServiceActivationRequired()) {
+ if (state_ == kStateEnabled && !service_.get()) {
+ CreateService();
+ }
+ return;
+ }
if (!capability_->IsRegistered()) {
DestroyService();
if (state_ == kStateLinked ||
@@ -440,7 +446,7 @@
void Cellular::OnConnected() {
SLOG(Cellular, 2) << __func__;
if (state_ == kStateConnected || state_ == kStateLinked) {
- VLOG(2) << "Already connected";
+ SLOG(Cellular, 2) << "Already connected";
return;
}
Closure start_cb = Bind(&Cellular::StartTermination,