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

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

Issue 9549029: Set incoming_only flag on the host side when NAT traversal is disabled. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 8 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/libjingle_transport_factory.h" 5 #include "remoting/protocol/libjingle_transport_factory.h"
6 6
7 #include "base/message_loop_proxy.h" 7 #include "base/message_loop_proxy.h"
8 #include "jingle/glue/channel_socket_adapter.h" 8 #include "jingle/glue/channel_socket_adapter.h"
9 #include "jingle/glue/pseudotcp_adapter.h" 9 #include "jingle/glue/pseudotcp_adapter.h"
10 #include "jingle/glue/utils.h" 10 #include "jingle/glue/utils.h"
(...skipping 122 matching lines...) Expand 10 before | Expand all | Expand 10 after
133 DCHECK(CalledOnValidThread()); 133 DCHECK(CalledOnValidThread());
134 134
135 callback_ = callback; 135 callback_ = callback;
136 136
137 // Create port allocator first. 137 // Create port allocator first.
138 138
139 // We always use PseudoTcp to provide a reliable channel. However 139 // We always use PseudoTcp to provide a reliable channel. However
140 // when it is used together with TCP the performance is very bad 140 // when it is used together with TCP the performance is very bad
141 // so we explicitly disable TCP connections. 141 // so we explicitly disable TCP connections.
142 int port_allocator_flags = cricket::PORTALLOCATOR_DISABLE_TCP; 142 int port_allocator_flags = cricket::PORTALLOCATOR_DISABLE_TCP;
143 if (config_.nat_traversal) { 143 if (config_.nat_traversal_mode == TransportConfig::NAT_TRAVERSAL_ENABLED) {
144 http_port_allocator_ = new cricket::HttpPortAllocator( 144 http_port_allocator_ = new cricket::HttpPortAllocator(
145 network_manager_, socket_factory_, ""); 145 network_manager_, socket_factory_, "");
146 port_allocator_.reset(http_port_allocator_); 146 port_allocator_.reset(http_port_allocator_);
147 } else { 147 } else {
148 port_allocator_flags |= cricket::PORTALLOCATOR_DISABLE_STUN | 148 port_allocator_flags |= cricket::PORTALLOCATOR_DISABLE_STUN |
149 cricket::PORTALLOCATOR_DISABLE_RELAY; 149 cricket::PORTALLOCATOR_DISABLE_RELAY;
150 port_allocator_.reset( 150 port_allocator_.reset(
151 new cricket::BasicPortAllocator(network_manager_, socket_factory_)); 151 new cricket::BasicPortAllocator(network_manager_, socket_factory_));
152 } 152 }
153 port_allocator_->set_flags(port_allocator_flags); 153 port_allocator_->set_flags(port_allocator_flags);
154 154
155 port_allocator_->SetPortRange(config_.min_port, config_.max_port); 155 port_allocator_->SetPortRange(config_.min_port, config_.max_port);
156 156
157 // Create P2PTransportChannel, attach signal handlers and connect it. 157 // Create P2PTransportChannel, attach signal handlers and connect it.
158 DCHECK(!channel_.get()); 158 DCHECK(!channel_.get());
159 channel_.reset(new cricket::P2PTransportChannel( 159 channel_.reset(new cricket::P2PTransportChannel(
160 name_, "", NULL, port_allocator_.get())); 160 name_, "", NULL, port_allocator_.get()));
161 channel_->SignalRequestSignaling.connect( 161 channel_->SignalRequestSignaling.connect(
162 this, &LibjingleStreamTransport::OnRequestSignaling); 162 this, &LibjingleStreamTransport::OnRequestSignaling);
163 channel_->SignalCandidateReady.connect( 163 channel_->SignalCandidateReady.connect(
164 this, &LibjingleStreamTransport::OnCandidateReady); 164 this, &LibjingleStreamTransport::OnCandidateReady);
165 channel_->SignalRouteChange.connect( 165 channel_->SignalRouteChange.connect(
166 this, &LibjingleStreamTransport::OnRouteChange); 166 this, &LibjingleStreamTransport::OnRouteChange);
167 if (config_.nat_traversal_mode == TransportConfig::NAT_TRAVERSAL_DISABLED)
168 channel_->set_incoming_only(true);
167 169
168 channel_->Connect(); 170 channel_->Connect();
169 171
170 // Create net::Socket adapter for the P2PTransportChannel. 172 // Create net::Socket adapter for the P2PTransportChannel.
171 scoped_ptr<jingle_glue::TransportChannelSocketAdapter> channel_adapter( 173 scoped_ptr<jingle_glue::TransportChannelSocketAdapter> channel_adapter(
172 new jingle_glue::TransportChannelSocketAdapter(channel_.get())); 174 new jingle_glue::TransportChannelSocketAdapter(channel_.get()));
173 175
174 channel_adapter->SetOnDestroyedCallback(base::Bind( 176 channel_adapter->SetOnDestroyedCallback(base::Bind(
175 &LibjingleStreamTransport::OnChannelDestroyed, base::Unretained(this))); 177 &LibjingleStreamTransport::OnChannelDestroyed, base::Unretained(this)));
176 178
(...skipping 158 matching lines...) Expand 10 before | Expand all | Expand 10 after
335 337
336 scoped_ptr<DatagramTransport> 338 scoped_ptr<DatagramTransport>
337 LibjingleTransportFactory::CreateDatagramTransport() { 339 LibjingleTransportFactory::CreateDatagramTransport() {
338 NOTIMPLEMENTED(); 340 NOTIMPLEMENTED();
339 return scoped_ptr<DatagramTransport>(NULL); 341 return scoped_ptr<DatagramTransport>(NULL);
340 } 342 }
341 343
342 344
343 } // namespace protocol 345 } // namespace protocol
344 } // namespace remoting 346 } // namespace remoting
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698