| OLD | NEW |
| 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/single_thread_task_runner.h" | 7 #include "base/single_thread_task_runner.h" |
| 8 #include "base/thread_task_runner_handle.h" | 8 #include "base/thread_task_runner_handle.h" |
| 9 #include "jingle/glue/channel_socket_adapter.h" | 9 #include "jingle/glue/channel_socket_adapter.h" |
| 10 #include "jingle/glue/pseudotcp_adapter.h" | 10 #include "jingle/glue/pseudotcp_adapter.h" |
| (...skipping 40 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 51 virtual void AddRemoteCandidate(const cricket::Candidate& candidate) OVERRIDE; | 51 virtual void AddRemoteCandidate(const cricket::Candidate& candidate) OVERRIDE; |
| 52 virtual const std::string& name() const OVERRIDE; | 52 virtual const std::string& name() const OVERRIDE; |
| 53 virtual bool is_connected() const OVERRIDE; | 53 virtual bool is_connected() const OVERRIDE; |
| 54 | 54 |
| 55 private: | 55 private: |
| 56 void OnRequestSignaling(cricket::TransportChannelImpl* channel); | 56 void OnRequestSignaling(cricket::TransportChannelImpl* channel); |
| 57 void OnCandidateReady(cricket::TransportChannelImpl* channel, | 57 void OnCandidateReady(cricket::TransportChannelImpl* channel, |
| 58 const cricket::Candidate& candidate); | 58 const cricket::Candidate& candidate); |
| 59 void OnRouteChange(cricket::TransportChannel* channel, | 59 void OnRouteChange(cricket::TransportChannel* channel, |
| 60 const cricket::Candidate& candidate); | 60 const cricket::Candidate& candidate); |
| 61 void OnWritableState(cricket::TransportChannel* channel); |
| 61 | 62 |
| 62 void OnTcpConnected(int result); | 63 void OnTcpConnected(int result); |
| 63 void OnAuthenticationDone(net::Error error, | 64 void OnAuthenticationDone(net::Error error, |
| 64 scoped_ptr<net::StreamSocket> socket); | 65 scoped_ptr<net::StreamSocket> socket); |
| 65 | 66 |
| 66 void OnChannelDestroyed(); | 67 void OnChannelDestroyed(); |
| 67 | 68 |
| 68 void NotifyConnected(scoped_ptr<net::StreamSocket> socket); | 69 void NotifyConnected(scoped_ptr<net::StreamSocket> socket); |
| 69 void NotifyConnectFailed(); | 70 void NotifyConnectFailed(); |
| 70 | 71 |
| (...skipping 68 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 139 channel_.reset(new cricket::P2PTransportChannel( | 140 channel_.reset(new cricket::P2PTransportChannel( |
| 140 "", 0, NULL, port_allocator_)); | 141 "", 0, NULL, port_allocator_)); |
| 141 channel_->SetIceUfrag(ice_username_fragment_); | 142 channel_->SetIceUfrag(ice_username_fragment_); |
| 142 channel_->SetIcePwd(ice_password_); | 143 channel_->SetIcePwd(ice_password_); |
| 143 channel_->SignalRequestSignaling.connect( | 144 channel_->SignalRequestSignaling.connect( |
| 144 this, &LibjingleStreamTransport::OnRequestSignaling); | 145 this, &LibjingleStreamTransport::OnRequestSignaling); |
| 145 channel_->SignalCandidateReady.connect( | 146 channel_->SignalCandidateReady.connect( |
| 146 this, &LibjingleStreamTransport::OnCandidateReady); | 147 this, &LibjingleStreamTransport::OnCandidateReady); |
| 147 channel_->SignalRouteChange.connect( | 148 channel_->SignalRouteChange.connect( |
| 148 this, &LibjingleStreamTransport::OnRouteChange); | 149 this, &LibjingleStreamTransport::OnRouteChange); |
| 150 channel_->SignalWritableState.connect( |
| 151 this, &LibjingleStreamTransport::OnWritableState); |
| 149 channel_->set_incoming_only(incoming_only_); | 152 channel_->set_incoming_only(incoming_only_); |
| 150 | 153 |
| 151 channel_->Connect(); | 154 channel_->Connect(); |
| 152 | 155 |
| 153 // Create net::Socket adapter for the P2PTransportChannel. | 156 // Create net::Socket adapter for the P2PTransportChannel. |
| 154 scoped_ptr<jingle_glue::TransportChannelSocketAdapter> channel_adapter( | 157 scoped_ptr<jingle_glue::TransportChannelSocketAdapter> channel_adapter( |
| 155 new jingle_glue::TransportChannelSocketAdapter(channel_.get())); | 158 new jingle_glue::TransportChannelSocketAdapter(channel_.get())); |
| 156 | 159 |
| 157 channel_adapter->SetOnDestroyedCallback(base::Bind( | 160 channel_adapter->SetOnDestroyedCallback(base::Bind( |
| 158 &LibjingleStreamTransport::OnChannelDestroyed, base::Unretained(this))); | 161 &LibjingleStreamTransport::OnChannelDestroyed, base::Unretained(this))); |
| (...skipping 72 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 231 const cricket::Candidate& local_candidate = | 234 const cricket::Candidate& local_candidate = |
| 232 channel_->best_connection()->local_candidate(); | 235 channel_->best_connection()->local_candidate(); |
| 233 if (!jingle_glue::SocketAddressToIPEndPoint( | 236 if (!jingle_glue::SocketAddressToIPEndPoint( |
| 234 local_candidate.address(), &route.local_address)) { | 237 local_candidate.address(), &route.local_address)) { |
| 235 LOG(FATAL) << "Failed to convert local IP address."; | 238 LOG(FATAL) << "Failed to convert local IP address."; |
| 236 } | 239 } |
| 237 | 240 |
| 238 event_handler_->OnTransportRouteChange(this, route); | 241 event_handler_->OnTransportRouteChange(this, route); |
| 239 } | 242 } |
| 240 | 243 |
| 244 void LibjingleStreamTransport::OnWritableState( |
| 245 cricket::TransportChannel* channel) { |
| 246 event_handler_->OnTransportReady(this, !channel->writable()); |
| 247 } |
| 248 |
| 241 void LibjingleStreamTransport::OnTcpConnected(int result) { | 249 void LibjingleStreamTransport::OnTcpConnected(int result) { |
| 242 DCHECK(CalledOnValidThread()); | 250 DCHECK(CalledOnValidThread()); |
| 243 | 251 |
| 244 if (result != net::OK) { | 252 if (result != net::OK) { |
| 245 NotifyConnectFailed(); | 253 NotifyConnectFailed(); |
| 246 return; | 254 return; |
| 247 } | 255 } |
| 248 | 256 |
| 249 authenticator_->SecureAndAuthenticate( | 257 authenticator_->SecureAndAuthenticate( |
| 250 socket_.PassAs<net::StreamSocket>(), | 258 socket_.PassAs<net::StreamSocket>(), |
| (...skipping 99 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 350 } | 358 } |
| 351 | 359 |
| 352 scoped_ptr<DatagramTransport> | 360 scoped_ptr<DatagramTransport> |
| 353 LibjingleTransportFactory::CreateDatagramTransport() { | 361 LibjingleTransportFactory::CreateDatagramTransport() { |
| 354 NOTIMPLEMENTED(); | 362 NOTIMPLEMENTED(); |
| 355 return scoped_ptr<DatagramTransport>(NULL); | 363 return scoped_ptr<DatagramTransport>(NULL); |
| 356 } | 364 } |
| 357 | 365 |
| 358 } // namespace protocol | 366 } // namespace protocol |
| 359 } // namespace remoting | 367 } // namespace remoting |
| OLD | NEW |