summaryrefslogtreecommitdiff
path: root/internal/server
diff options
context:
space:
mode:
authorjwijenbergh <jeroenwijenbergh@protonmail.com>2023-01-06 14:53:34 +0100
committerjwijenbergh <jeroenwijenbergh@protonmail.com>2023-01-06 14:59:10 +0100
commitff70e291c96de23ae4dab20f9c4e9f895eee53d5 (patch)
treefc46d7eced911fb083fa3c58bcd6d173e3afa82d /internal/server
parent965e36a91ca4eb6614ee71d0352ef42b465eb54f (diff)
Refactor: Re-use a HTTP client
Diffstat (limited to 'internal/server')
-rw-r--r--internal/server/api.go10
-rw-r--r--internal/server/base.go2
2 files changed, 10 insertions, 2 deletions
diff --git a/internal/server/api.go b/internal/server/api.go
index 2ce3db5..1ac3164 100644
--- a/internal/server/api.go
+++ b/internal/server/api.go
@@ -19,7 +19,8 @@ func APIGetEndpoints(baseURL string) (*Endpoints, error) {
}
u.Path = path.Join(u.Path, "/.well-known/vpn-user-portal")
- _, body, err := httpw.Get(u.String())
+ c := httpw.NewClient()
+ _, body, err := c.Get(u.String())
if err != nil {
return nil, errors.WrapPrefix(err, "failed getting server endpoints", 0)
}
@@ -68,7 +69,12 @@ func apiAuthorized(
} else {
opts.Headers = http.Header{key: {val}}
}
- return httpw.MethodWithOpts(method, u.String(), opts)
+
+ // Create a client if it doesn't exist
+ if b.httpClient == nil {
+ b.httpClient = httpw.NewClient()
+ }
+ return b.httpClient.Do(method, u.String(), opts)
}
func apiAuthorizedRetry(
diff --git a/internal/server/base.go b/internal/server/base.go
index dd15aff..55fff09 100644
--- a/internal/server/base.go
+++ b/internal/server/base.go
@@ -2,6 +2,7 @@ package server
import (
"time"
+ "github.com/eduvpn/eduvpn-common/internal/http"
)
// Base is the base type for servers.
@@ -14,6 +15,7 @@ type Base struct {
StartTime time.Time `json:"start_time"`
EndTime time.Time `json:"expire_time"`
Type string `json:"server_type"`
+ httpClient *http.Client
}
func (b *Base) InitializeEndpoints() error {