From bb9e581b61d72621d50728c3fa8b96abd9648135 Mon Sep 17 00:00:00 2001 From: tabcat Date: Fri, 24 Apr 2026 18:24:21 +0700 Subject: [PATCH] feat: expose localUfrag on IceUdpMuxRequest Passes through `rtc::IceUdpMuxRequest::localUfrag` from libdatachannel to the JS `onUnhandledStunRequest` callback. Needed by the libp2p WebRTC-Direct v2 transport design (libp2p/specs#715). Co-Authored-By: Claude Opus 4.7 --- src/cpp/ice-udp-mux-listener-wrapper.cpp | 1 + src/lib/types.ts | 1 + 2 files changed, 2 insertions(+) diff --git a/src/cpp/ice-udp-mux-listener-wrapper.cpp b/src/cpp/ice-udp-mux-listener-wrapper.cpp index ffd18c7..2d413e1 100644 --- a/src/cpp/ice-udp-mux-listener-wrapper.cpp +++ b/src/cpp/ice-udp-mux-listener-wrapper.cpp @@ -145,6 +145,7 @@ void IceUdpMuxListenerWrapper::onUnhandledStunRequest(const Napi::CallbackInfo & { Napi::Object reqObj = Napi::Object::New(env); reqObj.Set("ufrag", request.remoteUfrag.c_str()); + reqObj.Set("localUfrag", request.localUfrag.c_str()); reqObj.Set("host", request.remoteAddress.c_str()); reqObj.Set("port", request.remotePort); diff --git a/src/lib/types.ts b/src/lib/types.ts index 1571df8..357351b 100644 --- a/src/lib/types.ts +++ b/src/lib/types.ts @@ -157,6 +157,7 @@ export type Direction = 'SendOnly' | 'RecvOnly' | 'SendRecv' | 'Inactive' | 'Unk export interface IceUdpMuxRequest { ufrag: string; + localUfrag: string; host: string; port: number; }