| OLD | NEW | 
|---|
| 1 /* | 1 /* | 
| 2  *  Copyright 2004 The WebRTC Project Authors. All rights reserved. | 2  *  Copyright 2004 The WebRTC Project Authors. All rights reserved. | 
| 3  * | 3  * | 
| 4  *  Use of this source code is governed by a BSD-style license | 4  *  Use of this source code is governed by a BSD-style license | 
| 5  *  that can be found in the LICENSE file in the root of the source | 5  *  that can be found in the LICENSE file in the root of the source | 
| 6  *  tree. An additional intellectual property rights grant can be found | 6  *  tree. An additional intellectual property rights grant can be found | 
| 7  *  in the file PATENTS.  All contributing project authors may | 7  *  in the file PATENTS.  All contributing project authors may | 
| 8  *  be found in the AUTHORS file in the root of the source tree. | 8  *  be found in the AUTHORS file in the root of the source tree. | 
| 9  */ | 9  */ | 
| 10 #include <algorithm> | 10 #include <algorithm> | 
| (...skipping 126 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 137   // Called when a TCP connection is established or fails | 137   // Called when a TCP connection is established or fails | 
| 138   void OnSocketConnect(rtc::AsyncPacketSocket* socket); | 138   void OnSocketConnect(rtc::AsyncPacketSocket* socket); | 
| 139   void OnSocketClose(rtc::AsyncPacketSocket* socket, int error); | 139   void OnSocketClose(rtc::AsyncPacketSocket* socket, int error); | 
| 140 | 140 | 
| 141   // Called when a packet is received on this socket. | 141   // Called when a packet is received on this socket. | 
| 142   void OnReadPacket( | 142   void OnReadPacket( | 
| 143     rtc::AsyncPacketSocket* socket, | 143     rtc::AsyncPacketSocket* socket, | 
| 144     const char* data, size_t size, | 144     const char* data, size_t size, | 
| 145     const rtc::SocketAddress& remote_addr, | 145     const rtc::SocketAddress& remote_addr, | 
| 146     const rtc::PacketTime& packet_time); | 146     const rtc::PacketTime& packet_time); | 
|  | 147 | 
|  | 148   void OnSentPacket(rtc::AsyncPacketSocket* socket, | 
|  | 149                     const rtc::SentPacket& sent_packet); | 
|  | 150 | 
| 147   // Called when the socket is currently able to send. | 151   // Called when the socket is currently able to send. | 
| 148   void OnReadyToSend(rtc::AsyncPacketSocket* socket); | 152   void OnReadyToSend(rtc::AsyncPacketSocket* socket); | 
| 149 | 153 | 
| 150   // Sends the given data on the socket to the server with no wrapping.  This | 154   // Sends the given data on the socket to the server with no wrapping.  This | 
| 151   // returns the number of bytes written or -1 if an error occurred. | 155   // returns the number of bytes written or -1 if an error occurred. | 
| 152   int SendPacket(const void* data, size_t size, | 156   int SendPacket(const void* data, size_t size, | 
| 153                  const rtc::PacketOptions& options); | 157                  const rtc::PacketOptions& options); | 
| 154 }; | 158 }; | 
| 155 | 159 | 
| 156 // Handles an allocate request for a particular RelayEntry. | 160 // Handles an allocate request for a particular RelayEntry. | 
| (...skipping 337 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 494   } | 498   } | 
| 495 | 499 | 
| 496   // If we failed to get a socket, move on to the next protocol. | 500   // If we failed to get a socket, move on to the next protocol. | 
| 497   if (!socket) { | 501   if (!socket) { | 
| 498     port()->thread()->Post(this, kMessageConnectTimeout); | 502     port()->thread()->Post(this, kMessageConnectTimeout); | 
| 499     return; | 503     return; | 
| 500   } | 504   } | 
| 501 | 505 | 
| 502   // Otherwise, create the new connection and configure any socket options. | 506   // Otherwise, create the new connection and configure any socket options. | 
| 503   socket->SignalReadPacket.connect(this, &RelayEntry::OnReadPacket); | 507   socket->SignalReadPacket.connect(this, &RelayEntry::OnReadPacket); | 
|  | 508   socket->SignalSentPacket.connect(this, &RelayEntry::OnSentPacket); | 
| 504   socket->SignalReadyToSend.connect(this, &RelayEntry::OnReadyToSend); | 509   socket->SignalReadyToSend.connect(this, &RelayEntry::OnReadyToSend); | 
| 505   current_connection_ = new RelayConnection(ra, socket, port()->thread()); | 510   current_connection_ = new RelayConnection(ra, socket, port()->thread()); | 
| 506   for (size_t i = 0; i < port_->options().size(); ++i) { | 511   for (size_t i = 0; i < port_->options().size(); ++i) { | 
| 507     current_connection_->SetSocketOption(port_->options()[i].first, | 512     current_connection_->SetSocketOption(port_->options()[i].first, | 
| 508                                          port_->options()[i].second); | 513                                          port_->options()[i].second); | 
| 509   } | 514   } | 
| 510 | 515 | 
| 511   // If we're trying UDP, start binding requests. | 516   // If we're trying UDP, start binding requests. | 
| 512   // If we're trying TCP, wait for connection with a fixed timeout. | 517   // If we're trying TCP, wait for connection with a fixed timeout. | 
| 513   if ((ra->proto == PROTO_TCP) || (ra->proto == PROTO_SSLTCP)) { | 518   if ((ra->proto == PROTO_TCP) || (ra->proto == PROTO_SSLTCP)) { | 
| (...skipping 219 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 733   if (!data_attr) { | 738   if (!data_attr) { | 
| 734     LOG(INFO) << "Data indication has no data"; | 739     LOG(INFO) << "Data indication has no data"; | 
| 735     return; | 740     return; | 
| 736   } | 741   } | 
| 737 | 742 | 
| 738   // Process the actual data and remote address in the normal manner. | 743   // Process the actual data and remote address in the normal manner. | 
| 739   port_->OnReadPacket(data_attr->bytes(), data_attr->length(), remote_addr2, | 744   port_->OnReadPacket(data_attr->bytes(), data_attr->length(), remote_addr2, | 
| 740                       PROTO_UDP, packet_time); | 745                       PROTO_UDP, packet_time); | 
| 741 } | 746 } | 
| 742 | 747 | 
|  | 748 void RelayEntry::OnSentPacket(rtc::AsyncPacketSocket* socket, | 
|  | 749                               const rtc::SentPacket& sent_packet) { | 
|  | 750   port_->OnSentPacket(sent_packet); | 
|  | 751 } | 
|  | 752 | 
| 743 void RelayEntry::OnReadyToSend(rtc::AsyncPacketSocket* socket) { | 753 void RelayEntry::OnReadyToSend(rtc::AsyncPacketSocket* socket) { | 
| 744   if (connected()) { | 754   if (connected()) { | 
| 745     port_->OnReadyToSend(); | 755     port_->OnReadyToSend(); | 
| 746   } | 756   } | 
| 747 } | 757 } | 
| 748 | 758 | 
| 749 int RelayEntry::SendPacket(const void* data, size_t size, | 759 int RelayEntry::SendPacket(const void* data, size_t size, | 
| 750                            const rtc::PacketOptions& options) { | 760                            const rtc::PacketOptions& options) { | 
| 751   int sent = 0; | 761   int sent = 0; | 
| 752   if (current_connection_) { | 762   if (current_connection_) { | 
| (...skipping 67 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 820   if (rtc::TimeSince(start_time_) <= kRetryTimeout) | 830   if (rtc::TimeSince(start_time_) <= kRetryTimeout) | 
| 821     entry_->ScheduleKeepAlive(); | 831     entry_->ScheduleKeepAlive(); | 
| 822 } | 832 } | 
| 823 | 833 | 
| 824 void AllocateRequest::OnTimeout() { | 834 void AllocateRequest::OnTimeout() { | 
| 825   LOG(INFO) << "Allocate request timed out"; | 835   LOG(INFO) << "Allocate request timed out"; | 
| 826   entry_->HandleConnectFailure(connection_->socket()); | 836   entry_->HandleConnectFailure(connection_->socket()); | 
| 827 } | 837 } | 
| 828 | 838 | 
| 829 }  // namespace cricket | 839 }  // namespace cricket | 
| OLD | NEW | 
|---|