Skip to content

Commit 6cde0e1

Browse files
committed
feat: Configurable limit for the number of data channels.
1 parent aaee822 commit 6cde0e1

File tree

3 files changed

+12
-0
lines changed

3 files changed

+12
-0
lines changed

jvb/src/main/java/org/jitsi/videobridge/datachannel/DataChannelStack.java

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@
1818

1919
import org.jitsi.utils.logging2.*;
2020
import org.jitsi.videobridge.datachannel.protocol.*;
21+
import org.jitsi.videobridge.sctp.*;
2122

2223
import java.nio.*;
2324
import java.util.*;
@@ -60,6 +61,12 @@ public void onIncomingDataChannelPacket(ByteBuffer data, int sid, int ppid)
6061
if (message instanceof OpenChannelMessage)
6162
{
6263
logger.debug("Received data channel open message");
64+
if (dataChannels.size() >= SctpConfig.config.getMaxChannels())
65+
{
66+
logger.warn("Data channel limit exceeded.");
67+
return;
68+
}
69+
6370
OpenChannelMessage openChannelMessage = (OpenChannelMessage)message;
6471
// Remote side wants to open a channel
6572
DataChannel dataChannel = new RemotelyOpenedDataChannel(

jvb/src/main/kotlin/org/jitsi/videobridge/sctp/SctpConfig.kt

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,8 @@ class SctpConfig private constructor() {
2424
val enabled: Boolean by config { "videobridge.sctp.enabled".from(JitsiConfig.newConfig) }
2525
fun enabled() = enabled
2626

27+
val maxChannels: Int by config { "videobridge.sctp.max-channels".from(JitsiConfig.newConfig) }
28+
2729
companion object {
2830
@JvmField
2931
val config = SctpConfig()

jvb/src/main/resources/reference.conf

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -246,6 +246,9 @@ videobridge {
246246
sctp {
247247
// Whether SCTP data channels are enabled.
248248
enabled = true
249+
250+
// Maximum number of data channels per connection
251+
max-channels = 1
249252
}
250253
stats {
251254
// The interval at which stats are gathered.

0 commit comments

Comments
 (0)