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

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

Issue 205583011: [Draft] Fix canceling pin prompt causes host overload (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Removing .gitIngore Created 6 years, 9 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
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/strings/string_number_conversions.h" 10 #include "base/strings/string_number_conversions.h"
(...skipping 163 matching lines...) Expand 10 before | Expand all | Expand 10 after
174 auth_message.Pass())); 174 auth_message.Pass()));
175 SendMessage(message); 175 SendMessage(message);
176 176
177 // Update state. 177 // Update state.
178 SetState(CONNECTED); 178 SetState(CONNECTED);
179 179
180 if (authenticator_->state() == Authenticator::ACCEPTED) { 180 if (authenticator_->state() == Authenticator::ACCEPTED) {
181 SetState(AUTHENTICATED); 181 SetState(AUTHENTICATED);
182 } else { 182 } else {
183 DCHECK_EQ(authenticator_->state(), Authenticator::WAITING_MESSAGE); 183 DCHECK_EQ(authenticator_->state(), Authenticator::WAITING_MESSAGE);
184 if (authenticator_->has_auth_started()) {
185 event_handler_->OnSessionAuthenticationBegin();
186 }
184 } 187 }
185 188
186 return; 189 return;
187 } 190 }
188 191
189 const std::string& JingleSession::jid() { 192 const std::string& JingleSession::jid() {
190 DCHECK(CalledOnValidThread()); 193 DCHECK(CalledOnValidThread());
191 return peer_jid_; 194 return peer_jid_;
192 } 195 }
193 196
(...skipping 294 matching lines...) Expand 10 before | Expand all | Expand 10 after
488 if (state_ != CONNECTED || 491 if (state_ != CONNECTED ||
489 authenticator_->state() != Authenticator::WAITING_MESSAGE) { 492 authenticator_->state() != Authenticator::WAITING_MESSAGE) {
490 LOG(WARNING) << "Received unexpected authenticator message " 493 LOG(WARNING) << "Received unexpected authenticator message "
491 << message.info->Str(); 494 << message.info->Str();
492 reply_callback.Run(JingleMessageReply::UNEXPECTED_REQUEST); 495 reply_callback.Run(JingleMessageReply::UNEXPECTED_REQUEST);
493 CloseInternal(INCOMPATIBLE_PROTOCOL); 496 CloseInternal(INCOMPATIBLE_PROTOCOL);
494 return; 497 return;
495 } 498 }
496 499
497 reply_callback.Run(JingleMessageReply::NONE); 500 reply_callback.Run(JingleMessageReply::NONE);
498
Sergey Ulanov 2014/03/24 18:42:36 nit: keep this empty line
kelvinp 2014/03/24 23:11:39 Done.
499 authenticator_->ProcessMessage(message.info.get(), base::Bind( 501 authenticator_->ProcessMessage(message.info.get(), base::Bind(
500 &JingleSession::ProcessAuthenticationStep, base::Unretained(this))); 502 &JingleSession::ProcessAuthenticationStep, base::Unretained(this)));
501 } 503 }
502 504
503 void JingleSession::ProcessTransportInfo(const JingleMessage& message) { 505 void JingleSession::ProcessTransportInfo(const JingleMessage& message) {
504 for (std::list<JingleMessage::NamedCandidate>::const_iterator it = 506 for (std::list<JingleMessage::NamedCandidate>::const_iterator it =
505 message.candidates.begin(); 507 message.candidates.begin();
506 it != message.candidates.end(); ++it) { 508 it != message.candidates.end(); ++it) {
507 ChannelsMap::iterator channel = channels_.find(it->name); 509 ChannelsMap::iterator channel = channels_.find(it->name);
508 if (channel != channels_.end()) { 510 if (channel != channels_.end()) {
(...skipping 68 matching lines...) Expand 10 before | Expand all | Expand 10 after
577 DCHECK(CalledOnValidThread()); 579 DCHECK(CalledOnValidThread());
578 DCHECK_NE(authenticator_->state(), Authenticator::PROCESSING_MESSAGE); 580 DCHECK_NE(authenticator_->state(), Authenticator::PROCESSING_MESSAGE);
579 581
580 if (state_ != CONNECTED) { 582 if (state_ != CONNECTED) {
581 DCHECK(state_ == FAILED || state_ == CLOSED); 583 DCHECK(state_ == FAILED || state_ == CLOSED);
582 // The remote host closed the connection while the authentication was being 584 // The remote host closed the connection while the authentication was being
583 // processed asynchronously, nothing to do. 585 // processed asynchronously, nothing to do.
584 return; 586 return;
585 } 587 }
586 588
589 if (authenticator_->has_auth_started()) {
590 event_handler_->OnSessionAuthenticationBegin();
591 }
592
587 if (authenticator_->state() == Authenticator::MESSAGE_READY) { 593 if (authenticator_->state() == Authenticator::MESSAGE_READY) {
588 JingleMessage message(peer_jid_, JingleMessage::SESSION_INFO, session_id_); 594 JingleMessage message(peer_jid_, JingleMessage::SESSION_INFO, session_id_);
589 message.info = authenticator_->GetNextMessage(); 595 message.info = authenticator_->GetNextMessage();
590 DCHECK(message.info.get()); 596 DCHECK(message.info.get());
591 SendMessage(message); 597 SendMessage(message);
592 } 598 }
593 DCHECK_NE(authenticator_->state(), Authenticator::MESSAGE_READY); 599 DCHECK_NE(authenticator_->state(), Authenticator::MESSAGE_READY);
594 600
595 if (authenticator_->state() == Authenticator::ACCEPTED) { 601 if (authenticator_->state() == Authenticator::ACCEPTED) {
596 SetState(AUTHENTICATED); 602 SetState(AUTHENTICATED);
(...skipping 44 matching lines...) Expand 10 before | Expand all | Expand 10 after
641 } 647 }
642 } 648 }
643 } 649 }
644 650
645 void JingleSession::SetState(State new_state) { 651 void JingleSession::SetState(State new_state) {
646 DCHECK(CalledOnValidThread()); 652 DCHECK(CalledOnValidThread());
647 653
648 if (new_state != state_) { 654 if (new_state != state_) {
649 DCHECK_NE(state_, CLOSED); 655 DCHECK_NE(state_, CLOSED);
650 DCHECK_NE(state_, FAILED); 656 DCHECK_NE(state_, FAILED);
651
Sergey Ulanov 2014/03/24 18:42:36 nit: keep this line
kelvinp 2014/03/24 23:11:39 Done.
652 state_ = new_state; 657 state_ = new_state;
653 if (event_handler_) 658 if (event_handler_)
654 event_handler_->OnSessionStateChange(new_state); 659 event_handler_->OnSessionStateChange(new_state);
655 } 660 }
656 } 661 }
657 662
658 } // namespace protocol 663 } // namespace protocol
659 } // namespace remoting 664 } // namespace remoting
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698