diff options
author | henrika@webrtc.org <henrika@webrtc.org@4adac7df-926f-26a2-2b94-8c16560cd09d> | 2014-01-14 10:00:58 +0000 |
---|---|---|
committer | henrika@webrtc.org <henrika@webrtc.org@4adac7df-926f-26a2-2b94-8c16560cd09d> | 2014-01-14 10:00:58 +0000 |
commit | 8485ec698cd13d65354e2f81132b5763a3d216a4 (patch) | |
tree | e22c26e78547acde915e1179787f29ca5f9cbb7b /media/sctp/sctpdataengine.cc | |
parent | 26c6b8ea358840e7139ea2cfa2b2726b337819f5 (diff) | |
download | talk-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.cc | 47 |
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 |