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

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

Issue 1070233004: Fix intermittent connection failure in CRD. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 5 years, 8 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
« no previous file with comments | « remoting/protocol/jingle_session_unittest.cc ('k') | remoting/signaling/fake_signal_strategy.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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/libjingle_transport_factory.h" 5 #include "remoting/protocol/libjingle_transport_factory.h"
6 6
7 #include <algorithm> 7 #include <algorithm>
8 8
9 #include "base/callback.h" 9 #include "base/callback.h"
10 #include "base/callback_helpers.h" 10 #include "base/callback_helpers.h"
(...skipping 132 matching lines...) Expand 10 before | Expand all | Expand 10 after
143 DCHECK(CalledOnValidThread()); 143 DCHECK(CalledOnValidThread());
144 144
145 DCHECK(!can_start_); 145 DCHECK(!can_start_);
146 can_start_ = true; 146 can_start_ = true;
147 147
148 // If Connect() has been called then start connection. 148 // If Connect() has been called then start connection.
149 if (!callback_.is_null()) 149 if (!callback_.is_null())
150 DoStart(); 150 DoStart();
151 151
152 while (!pending_candidates_.empty()) { 152 while (!pending_candidates_.empty()) {
153 channel_->SetRemoteIceCredentials(pending_candidates_.front().username(),
154 pending_candidates_.front().password());
jiayl 2015/04/15 20:13:00 Do all candidates share the same username/password
Sergey Ulanov 2015/04/15 20:49:34 Credentials may change when the remote peer restar
153 channel_->OnCandidate(pending_candidates_.front()); 155 channel_->OnCandidate(pending_candidates_.front());
154 pending_candidates_.pop_front(); 156 pending_candidates_.pop_front();
155 } 157 }
156 } 158 }
157 159
158 void LibjingleTransport::Connect( 160 void LibjingleTransport::Connect(
159 const std::string& name, 161 const std::string& name,
160 Transport::EventHandler* event_handler, 162 Transport::EventHandler* event_handler,
161 const Transport::ConnectedCallback& callback) { 163 const Transport::ConnectedCallback& callback) {
162 DCHECK(CalledOnValidThread()); 164 DCHECK(CalledOnValidThread());
(...skipping 58 matching lines...) Expand 10 before | Expand all | Expand 10 after
221 DCHECK(CalledOnValidThread()); 223 DCHECK(CalledOnValidThread());
222 224
223 // To enforce the no-relay setting, it's not enough to not produce relay 225 // To enforce the no-relay setting, it's not enough to not produce relay
224 // candidates. It's also necessary to discard remote relay candidates. 226 // candidates. It's also necessary to discard remote relay candidates.
225 bool relay_allowed = (network_settings_.flags & 227 bool relay_allowed = (network_settings_.flags &
226 NetworkSettings::NAT_TRAVERSAL_RELAY) != 0; 228 NetworkSettings::NAT_TRAVERSAL_RELAY) != 0;
227 if (!relay_allowed && candidate.type() == cricket::RELAY_PORT_TYPE) 229 if (!relay_allowed && candidate.type() == cricket::RELAY_PORT_TYPE)
228 return; 230 return;
229 231
230 if (channel_) { 232 if (channel_) {
233 channel_->SetRemoteIceCredentials(candidate.username(),
234 candidate.password());
231 channel_->OnCandidate(candidate); 235 channel_->OnCandidate(candidate);
232 } else { 236 } else {
233 pending_candidates_.push_back(candidate); 237 pending_candidates_.push_back(candidate);
234 } 238 }
235 } 239 }
236 240
237 const std::string& LibjingleTransport::name() const { 241 const std::string& LibjingleTransport::name() const {
238 DCHECK(CalledOnValidThread()); 242 DCHECK(CalledOnValidThread());
239 return name_; 243 return name_;
240 } 244 }
(...skipping 173 matching lines...) Expand 10 before | Expand all | Expand 10 after
414 last_jingle_info_update_time_ = base::TimeTicks::Now(); 418 last_jingle_info_update_time_ = base::TimeTicks::Now();
415 419
416 while (!on_jingle_info_callbacks_.empty()) { 420 while (!on_jingle_info_callbacks_.empty()) {
417 on_jingle_info_callbacks_.begin()->Run(); 421 on_jingle_info_callbacks_.begin()->Run();
418 on_jingle_info_callbacks_.pop_front(); 422 on_jingle_info_callbacks_.pop_front();
419 } 423 }
420 } 424 }
421 425
422 } // namespace protocol 426 } // namespace protocol
423 } // namespace remoting 427 } // namespace remoting
OLDNEW
« no previous file with comments | « remoting/protocol/jingle_session_unittest.cc ('k') | remoting/signaling/fake_signal_strategy.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698