| 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 | 10 |
| (...skipping 84 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 95 } | 95 } |
| 96 | 96 |
| 97 void AsyncUDPSocket::SetError(int error) { | 97 void AsyncUDPSocket::SetError(int error) { |
| 98 return socket_->SetError(error); | 98 return socket_->SetError(error); |
| 99 } | 99 } |
| 100 | 100 |
| 101 void AsyncUDPSocket::OnReadEvent(AsyncSocket* socket) { | 101 void AsyncUDPSocket::OnReadEvent(AsyncSocket* socket) { |
| 102 ASSERT(socket_.get() == socket); | 102 ASSERT(socket_.get() == socket); |
| 103 | 103 |
| 104 SocketAddress remote_addr; | 104 SocketAddress remote_addr; |
| 105 int len = socket_->RecvFrom(buf_, size_, &remote_addr); | 105 int64_t timestamp; |
| 106 int len = socket_->RecvFrom(buf_, size_, &remote_addr, ×tamp); |
| 106 if (len < 0) { | 107 if (len < 0) { |
| 107 // An error here typically means we got an ICMP error in response to our | 108 // An error here typically means we got an ICMP error in response to our |
| 108 // send datagram, indicating the remote address was unreachable. | 109 // send datagram, indicating the remote address was unreachable. |
| 109 // When doing ICE, this kind of thing will often happen. | 110 // When doing ICE, this kind of thing will often happen. |
| 110 // TODO: Do something better like forwarding the error to the user. | 111 // TODO: Do something better like forwarding the error to the user. |
| 111 SocketAddress local_addr = socket_->GetLocalAddress(); | 112 SocketAddress local_addr = socket_->GetLocalAddress(); |
| 112 LOG(LS_INFO) << "AsyncUDPSocket[" << local_addr.ToSensitiveString() << "] " | 113 LOG(LS_INFO) << "AsyncUDPSocket[" << local_addr.ToSensitiveString() << "] " |
| 113 << "receive failed with error " << socket_->GetError(); | 114 << "receive failed with error " << socket_->GetError(); |
| 114 return; | 115 return; |
| 115 } | 116 } |
| 116 | 117 |
| 117 // TODO: Make sure that we got all of the packet. | 118 // TODO: Make sure that we got all of the packet. |
| 118 // If we did not, then we should resize our buffer to be large enough. | 119 // If we did not, then we should resize our buffer to be large enough. |
| 119 SignalReadPacket(this, buf_, static_cast<size_t>(len), remote_addr, | 120 SignalReadPacket( |
| 120 CreatePacketTime(0)); | 121 this, buf_, static_cast<size_t>(len), remote_addr, |
| 122 (timestamp > -1 ? PacketTime(timestamp, 0) : CreatePacketTime(0))); |
| 121 } | 123 } |
| 122 | 124 |
| 123 void AsyncUDPSocket::OnWriteEvent(AsyncSocket* socket) { | 125 void AsyncUDPSocket::OnWriteEvent(AsyncSocket* socket) { |
| 124 SignalReadyToSend(this); | 126 SignalReadyToSend(this); |
| 125 } | 127 } |
| 126 | 128 |
| 127 } // namespace rtc | 129 } // namespace rtc |
| OLD | NEW |