From a2a528c20be8ed0e1260991aec0bfd9b680a6981 Mon Sep 17 00:00:00 2001 From: Youjie Zhou Date: Sun, 19 Jan 2025 08:48:04 -0800 Subject: [PATCH] Add PortAllocator min/max ports to JAVA API This helps Java clients control the port range. Bug: None Change-Id: Icfe16cdfac4e08cd21346a3cb4bb65b9fb2fa0d0 Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/374841 Reviewed-by: Harald Alvestrand Commit-Queue: Youjie Zhou Reviewed-by: Jonas Oreland Cr-Commit-Position: refs/heads/main@{#43789} --- sdk/android/api/org/webrtc/PeerConnection.java | 16 ++++++++++++++++ sdk/android/src/jni/pc/peer_connection.cc | 4 ++++ 2 files changed, 20 insertions(+) diff --git a/sdk/android/api/org/webrtc/PeerConnection.java b/sdk/android/api/org/webrtc/PeerConnection.java index a8f006cf15..1f56425c94 100644 --- a/sdk/android/api/org/webrtc/PeerConnection.java +++ b/sdk/android/api/org/webrtc/PeerConnection.java @@ -579,6 +579,10 @@ public class PeerConnection { */ public boolean offerExtmapAllowMixed; + /** Limit ports used for connections. */ + public int portAllocatorMinPort; + public int portAllocatorMaxPort; + /** Control port allocation, including what kinds of ports are allocated. */ @PortAllocatorFlags public int portAllocatorFlags; @@ -623,6 +627,8 @@ public class PeerConnection { turnLoggingId = null; enableImplicitRollback = false; offerExtmapAllowMixed = true; + portAllocatorMinPort = 0; + portAllocatorMaxPort = 0; portAllocatorFlags = 0; } @@ -833,6 +839,16 @@ public class PeerConnection { return offerExtmapAllowMixed; } + @CalledByNative("RTCConfiguration") + int getPortAllocatorMinPort() { + return portAllocatorMinPort; + } + + @CalledByNative("RTCConfiguration") + int getPortAllocatorMaxPort() { + return portAllocatorMaxPort; + } + @CalledByNative("RTCConfiguration") @PortAllocatorFlags int getPortAllocatorFlags() { diff --git a/sdk/android/src/jni/pc/peer_connection.cc b/sdk/android/src/jni/pc/peer_connection.cc index 67a2bd1863..31bee1bcf8 100644 --- a/sdk/android/src/jni/pc/peer_connection.cc +++ b/sdk/android/src/jni/pc/peer_connection.cc @@ -284,6 +284,10 @@ void JavaToNativeRTCConfiguration( rtc_config->turn_logging_id = JavaToNativeString(jni, j_turn_logging_id); } + rtc_config->port_allocator_config.min_port = + Java_RTCConfiguration_getPortAllocatorMinPort(jni, j_rtc_config); + rtc_config->port_allocator_config.max_port = + Java_RTCConfiguration_getPortAllocatorMaxPort(jni, j_rtc_config); rtc_config->port_allocator_config.flags = Java_RTCConfiguration_getPortAllocatorFlags(jni, j_rtc_config); }