OLD | NEW |
1 /* | 1 /* |
2 * Copyright (c) 2012 The WebRTC project authors. All Rights Reserved. | 2 * Copyright (c) 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 21 matching lines...) Expand all Loading... |
32 #include "webrtc/base/criticalsection.h" | 32 #include "webrtc/base/criticalsection.h" |
33 #include "webrtc/base/helpers.h" | 33 #include "webrtc/base/helpers.h" |
34 #include "webrtc/base/logging.h" | 34 #include "webrtc/base/logging.h" |
35 #include "webrtc/base/safe_conversions.h" | 35 #include "webrtc/base/safe_conversions.h" |
36 #include "webrtc/base/thread_checker.h" | 36 #include "webrtc/base/thread_checker.h" |
37 #include "webrtc/base/trace_event.h" | 37 #include "webrtc/base/trace_event.h" |
38 #include "webrtc/media/base/codec.h" | 38 #include "webrtc/media/base/codec.h" |
39 #include "webrtc/media/base/mediaconstants.h" | 39 #include "webrtc/media/base/mediaconstants.h" |
40 #include "webrtc/media/base/rtputils.h" // For IsRtpPacket | 40 #include "webrtc/media/base/rtputils.h" // For IsRtpPacket |
41 #include "webrtc/media/base/streamparams.h" | 41 #include "webrtc/media/base/streamparams.h" |
| 42 #include "webrtc/p2p/base/dtlstransportinternal.h" // For PF_NORMAL |
42 | 43 |
43 namespace { | 44 namespace { |
44 | 45 |
45 // The biggest SCTP packet. Starting from a 'safe' wire MTU value of 1280, | 46 // The biggest SCTP packet. Starting from a 'safe' wire MTU value of 1280, |
46 // take off 80 bytes for DTLS/TURN/TCP/IP overhead. | 47 // take off 80 bytes for DTLS/TURN/TCP/IP overhead. |
47 static constexpr size_t kSctpMtu = 1200; | 48 static constexpr size_t kSctpMtu = 1200; |
48 | 49 |
49 // The size of the SCTP association send buffer. 256kB, the usrsctp default. | 50 // The size of the SCTP association send buffer. 256kB, the usrsctp default. |
50 static constexpr int kSendBufferSize = 262144; | 51 static constexpr int kSendBufferSize = 262144; |
51 | 52 |
(...skipping 325 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
377 << "SendThresholdCallback: Failed to get transport for socket " | 378 << "SendThresholdCallback: Failed to get transport for socket " |
378 << sock; | 379 << sock; |
379 return 0; | 380 return 0; |
380 } | 381 } |
381 transport->OnSendThresholdCallback(); | 382 transport->OnSendThresholdCallback(); |
382 return 0; | 383 return 0; |
383 } | 384 } |
384 }; | 385 }; |
385 | 386 |
386 SctpTransport::SctpTransport(rtc::Thread* network_thread, | 387 SctpTransport::SctpTransport(rtc::Thread* network_thread, |
387 TransportChannel* channel) | 388 rtc::PacketTransportInterface* channel) |
388 : network_thread_(network_thread), | 389 : network_thread_(network_thread), |
389 transport_channel_(channel), | 390 transport_channel_(channel), |
390 was_ever_writable_(channel->writable()) { | 391 was_ever_writable_(channel->writable()) { |
391 RTC_DCHECK(network_thread_); | 392 RTC_DCHECK(network_thread_); |
392 RTC_DCHECK(transport_channel_); | 393 RTC_DCHECK(transport_channel_); |
393 RTC_DCHECK_RUN_ON(network_thread_); | 394 RTC_DCHECK_RUN_ON(network_thread_); |
394 ConnectTransportChannelSignals(); | 395 ConnectTransportChannelSignals(); |
395 } | 396 } |
396 | 397 |
397 SctpTransport::~SctpTransport() { | 398 SctpTransport::~SctpTransport() { |
398 // Close abruptly; no reset procedure. | 399 // Close abruptly; no reset procedure. |
399 CloseSctpSocket(); | 400 CloseSctpSocket(); |
400 } | 401 } |
401 | 402 |
402 void SctpTransport::SetTransportChannel(cricket::TransportChannel* channel) { | 403 void SctpTransport::SetTransportChannel( |
| 404 rtc::PacketTransportInterface* channel) { |
403 RTC_DCHECK_RUN_ON(network_thread_); | 405 RTC_DCHECK_RUN_ON(network_thread_); |
404 RTC_DCHECK(channel); | 406 RTC_DCHECK(channel); |
405 DisconnectTransportChannelSignals(); | 407 DisconnectTransportChannelSignals(); |
406 transport_channel_ = channel; | 408 transport_channel_ = channel; |
407 ConnectTransportChannelSignals(); | 409 ConnectTransportChannelSignals(); |
408 if (!was_ever_writable_ && channel->writable()) { | 410 if (!was_ever_writable_ && channel->writable()) { |
409 was_ever_writable_ = true; | 411 was_ever_writable_ = true; |
410 // New channel is writable, now we can start the SCTP connection if Start | 412 // New channel is writable, now we can start the SCTP connection if Start |
411 // was called already. | 413 // was called already. |
412 if (started_) { | 414 if (started_) { |
(...skipping 668 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1081 } | 1083 } |
1082 } | 1084 } |
1083 } | 1085 } |
1084 | 1086 |
1085 // Always try to send the queued RESET because this call indicates that the | 1087 // Always try to send the queued RESET because this call indicates that the |
1086 // last local RESET or remote RESET has made some progress. | 1088 // last local RESET or remote RESET has made some progress. |
1087 SendQueuedStreamResets(); | 1089 SendQueuedStreamResets(); |
1088 } | 1090 } |
1089 | 1091 |
1090 } // namespace cricket | 1092 } // namespace cricket |
OLD | NEW |