summaryrefslogtreecommitdiff
path: root/internal/server/api.go
diff options
context:
space:
mode:
Diffstat (limited to 'internal/server/api.go')
-rw-r--r--internal/server/api.go19
1 files changed, 10 insertions, 9 deletions
diff --git a/internal/server/api.go b/internal/server/api.go
index a3d8e31..9f4a9fb 100644
--- a/internal/server/api.go
+++ b/internal/server/api.go
@@ -6,6 +6,7 @@ import (
"fmt"
"net/http"
"net/url"
+ "time"
httpw "github.com/jwijenbergh/eduvpn-common/internal/http"
"github.com/jwijenbergh/eduvpn-common/internal/types"
@@ -76,7 +77,7 @@ func apiAuthorizedRetry(server Server, method string, endpoint string, opts *htt
// Only retry authorized if we get a HTTP 401
if errors.As(bodyErr, &error) && error.Status == 401 {
// Tell the method that the token is expired
- server.GetOAuth().Token.ExpiredTimestamp = util.GenerateTimeSeconds()
+ server.GetOAuth().Token.ExpiredTimestamp = util.GetCurrentTime()
retryHeader, retryBody, retryErr := apiAuthorized(server, method, endpoint, opts)
if retryErr != nil {
return nil, nil, &types.WrappedErrorMessage{Message: errorMessage, Err: retryErr}
@@ -115,7 +116,7 @@ func APIInfo(server Server) error {
return nil
}
-func APIConnectWireguard(server Server, profile_id string, pubkey string, supportsOpenVPN bool) (string, string, int64, error) {
+func APIConnectWireguard(server Server, profile_id string, pubkey string, supportsOpenVPN bool) (string, string, time.Time, error) {
errorMessage := "failed obtaining a WireGuard configuration"
headers := http.Header{
"content-type": {"application/x-www-form-urlencoded"},
@@ -132,14 +133,14 @@ func APIConnectWireguard(server Server, profile_id string, pubkey string, suppor
}
header, connectBody, connectErr := apiAuthorizedRetry(server, http.MethodPost, "/connect", &httpw.HTTPOptionalParams{Headers: headers, Body: urlForm})
if connectErr != nil {
- return "", "", 0, &types.WrappedErrorMessage{Message: errorMessage, Err: connectErr}
+ return "", "", time.Time{}, &types.WrappedErrorMessage{Message: errorMessage, Err: connectErr}
}
expires := header.Get("expires")
pTime, pTimeErr := http.ParseTime(expires)
if pTimeErr != nil {
- return "", "", 0, &types.WrappedErrorMessage{Message: errorMessage, Err: pTimeErr}
+ return "", "", time.Time{}, &types.WrappedErrorMessage{Message: errorMessage, Err: pTimeErr}
}
contentType := header.Get("content-type")
@@ -148,10 +149,10 @@ func APIConnectWireguard(server Server, profile_id string, pubkey string, suppor
if contentType == "application/x-wireguard-profile" {
content = "wireguard"
}
- return string(connectBody), content, pTime.Unix(), nil
+ return string(connectBody), content, pTime, nil
}
-func APIConnectOpenVPN(server Server, profile_id string) (string, int64, error) {
+func APIConnectOpenVPN(server Server, profile_id string) (string, time.Time, error) {
errorMessage := "failed obtaining an OpenVPN configuration"
headers := http.Header{
"content-type": {"application/x-www-form-urlencoded"},
@@ -164,15 +165,15 @@ func APIConnectOpenVPN(server Server, profile_id string) (string, int64, error)
header, connectBody, connectErr := apiAuthorizedRetry(server, http.MethodPost, "/connect", &httpw.HTTPOptionalParams{Headers: headers, Body: urlForm})
if connectErr != nil {
- return "", 0, &types.WrappedErrorMessage{Message: errorMessage, Err: connectErr}
+ return "", time.Time{}, &types.WrappedErrorMessage{Message: errorMessage, Err: connectErr}
}
expires := header.Get("expires")
pTime, pTimeErr := http.ParseTime(expires)
if pTimeErr != nil {
- return "", 0, &types.WrappedErrorMessage{Message: errorMessage, Err: pTimeErr}
+ return "", time.Time{}, &types.WrappedErrorMessage{Message: errorMessage, Err: pTimeErr}
}
- return string(connectBody), pTime.Unix(), nil
+ return string(connectBody), pTime, nil
}
// This needs no further return value as it's best effort