Merge pull request #2064 from jmelancondev/webrtc/ice-server-urls-list

webrtc: Fix ice_servers parsing for a list of URLs
This commit is contained in:
Alex X
2026-02-03 13:42:13 +03:00
committed by GitHub
2 changed files with 14 additions and 2 deletions
+8
View File
@@ -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)
}
+6 -2
View File
@@ -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}
}