File tree Expand file tree Collapse file tree 2 files changed +15
-7
lines changed
Expand file tree Collapse file tree 2 files changed +15
-7
lines changed Original file line number Diff line number Diff 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 {
Original file line number Diff line number Diff 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 ())
You can’t perform that action at this time.
0 commit comments