Index: google_apis/gcm/tools/mcs_probe.cc |
diff --git a/google_apis/gcm/tools/mcs_probe.cc b/google_apis/gcm/tools/mcs_probe.cc |
index 7dce59346cc9d5bbd036ed9a0b21a28f022e890d..2383ac7de59a76788f392819ccea56d8107fb18e 100644 |
--- a/google_apis/gcm/tools/mcs_probe.cc |
+++ b/google_apis/gcm/tools/mcs_probe.cc |
@@ -182,6 +182,7 @@ class MCSProbe { |
void BuildNetworkSession(); |
void LoadCallback(scoped_ptr<GCMStore::LoadResult> load_result); |
+ void UpdateCallback(bool success); |
void ErrorCallback(); |
void OnCheckInCompleted(uint64 android_id, uint64 secret); |
@@ -282,8 +283,19 @@ void MCSProbe::Start() { |
void MCSProbe::LoadCallback(scoped_ptr<GCMStore::LoadResult> load_result) { |
DCHECK(load_result->success); |
- android_id_ = load_result->device_android_id; |
- secret_ = load_result->device_security_token; |
+ if (android_id_ != 0 && secret_ != 0) { |
+ DVLOG(1) << "Presetting MCS id " << android_id_; |
+ load_result->device_android_id = android_id_; |
+ load_result->device_security_token = secret_; |
+ gcm_store_->SetDeviceCredentials(android_id_, |
jianli
2014/01/25 01:00:28
Should we persist the check-in info when the check
Nicolas Zea
2014/01/25 01:04:14
Good point, done.
|
+ secret_, |
+ base::Bind(&MCSProbe::UpdateCallback, |
+ base::Unretained(this))); |
+ } else { |
+ android_id_ = load_result->device_android_id; |
+ secret_ = load_result->device_security_token; |
+ DVLOG(1) << "Loaded MCS id " << android_id_; |
+ } |
mcs_client_->Initialize( |
base::Bind(&MCSProbe::ErrorCallback, base::Unretained(this)), |
base::Bind(&MessageReceivedCallback), |
@@ -291,6 +303,7 @@ void MCSProbe::LoadCallback(scoped_ptr<GCMStore::LoadResult> load_result) { |
load_result.Pass()); |
if (!android_id_ || !secret_) { |
+ DVLOG(1) << "Checkin to generate new MCS credentials."; |
CheckIn(); |
return; |
} |
@@ -298,6 +311,9 @@ void MCSProbe::LoadCallback(scoped_ptr<GCMStore::LoadResult> load_result) { |
mcs_client_->Login(android_id_, secret_); |
} |
+void MCSProbe::UpdateCallback(bool success) { |
+} |
+ |
void MCSProbe::InitializeNetworkState() { |
FILE* log_file = NULL; |
if (command_line_.HasSwitch(kLogFileSwitch)) { |