| OLD | NEW |
| 1 /* | 1 /* |
| 2 * Copyright 2012 The WebRTC Project Authors. All rights reserved. | 2 * Copyright 2012 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 491 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 502 void TurnServer::Send(TurnServerConnection* conn, | 502 void TurnServer::Send(TurnServerConnection* conn, |
| 503 const rtc::ByteBufferWriter& buf) { | 503 const rtc::ByteBufferWriter& buf) { |
| 504 rtc::PacketOptions options; | 504 rtc::PacketOptions options; |
| 505 conn->socket()->SendTo(buf.Data(), buf.Length(), conn->src(), options); | 505 conn->socket()->SendTo(buf.Data(), buf.Length(), conn->src(), options); |
| 506 } | 506 } |
| 507 | 507 |
| 508 void TurnServer::OnAllocationDestroyed(TurnServerAllocation* allocation) { | 508 void TurnServer::OnAllocationDestroyed(TurnServerAllocation* allocation) { |
| 509 // Removing the internal socket if the connection is not udp. | 509 // Removing the internal socket if the connection is not udp. |
| 510 rtc::AsyncPacketSocket* socket = allocation->conn()->socket(); | 510 rtc::AsyncPacketSocket* socket = allocation->conn()->socket(); |
| 511 InternalSocketMap::iterator iter = server_sockets_.find(socket); | 511 InternalSocketMap::iterator iter = server_sockets_.find(socket); |
| 512 ASSERT(iter != server_sockets_.end()); | |
| 513 // Skip if the socket serving this allocation is UDP, as this will be shared | 512 // Skip if the socket serving this allocation is UDP, as this will be shared |
| 514 // by all allocations. | 513 // by all allocations. |
| 515 if (iter->second != cricket::PROTO_UDP) { | 514 // Note: We may not find a socket if it's a TCP socket that was closed, and |
| 515 // the allocation is only now timing out. |
| 516 if (iter != server_sockets_.end() && iter->second != cricket::PROTO_UDP) { |
| 516 DestroyInternalSocket(socket); | 517 DestroyInternalSocket(socket); |
| 517 } | 518 } |
| 518 | 519 |
| 519 AllocationMap::iterator it = allocations_.find(*(allocation->conn())); | 520 AllocationMap::iterator it = allocations_.find(*(allocation->conn())); |
| 520 if (it != allocations_.end()) | 521 if (it != allocations_.end()) |
| 521 allocations_.erase(it); | 522 allocations_.erase(it); |
| 522 } | 523 } |
| 523 | 524 |
| 524 void TurnServer::DestroyInternalSocket(rtc::AsyncPacketSocket* socket) { | 525 void TurnServer::DestroyInternalSocket(rtc::AsyncPacketSocket* socket) { |
| 525 InternalSocketMap::iterator iter = server_sockets_.find(socket); | 526 InternalSocketMap::iterator iter = server_sockets_.find(socket); |
| (...skipping 427 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 953 MSG_ALLOCATION_TIMEOUT); | 954 MSG_ALLOCATION_TIMEOUT); |
| 954 } | 955 } |
| 955 | 956 |
| 956 void TurnServerAllocation::Channel::OnMessage(rtc::Message* msg) { | 957 void TurnServerAllocation::Channel::OnMessage(rtc::Message* msg) { |
| 957 ASSERT(msg->message_id == MSG_ALLOCATION_TIMEOUT); | 958 ASSERT(msg->message_id == MSG_ALLOCATION_TIMEOUT); |
| 958 SignalDestroyed(this); | 959 SignalDestroyed(this); |
| 959 delete this; | 960 delete this; |
| 960 } | 961 } |
| 961 | 962 |
| 962 } // namespace cricket | 963 } // namespace cricket |
| OLD | NEW |