From d2c4e4484436207284a87d858e44e9fcaed2807f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jos=C3=A9=20M=C3=A9lan=C3=A7on?= Date: Sat, 31 Jan 2026 14:17:25 -0500 Subject: [PATCH] webrtc: Fix ice_servers parsing for a list of URLs --- pkg/webrtc/client_test.go | 8 ++++++++ pkg/webrtc/helpers.go | 8 ++++++-- 2 files changed, 14 insertions(+), 2 deletions(-) diff --git a/pkg/webrtc/client_test.go b/pkg/webrtc/client_test.go index ce50ba65..5d195a20 100644 --- a/pkg/webrtc/client_test.go +++ b/pkg/webrtc/client_test.go @@ -107,4 +107,12 @@ func TestUnmarshalICEServers(t *testing.T) { servers, err := UnmarshalICEServers([]byte(s)) require.Nil(t, err) require.Len(t, servers, 2) + require.Equal(t, []string{"xxx"}, servers[0].URLs) + + s = `[{"urls":"xxx"},{"urls":["yyy","zzz"]}]` + servers, err = UnmarshalICEServers([]byte(s)) + require.Nil(t, err) + require.Len(t, servers, 2) + require.Equal(t, []string{"xxx"}, servers[0].URLs) + require.Equal(t, []string{"yyy", "zzz"}, servers[1].URLs) } diff --git a/pkg/webrtc/helpers.go b/pkg/webrtc/helpers.go index bac5087c..167697f0 100644 --- a/pkg/webrtc/helpers.go +++ b/pkg/webrtc/helpers.go @@ -331,8 +331,12 @@ func UnmarshalICEServers(b []byte) ([]webrtc.ICEServer, error) { } switch v := src[i].URLs.(type) { - case []string: - srv.URLs = v + case []any: + for _, u := range v { + if s, ok := u.(string); ok { + srv.URLs = append(srv.URLs, s) + } + } case string: srv.URLs = []string{v} }