Browse Source

Fixed DataChannel recv queue limit

Paul-Louis Ageneau 5 years ago
parent
commit
96f08cb3c8
2 changed files with 4 additions and 6 deletions
  1. 0 4
      include/rtc/include.hpp
  2. 4 2
      src/datachannel.cpp

+ 0 - 4
include/rtc/include.hpp

@@ -43,10 +43,6 @@ using std::uint8_t;
 
 const size_t MAX_NUMERICNODE_LEN = 48; // Max IPv6 string representation length
 const size_t MAX_NUMERICSERV_LEN = 6;  // Max port string representation length
-
-const size_t RECV_QUEUE_SIZE = 16; // DataChannel receive queue size in messages
-                                   // (0 means unlimited)
-
 const uint16_t DEFAULT_SCTP_PORT = 5000; // SCTP port to use by default
 
 template <class... Ts> struct overloaded : Ts... { using Ts::operator()...; };

+ 4 - 2
src/datachannel.cpp

@@ -57,18 +57,20 @@ struct CloseMessage {
 };
 #pragma pack(pop)
 
+const size_t RECV_QUEUE_LIMIT = 1024 * 1024; // 1 MiB
+
 DataChannel::DataChannel(shared_ptr<PeerConnection> pc, unsigned int stream, string label,
                          string protocol, Reliability reliability)
     : mPeerConnection(std::move(pc)), mStream(stream), mLabel(std::move(label)),
       mProtocol(std::move(protocol)),
       mReliability(std::make_shared<Reliability>(std::move(reliability))),
-      mRecvQueue(RECV_QUEUE_SIZE, message_size_func) {}
+      mRecvQueue(RECV_QUEUE_LIMIT, message_size_func) {}
 
 DataChannel::DataChannel(shared_ptr<PeerConnection> pc, shared_ptr<SctpTransport> transport,
                          unsigned int stream)
     : mPeerConnection(std::move(pc)), mSctpTransport(transport), mStream(stream),
       mReliability(std::make_shared<Reliability>()),
-      mRecvQueue(RECV_QUEUE_SIZE, message_size_func) {}
+      mRecvQueue(RECV_QUEUE_LIMIT, message_size_func) {}
 
 DataChannel::~DataChannel() { close(); }