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

Side by Side Diff: remoting/protocol/jingle_session.cc

Issue 12326090: Third Party authentication protocol. (Closed) Base URL: http://git.chromium.org/chromium/src.git@host_key_pair
Patch Set: Add the missing new files Created 7 years, 10 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
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 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 #include "remoting/protocol/jingle_session.h" 5 #include "remoting/protocol/jingle_session.h"
6 6
7 #include "base/bind.h" 7 #include "base/bind.h"
8 #include "base/rand_util.h" 8 #include "base/rand_util.h"
9 #include "base/stl_util.h" 9 #include "base/stl_util.h"
10 #include "base/string_number_conversions.h" 10 #include "base/string_number_conversions.h"
(...skipping 532 matching lines...) Expand 10 before | Expand all | Expand 10 after
543 } 543 }
544 if (!candidate_config()->IsSupported(config_)) { 544 if (!candidate_config()->IsSupported(config_)) {
545 LOG(ERROR) << "session-accept specifies an invalid configuration"; 545 LOG(ERROR) << "session-accept specifies an invalid configuration";
546 return false; 546 return false;
547 } 547 }
548 548
549 return true; 549 return true;
550 } 550 }
551 551
552 void JingleSession::ProcessAuthenticationStep() { 552 void JingleSession::ProcessAuthenticationStep() {
553 DCHECK(CalledOnValidThread());
553 DCHECK_EQ(state_, CONNECTED); 554 DCHECK_EQ(state_, CONNECTED);
554 555
555 if (authenticator_->state() == Authenticator::MESSAGE_READY) { 556 if (authenticator_->state() == Authenticator::MESSAGE_READY) {
556 JingleMessage message(peer_jid_, JingleMessage::SESSION_INFO, session_id_); 557 JingleMessage message(peer_jid_, JingleMessage::SESSION_INFO, session_id_);
557 message.info = authenticator_->GetNextMessage(); 558 message.info = authenticator_->GetNextMessage();
558 DCHECK(message.info.get()); 559 DCHECK(message.info.get());
559 SendMessage(message); 560 SendMessage(message);
560 } 561 }
561 DCHECK_NE(authenticator_->state(), Authenticator::MESSAGE_READY); 562 DCHECK_NE(authenticator_->state(), Authenticator::MESSAGE_READY);
562 563
563 if (authenticator_->state() == Authenticator::ACCEPTED) { 564 if (authenticator_->state() == Authenticator::ACCEPTED) {
564 SetState(AUTHENTICATED); 565 SetState(AUTHENTICATED);
565 } else if (authenticator_->state() == Authenticator::REJECTED) { 566 } else if (authenticator_->state() == Authenticator::REJECTED) {
566 CloseInternal(AuthRejectionReasonToErrorCode( 567 CloseInternal(AuthRejectionReasonToErrorCode(
567 authenticator_->rejection_reason())); 568 authenticator_->rejection_reason()));
569 } else if (authenticator_->state() == Authenticator::WAITING_EXTERNAL) {
570 authenticator_->PerformExternalAction(base::Bind(
571 &JingleSession::ProcessAuthenticationStep,
572 // Authenticator is owned by JingleSession, and cannot outlive it.
573 base::Unretained(this)));
568 } 574 }
569 } 575 }
570 576
571 void JingleSession::CloseInternal(ErrorCode error) { 577 void JingleSession::CloseInternal(ErrorCode error) {
572 DCHECK(CalledOnValidThread()); 578 DCHECK(CalledOnValidThread());
573 579
574 if (state_ == CONNECTING || state_ == CONNECTED || state_ == AUTHENTICATED) { 580 if (state_ == CONNECTING || state_ == CONNECTED || state_ == AUTHENTICATED) {
575 // Send session-terminate message with the appropriate error code. 581 // Send session-terminate message with the appropriate error code.
576 JingleMessage::Reason reason; 582 JingleMessage::Reason reason;
577 switch (error) { 583 switch (error) {
(...skipping 39 matching lines...) Expand 10 before | Expand all | Expand 10 after
617 DCHECK_NE(state_, FAILED); 623 DCHECK_NE(state_, FAILED);
618 624
619 state_ = new_state; 625 state_ = new_state;
620 if (event_handler_) 626 if (event_handler_)
621 event_handler_->OnSessionStateChange(new_state); 627 event_handler_->OnSessionStateChange(new_state);
622 } 628 }
623 } 629 }
624 630
625 } // namespace protocol 631 } // namespace protocol
626 } // namespace remoting 632 } // namespace remoting
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698