Skip to content

Commit a170ed1

Browse files
committed
Add client config param IgnoreTURNResolveErrors
1 parent 51f0d62 commit a170ed1

File tree

2 files changed

+15
-7
lines changed

2 files changed

+15
-7
lines changed

client.go

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -47,6 +47,8 @@ type ClientConfig struct {
4747
Conn net.PacketConn // Listening socket (net.PacketConn)
4848
Net transport.Net
4949
LoggerFactory logging.LoggerFactory
50+
51+
IgnoreTURNResolveErrors bool // TURN server address is not required for some configurations (e.g. proxy)
5052
}
5153

5254
// Client is a STUN server client.
@@ -114,10 +116,13 @@ func NewClient(config *ClientConfig) (*Client, error) {
114116
if len(config.TURNServerAddr) > 0 {
115117
turnServ, err = config.Net.ResolveUDPAddr("udp4", config.TURNServerAddr)
116118
if err != nil {
117-
return nil, err
119+
if !config.IgnoreTURNResolveErrors {
120+
return nil, err
121+
}
122+
log.Debugf("Failed to resolve TURN server %s: %s", config.TURNServerAddr, err)
123+
} else {
124+
log.Debugf("Resolved TURN server %s to %s", config.TURNServerAddr, turnServ)
118125
}
119-
120-
log.Debugf("Resolved TURN server %s to %s", config.TURNServerAddr, turnServ)
121126
}
122127

123128
client := &Client{

client_test.go

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -291,10 +291,13 @@ func TestTCPClientWithoutAddress(t *testing.T) {
291291
assert.NoError(t, err)
292292

293293
client, err := NewClient(&ClientConfig{
294-
Conn: NewSTUNConn(conn),
295-
Username: "foo",
296-
Password: "pass",
297-
RTO: time.Nanosecond,
294+
TURNServerAddr: "unresolvable.turn.server.address:13478",
295+
Conn: NewSTUNConn(conn),
296+
Username: "foo",
297+
Password: "pass",
298+
RTO: time.Nanosecond,
299+
300+
IgnoreTURNResolveErrors: true,
298301
})
299302
assert.NoError(t, err)
300303
assert.NoError(t, client.Listen())

0 commit comments

Comments
 (0)