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 143 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
154 return PPID_CONTROL; | 154 return PPID_CONTROL; |
155 case cricket::DMT_BINARY: | 155 case cricket::DMT_BINARY: |
156 return PPID_BINARY_LAST; | 156 return PPID_BINARY_LAST; |
157 case cricket::DMT_TEXT: | 157 case cricket::DMT_TEXT: |
158 return PPID_TEXT_LAST; | 158 return PPID_TEXT_LAST; |
159 } | 159 } |
160 } | 160 } |
161 | 161 |
162 bool GetDataMediaType(PayloadProtocolIdentifier ppid, | 162 bool GetDataMediaType(PayloadProtocolIdentifier ppid, |
163 cricket::DataMessageType* dest) { | 163 cricket::DataMessageType* dest) { |
164 RTC_DCHECK(dest != NULL); | 164 RTC_DCHECK(dest != nullptr); |
165 switch (ppid) { | 165 switch (ppid) { |
166 case PPID_BINARY_PARTIAL: | 166 case PPID_BINARY_PARTIAL: |
167 case PPID_BINARY_LAST: | 167 case PPID_BINARY_LAST: |
168 *dest = cricket::DMT_BINARY; | 168 *dest = cricket::DMT_BINARY; |
169 return true; | 169 return true; |
170 | 170 |
171 case PPID_TEXT_PARTIAL: | 171 case PPID_TEXT_PARTIAL: |
172 case PPID_TEXT_LAST: | 172 case PPID_TEXT_LAST: |
173 *dest = cricket::DMT_TEXT; | 173 *dest = cricket::DMT_TEXT; |
174 return true; | 174 return true; |
(...skipping 12 matching lines...) Expand all Loading... |
187 } | 187 } |
188 | 188 |
189 // Log the packet in text2pcap format, if log level is at LS_VERBOSE. | 189 // Log the packet in text2pcap format, if log level is at LS_VERBOSE. |
190 void VerboseLogPacket(const void* data, size_t length, int direction) { | 190 void VerboseLogPacket(const void* data, size_t length, int direction) { |
191 if (LOG_CHECK_LEVEL(LS_VERBOSE) && length > 0) { | 191 if (LOG_CHECK_LEVEL(LS_VERBOSE) && length > 0) { |
192 char* dump_buf; | 192 char* dump_buf; |
193 // Some downstream project uses an older version of usrsctp that expects | 193 // Some downstream project uses an older version of usrsctp that expects |
194 // a non-const "void*" as first parameter when dumping the packet, so we | 194 // a non-const "void*" as first parameter when dumping the packet, so we |
195 // need to cast the const away here to avoid a compiler error. | 195 // need to cast the const away here to avoid a compiler error. |
196 if ((dump_buf = usrsctp_dumppacket(const_cast<void*>(data), length, | 196 if ((dump_buf = usrsctp_dumppacket(const_cast<void*>(data), length, |
197 direction)) != NULL) { | 197 direction)) != nullptr) { |
198 LOG(LS_VERBOSE) << dump_buf; | 198 LOG(LS_VERBOSE) << dump_buf; |
199 usrsctp_freedumpbuffer(dump_buf); | 199 usrsctp_freedumpbuffer(dump_buf); |
200 } | 200 } |
201 } | 201 } |
202 } | 202 } |
203 | 203 |
204 } // namespace | 204 } // namespace |
205 | 205 |
206 namespace cricket { | 206 namespace cricket { |
207 | 207 |
(...skipping 328 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
536 spa.sendv_prinfo.pr_value = params.max_rtx_count; | 536 spa.sendv_prinfo.pr_value = params.max_rtx_count; |
537 } else { | 537 } else { |
538 spa.sendv_flags |= SCTP_SEND_PRINFO_VALID; | 538 spa.sendv_flags |= SCTP_SEND_PRINFO_VALID; |
539 spa.sendv_prinfo.pr_policy = SCTP_PR_SCTP_TTL; | 539 spa.sendv_prinfo.pr_policy = SCTP_PR_SCTP_TTL; |
540 spa.sendv_prinfo.pr_value = params.max_rtx_ms; | 540 spa.sendv_prinfo.pr_value = params.max_rtx_ms; |
541 } | 541 } |
542 } | 542 } |
543 | 543 |
544 // We don't fragment. | 544 // We don't fragment. |
545 send_res = usrsctp_sendv( | 545 send_res = usrsctp_sendv( |
546 sock_, payload.data(), static_cast<size_t>(payload.size()), NULL, 0, &spa, | 546 sock_, payload.data(), static_cast<size_t>(payload.size()), nullptr, 0, |
547 rtc::checked_cast<socklen_t>(sizeof(spa)), SCTP_SENDV_SPA, 0); | 547 &spa, rtc::checked_cast<socklen_t>(sizeof(spa)), SCTP_SENDV_SPA, 0); |
548 if (send_res < 0) { | 548 if (send_res < 0) { |
549 if (errno == SCTP_EWOULDBLOCK) { | 549 if (errno == SCTP_EWOULDBLOCK) { |
550 *result = SDR_BLOCK; | 550 *result = SDR_BLOCK; |
551 ready_to_send_data_ = false; | 551 ready_to_send_data_ = false; |
552 LOG(LS_INFO) << debug_name_ << "->SendData(...): EWOULDBLOCK returned"; | 552 LOG(LS_INFO) << debug_name_ << "->SendData(...): EWOULDBLOCK returned"; |
553 } else { | 553 } else { |
554 LOG_ERRNO(LS_ERROR) << "ERROR:" << debug_name_ << "->SendData(...): " | 554 LOG_ERRNO(LS_ERROR) << "ERROR:" << debug_name_ << "->SendData(...): " |
555 << " usrsctp_sendv: "; | 555 << " usrsctp_sendv: "; |
556 } | 556 } |
557 return false; | 557 return false; |
(...skipping 336 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
894 void SctpTransport::OnInboundPacketFromSctpToChannel( | 894 void SctpTransport::OnInboundPacketFromSctpToChannel( |
895 const rtc::CopyOnWriteBuffer& buffer, | 895 const rtc::CopyOnWriteBuffer& buffer, |
896 ReceiveDataParams params, | 896 ReceiveDataParams params, |
897 int flags) { | 897 int flags) { |
898 RTC_DCHECK_RUN_ON(network_thread_); | 898 RTC_DCHECK_RUN_ON(network_thread_); |
899 LOG(LS_VERBOSE) << debug_name_ << "->OnInboundPacketFromSctpToChannel(...): " | 899 LOG(LS_VERBOSE) << debug_name_ << "->OnInboundPacketFromSctpToChannel(...): " |
900 << "Received SCTP data:" | 900 << "Received SCTP data:" |
901 << " sid=" << params.sid | 901 << " sid=" << params.sid |
902 << " notification: " << (flags & MSG_NOTIFICATION) | 902 << " notification: " << (flags & MSG_NOTIFICATION) |
903 << " length=" << buffer.size(); | 903 << " length=" << buffer.size(); |
904 // Sending a packet with data == NULL (no data) is SCTPs "close the | 904 // Sending a packet with data == null (no data) is SCTPs "close the |
905 // connection" message. This sets sock_ = NULL; | 905 // connection" message. This sets sock_ = null; |
906 if (!buffer.size() || !buffer.data()) { | 906 if (!buffer.size() || !buffer.data()) { |
907 LOG(LS_INFO) << debug_name_ << "->OnInboundPacketFromSctpToChannel(...): " | 907 LOG(LS_INFO) << debug_name_ << "->OnInboundPacketFromSctpToChannel(...): " |
908 "No data, closing."; | 908 "No data, closing."; |
909 return; | 909 return; |
910 } | 910 } |
911 if (flags & MSG_NOTIFICATION) { | 911 if (flags & MSG_NOTIFICATION) { |
912 OnNotificationFromSctp(buffer); | 912 OnNotificationFromSctp(buffer); |
913 } else { | 913 } else { |
914 OnDataFromSctpToChannel(params, buffer); | 914 OnDataFromSctpToChannel(params, buffer); |
915 } | 915 } |
(...skipping 166 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1082 } | 1082 } |
1083 } | 1083 } |
1084 } | 1084 } |
1085 | 1085 |
1086 // Always try to send the queued RESET because this call indicates that the | 1086 // Always try to send the queued RESET because this call indicates that the |
1087 // last local RESET or remote RESET has made some progress. | 1087 // last local RESET or remote RESET has made some progress. |
1088 SendQueuedStreamResets(); | 1088 SendQueuedStreamResets(); |
1089 } | 1089 } |
1090 | 1090 |
1091 } // namespace cricket | 1091 } // namespace cricket |
OLD | NEW |