Skip to content

Commit 550a684

Browse files
committed
Check server URL
1 parent 9526ef0 commit 550a684

File tree

2 files changed

+16
-4
lines changed

2 files changed

+16
-4
lines changed

client.go

+10-3
Original file line numberDiff line numberDiff line change
@@ -5,12 +5,14 @@ import (
55
"errors"
66
"io"
77
"net/http"
8+
"net/url"
89

910
"github.com/pion/interceptor"
1011
"github.com/pion/webrtc/v4"
1112
)
1213

1314
var (
15+
ErrInvalidURL = errors.New("Invalid server URL")
1416
ErrFailedToConnect = errors.New("Failed to connect")
1517
ErrNoLocationHeader = errors.New("No location header in the response")
1618
ErrFailedToDisconnect = errors.New("Failed to remove server resource")
@@ -24,11 +26,16 @@ type Client struct {
2426
location string
2527
}
2628

27-
func New(url string, pcConfig webrtc.Configuration) (*Client, error) {
29+
func New(urlString string, pcConfig webrtc.Configuration) (*Client, error) {
30+
_, err := url.ParseRequestURI(urlString)
31+
if err != nil {
32+
return nil, ErrInvalidURL
33+
}
34+
2835
interceptorRegistry := &interceptor.Registry{}
2936
mediaEngine := &webrtc.MediaEngine{}
3037

31-
err := mediaEngine.RegisterDefaultCodecs()
38+
err = mediaEngine.RegisterDefaultCodecs()
3239
if err != nil {
3340
return nil, err
3441
}
@@ -47,7 +54,7 @@ func New(url string, pcConfig webrtc.Configuration) (*Client, error) {
4754

4855
client := &Client{
4956
Pc: pc,
50-
url: url,
57+
url: urlString,
5158
pcConfig: pcConfig,
5259
}
5360

client_test.go

+6-1
Original file line numberDiff line numberDiff line change
@@ -12,10 +12,15 @@ import (
1212
)
1313

1414
func TestNew(t *testing.T) {
15-
_, err := New("", webrtc.Configuration{})
15+
_, err := New("http://example.com", webrtc.Configuration{})
1616
if err != nil {
1717
t.Fatalf("New returned an error %v", err)
1818
}
19+
20+
_, err = New("", webrtc.Configuration{})
21+
if err != ErrInvalidURL {
22+
t.Fatalf("Expected %s, got: %v", ErrInvalidURL, err)
23+
}
1924
}
2025

2126
func TestConnect(t *testing.T) {

0 commit comments

Comments
 (0)