Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(44)

Side by Side Diff: google_apis/gcm/tools/mcs_probe.cc

Issue 144383005: [GCM] Fix mcs_probe credential handling (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Persist checkin credentials Created 6 years, 11 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « google_apis/gcm/engine/mcs_client.cc ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2013 The Chromium Authors. All rights reserved. 1 // Copyright 2013 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 // A standalone tool for testing MCS connections and the MCS client on their 5 // A standalone tool for testing MCS connections and the MCS client on their
6 // own. 6 // own.
7 7
8 #include <cstddef> 8 #include <cstddef>
9 #include <cstdio> 9 #include <cstdio>
10 #include <string> 10 #include <string>
(...skipping 164 matching lines...) Expand 10 before | Expand all | Expand 10 after
175 175
176 uint64 android_id() const { return android_id_; } 176 uint64 android_id() const { return android_id_; }
177 uint64 secret() const { return secret_; } 177 uint64 secret() const { return secret_; }
178 178
179 private: 179 private:
180 void CheckIn(); 180 void CheckIn();
181 void InitializeNetworkState(); 181 void InitializeNetworkState();
182 void BuildNetworkSession(); 182 void BuildNetworkSession();
183 183
184 void LoadCallback(scoped_ptr<GCMStore::LoadResult> load_result); 184 void LoadCallback(scoped_ptr<GCMStore::LoadResult> load_result);
185 void UpdateCallback(bool success);
185 void ErrorCallback(); 186 void ErrorCallback();
186 void OnCheckInCompleted(uint64 android_id, uint64 secret); 187 void OnCheckInCompleted(uint64 android_id, uint64 secret);
187 188
188 base::DefaultClock clock_; 189 base::DefaultClock clock_;
189 190
190 CommandLine command_line_; 191 CommandLine command_line_;
191 192
192 base::FilePath gcm_store_path_; 193 base::FilePath gcm_store_path_;
193 uint64 android_id_; 194 uint64 android_id_;
194 uint64 secret_; 195 uint64 secret_;
(...skipping 80 matching lines...) Expand 10 before | Expand all | Expand 10 after
275 connection_factory_.get(), 276 connection_factory_.get(),
276 gcm_store_.get())); 277 gcm_store_.get()));
277 run_loop_.reset(new base::RunLoop()); 278 run_loop_.reset(new base::RunLoop());
278 gcm_store_->Load(base::Bind(&MCSProbe::LoadCallback, 279 gcm_store_->Load(base::Bind(&MCSProbe::LoadCallback,
279 base::Unretained(this))); 280 base::Unretained(this)));
280 run_loop_->Run(); 281 run_loop_->Run();
281 } 282 }
282 283
283 void MCSProbe::LoadCallback(scoped_ptr<GCMStore::LoadResult> load_result) { 284 void MCSProbe::LoadCallback(scoped_ptr<GCMStore::LoadResult> load_result) {
284 DCHECK(load_result->success); 285 DCHECK(load_result->success);
285 android_id_ = load_result->device_android_id; 286 if (android_id_ != 0 && secret_ != 0) {
286 secret_ = load_result->device_security_token; 287 DVLOG(1) << "Presetting MCS id " << android_id_;
288 load_result->device_android_id = android_id_;
289 load_result->device_security_token = secret_;
290 gcm_store_->SetDeviceCredentials(android_id_,
291 secret_,
292 base::Bind(&MCSProbe::UpdateCallback,
293 base::Unretained(this)));
294 } else {
295 android_id_ = load_result->device_android_id;
296 secret_ = load_result->device_security_token;
297 DVLOG(1) << "Loaded MCS id " << android_id_;
298 }
287 mcs_client_->Initialize( 299 mcs_client_->Initialize(
288 base::Bind(&MCSProbe::ErrorCallback, base::Unretained(this)), 300 base::Bind(&MCSProbe::ErrorCallback, base::Unretained(this)),
289 base::Bind(&MessageReceivedCallback), 301 base::Bind(&MessageReceivedCallback),
290 base::Bind(&MessageSentCallback), 302 base::Bind(&MessageSentCallback),
291 load_result.Pass()); 303 load_result.Pass());
292 304
293 if (!android_id_ || !secret_) { 305 if (!android_id_ || !secret_) {
306 DVLOG(1) << "Checkin to generate new MCS credentials.";
294 CheckIn(); 307 CheckIn();
295 return; 308 return;
296 } 309 }
297 310
298 mcs_client_->Login(android_id_, secret_); 311 mcs_client_->Login(android_id_, secret_);
299 } 312 }
300 313
314 void MCSProbe::UpdateCallback(bool success) {
315 }
316
301 void MCSProbe::InitializeNetworkState() { 317 void MCSProbe::InitializeNetworkState() {
302 FILE* log_file = NULL; 318 FILE* log_file = NULL;
303 if (command_line_.HasSwitch(kLogFileSwitch)) { 319 if (command_line_.HasSwitch(kLogFileSwitch)) {
304 base::FilePath log_path = command_line_.GetSwitchValuePath(kLogFileSwitch); 320 base::FilePath log_path = command_line_.GetSwitchValuePath(kLogFileSwitch);
305 #if defined(OS_WIN) 321 #if defined(OS_WIN)
306 log_file = _wfopen(log_path.value().c_str(), L"w"); 322 log_file = _wfopen(log_path.value().c_str(), L"w");
307 #elif defined(OS_POSIX) 323 #elif defined(OS_POSIX)
308 log_file = fopen(log_path.value().c_str(), "w"); 324 log_file = fopen(log_path.value().c_str(), "w");
309 #endif 325 #endif
310 } 326 }
(...skipping 76 matching lines...) Expand 10 before | Expand all | Expand 10 after
387 } 403 }
388 404
389 void MCSProbe::OnCheckInCompleted(uint64 android_id, uint64 secret) { 405 void MCSProbe::OnCheckInCompleted(uint64 android_id, uint64 secret) {
390 LOG(INFO) << "Check-in request completion " 406 LOG(INFO) << "Check-in request completion "
391 << (android_id ? "success!" : "failure!"); 407 << (android_id ? "success!" : "failure!");
392 if (!android_id || !secret) 408 if (!android_id || !secret)
393 return; 409 return;
394 android_id_ = android_id; 410 android_id_ = android_id;
395 secret_ = secret; 411 secret_ = secret;
396 412
413 gcm_store_->SetDeviceCredentials(android_id_,
414 secret_,
415 base::Bind(&MCSProbe::UpdateCallback,
416 base::Unretained(this)));
417
397 LOG(INFO) << "MCS login initiated."; 418 LOG(INFO) << "MCS login initiated.";
398 mcs_client_->Login(android_id_, secret_); 419 mcs_client_->Login(android_id_, secret_);
399 } 420 }
400 421
401 int MCSProbeMain(int argc, char* argv[]) { 422 int MCSProbeMain(int argc, char* argv[]) {
402 base::AtExitManager exit_manager; 423 base::AtExitManager exit_manager;
403 424
404 CommandLine::Init(argc, argv); 425 CommandLine::Init(argc, argv);
405 logging::LoggingSettings settings; 426 logging::LoggingSettings settings;
406 settings.logging_dest = logging::LOG_TO_SYSTEM_DEBUG_LOG; 427 settings.logging_dest = logging::LOG_TO_SYSTEM_DEBUG_LOG;
(...skipping 16 matching lines...) Expand all
423 444
424 return 0; 445 return 0;
425 } 446 }
426 447
427 } // namespace 448 } // namespace
428 } // namespace gcm 449 } // namespace gcm
429 450
430 int main(int argc, char* argv[]) { 451 int main(int argc, char* argv[]) {
431 return gcm::MCSProbeMain(argc, argv); 452 return gcm::MCSProbeMain(argc, argv);
432 } 453 }
OLDNEW
« no previous file with comments | « google_apis/gcm/engine/mcs_client.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698