From f72440712b0a3e22974704777d1f56bdb11a1b4e Mon Sep 17 00:00:00 2001 From: Alexey Khit Date: Wed, 2 Nov 2022 12:47:26 +0300 Subject: [PATCH] Add timeout to GetPublicIP func --- pkg/webrtc/helper.go | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/pkg/webrtc/helper.go b/pkg/webrtc/helper.go index cd1e9cb8..284f01c1 100644 --- a/pkg/webrtc/helper.go +++ b/pkg/webrtc/helper.go @@ -63,11 +63,20 @@ func LookupIP(address string) (string, error) { // GetPublicIP example from https://github.com/pion/stun func GetPublicIP() (net.IP, error) { - c, err := stun.Dial("udp", "stun.l.google.com:19302") + conn, err := net.Dial("udp", "stun.l.google.com:19302") if err != nil { return nil, err } + c, err := stun.NewClient(conn) + if err != nil { + return nil, err + } + + if err = conn.SetDeadline(time.Now().Add(time.Second * 3)); err != nil { + return nil, err + } + var res stun.Event message := stun.MustBuild(stun.TransactionID, stun.BindingRequest)