summaryrefslogtreecommitdiff
path: root/media/sctp/sctpdataengine.cc
diff options
context:
space:
mode:
authorhenrika@webrtc.org <henrika@webrtc.org@4adac7df-926f-26a2-2b94-8c16560cd09d>2014-01-14 10:00:58 +0000
committerhenrika@webrtc.org <henrika@webrtc.org@4adac7df-926f-26a2-2b94-8c16560cd09d>2014-01-14 10:00:58 +0000
commit8485ec698cd13d65354e2f81132b5763a3d216a4 (patch)
treee22c26e78547acde915e1179787f29ca5f9cbb7b /media/sctp/sctpdataengine.cc
parent26c6b8ea358840e7139ea2cfa2b2726b337819f5 (diff)
downloadtalk-8485ec698cd13d65354e2f81132b5763a3d216a4.tar.gz
pRevert 5371 "Revert 5367 "Update talk to 59410372.""
> Revert 5367 "Update talk to 59410372." > > > Update talk to 59410372. > > > > R=jiayl@webrtc.org, wu@webrtc.org > > > > Review URL: https://webrtc-codereview.appspot.com/6929004 > > TBR=mallinath@webrtc.org > > Review URL: https://webrtc-codereview.appspot.com/6999004 TBR=henrika@webrtc.org Review URL: https://webrtc-codereview.appspot.com/7109004 git-svn-id: http://webrtc.googlecode.com/svn/trunk/talk@5381 4adac7df-926f-26a2-2b94-8c16560cd09d
Diffstat (limited to 'media/sctp/sctpdataengine.cc')
-rw-r--r--media/sctp/sctpdataengine.cc47
1 files changed, 13 insertions, 34 deletions
diff --git a/media/sctp/sctpdataengine.cc b/media/sctp/sctpdataengine.cc
index 16ce9de..03bbdca 100644
--- a/media/sctp/sctpdataengine.cc
+++ b/media/sctp/sctpdataengine.cc
@@ -32,14 +32,12 @@
#include <sstream>
#include <vector>
-#include "talk/app/webrtc/datachannelinterface.h"
#include "talk/base/buffer.h"
#include "talk/base/helpers.h"
#include "talk/base/logging.h"
#include "talk/media/base/codec.h"
#include "talk/media/base/constants.h"
#include "talk/media/base/streamparams.h"
-#include "talk/media/sctp/sctputils.h"
#include "usrsctplib/usrsctp.h"
namespace {
@@ -497,11 +495,17 @@ bool SctpDataMediaChannel::RemoveSendStream(uint32 ssrc) {
}
bool SctpDataMediaChannel::AddRecvStream(const StreamParams& stream) {
- return AddStream(stream);
+ // SCTP DataChannels are always bi-directional and calling AddSendStream will
+ // enable both sending and receiving on the stream. So AddRecvStream is a
+ // no-op.
+ return true;
}
bool SctpDataMediaChannel::RemoveRecvStream(uint32 ssrc) {
- return ResetStream(ssrc);
+ // SCTP DataChannels are always bi-directional and calling RemoveSendStream
+ // will disable both sending and receiving on the stream. So RemoveRecvStream
+ // is a no-op.
+ return true;
}
bool SctpDataMediaChannel::SendData(
@@ -619,34 +623,12 @@ void SctpDataMediaChannel::OnInboundPacketFromSctpToChannel(
void SctpDataMediaChannel::OnDataFromSctpToChannel(
const ReceiveDataParams& params, talk_base::Buffer* buffer) {
- if (open_streams_.find(params.ssrc) == open_streams_.end()) {
- if (params.type == DMT_CONTROL) {
- std::string label;
- webrtc::DataChannelInit config;
- if (ParseDataChannelOpenMessage(*buffer, &label, &config)) {
- config.id = params.ssrc;
- // Do not send the OPEN message for this data channel.
- config.negotiated = true;
- SignalNewStreamReceived(label, config);
-
- // Add the stream immediately.
- StreamParams sparams = StreamParams::CreateLegacy(params.ssrc);
- AddSendStream(sparams);
- AddRecvStream(sparams);
- } else {
- LOG(LS_ERROR) << debug_name_ << "->OnDataFromSctpToChannel(...): "
- << "Received malformed control message";
- }
- } else {
- LOG(LS_WARNING) << debug_name_ << "->OnDataFromSctpToChannel(...): "
- << "Received packet for unknown ssrc: " << params.ssrc;
- }
- return;
- }
-
if (receiving_) {
LOG(LS_VERBOSE) << debug_name_ << "->OnDataFromSctpToChannel(...): "
- << "Posting with length: " << buffer->length();
+ << "Posting with length: " << buffer->length()
+ << " on stream " << params.ssrc;
+ // Reports all received messages to upper layers, no matter whether the sid
+ // is known.
SignalDataReceived(params, buffer->data(), buffer->length());
} else {
LOG(LS_WARNING) << debug_name_ << "->OnDataFromSctpToChannel(...): "
@@ -663,9 +645,7 @@ bool SctpDataMediaChannel::AddStream(const StreamParams& stream) {
const uint32 ssrc = stream.first_ssrc();
if (open_streams_.find(ssrc) != open_streams_.end()) {
- // We usually get an AddSendStream and an AddRecvStream for each stream, so
- // this is really unlikely to be a useful warning message.
- LOG(LS_VERBOSE) << debug_name_ << "->Add(Send|Recv)Stream(...): "
+ LOG(LS_WARNING) << debug_name_ << "->Add(Send|Recv)Stream(...): "
<< "Not adding data stream '" << stream.id
<< "' with ssrc=" << ssrc
<< " because stream is already open.";
@@ -976,5 +956,4 @@ void SctpDataMediaChannel::OnMessage(talk_base::Message* msg) {
}
}
}
-
} // namespace cricket