Browse Source

add timeout to http.get

Matthew R. Kasun 3 years ago
parent
commit
c8ec507484
3 changed files with 14 additions and 3 deletions
  1. 5 1
      auth/google.go
  2. 4 1
      netclient/ncutils/netclientutils.go
  3. 5 1
      servercfg/serverconf.go

+ 5 - 1
auth/google.go

@@ -5,6 +5,7 @@ import (
 	"fmt"
 	"fmt"
 	"io"
 	"io"
 	"net/http"
 	"net/http"
+	"time"
 
 
 	"github.com/gravitl/netmaker/logger"
 	"github.com/gravitl/netmaker/logger"
 	"github.com/gravitl/netmaker/logic"
 	"github.com/gravitl/netmaker/logic"
@@ -99,7 +100,10 @@ func getGoogleUserInfo(state string, code string) (*googleOauthUser, error) {
 	if err != nil {
 	if err != nil {
 		return nil, fmt.Errorf("failed to convert token to json: %s", err.Error())
 		return nil, fmt.Errorf("failed to convert token to json: %s", err.Error())
 	}
 	}
-	response, err := http.Get("https://www.googleapis.com/oauth2/v2/userinfo?access_token=" + token.AccessToken)
+	client := &http.Client{
+		Timeout: time.Second * 30,
+	}
+	response, err := client.Get("https://www.googleapis.com/oauth2/v2/userinfo?access_token=" + token.AccessToken)
 	if err != nil {
 	if err != nil {
 		return nil, fmt.Errorf("failed getting user info: %s", err.Error())
 		return nil, fmt.Errorf("failed getting user info: %s", err.Error())
 	}
 	}

+ 4 - 1
netclient/ncutils/netclientutils.go

@@ -130,7 +130,10 @@ func GetPublicIP() (string, error) {
 	endpoint := ""
 	endpoint := ""
 	var err error
 	var err error
 	for _, ipserver := range iplist {
 	for _, ipserver := range iplist {
-		resp, err := http.Get(ipserver)
+		client := &http.Client{
+			Timeout: time.Second * 10,
+		}
+		resp, err := client.Get(ipserver)
 		if err != nil {
 		if err != nil {
 			continue
 			continue
 		}
 		}

+ 5 - 1
servercfg/serverconf.go

@@ -7,6 +7,7 @@ import (
 	"os"
 	"os"
 	"strconv"
 	"strconv"
 	"strings"
 	"strings"
+	"time"
 
 
 	"github.com/gravitl/netmaker/config"
 	"github.com/gravitl/netmaker/config"
 )
 )
@@ -411,7 +412,10 @@ func GetPublicIP() (string, error) {
 
 
 	iplist := []string{"https://ip.server.gravitl.com", "https://ifconfig.me", "https://api.ipify.org", "https://ipinfo.io/ip"}
 	iplist := []string{"https://ip.server.gravitl.com", "https://ifconfig.me", "https://api.ipify.org", "https://ipinfo.io/ip"}
 	for _, ipserver := range iplist {
 	for _, ipserver := range iplist {
-		resp, err := http.Get(ipserver)
+		client := &http.Client{
+			Timeout: time.Second * 10,
+		}
+		resp, err := client.Get(ipserver)
 		if err != nil {
 		if err != nil {
 			continue
 			continue
 		}
 		}