diff options
| author | jwijenbergh <jeroenwijenbergh@protonmail.com> | 2023-09-01 16:19:29 +0200 |
|---|---|---|
| committer | Jeroen Wijenbergh <46386452+jwijenbergh@users.noreply.github.com> | 2023-09-01 17:15:52 +0000 |
| commit | 0c14a204ae13f7692a5708451b40f87832f7388a (patch) | |
| tree | 0d9c48397e143adcce2b227c7cf7a6fc48f82adf /internal/server/secureinternet.go | |
| parent | 1ee57ae13a4d42c44fe6259f2a2d48f0cd20519a (diff) | |
Client + Server: Increase endpoint update frequency and update secure internet handling
Diffstat (limited to 'internal/server/secureinternet.go')
| -rw-r--r-- | internal/server/secureinternet.go | 37 |
1 files changed, 37 insertions, 0 deletions
diff --git a/internal/server/secureinternet.go b/internal/server/secureinternet.go index 9b1d394..3c40253 100644 --- a/internal/server/secureinternet.go +++ b/internal/server/secureinternet.go @@ -1,6 +1,7 @@ package server import ( + "github.com/eduvpn/eduvpn-common/internal/discovery" "github.com/eduvpn/eduvpn-common/internal/oauth" "github.com/eduvpn/eduvpn-common/internal/util" "github.com/eduvpn/eduvpn-common/types" @@ -136,3 +137,39 @@ func (s *SecureInternetHomeServer) init( s.Auth.Init(b.URL, b.Endpoints.API.V3.Authorization, b.Endpoints.API.V3.Token) return nil } + +func (s *SecureInternetHomeServer) RefreshEndpoints(disco *discovery.Discovery) error { + // update OAuth for home server + auth := s.OAuth() + if auth != nil && s.HomeOrganizationID != "" { + _, srv, err := disco.SecureHomeArgs(s.HomeOrganizationID) + if err != nil { + return err + } + if hb, ok := s.BaseMap[srv.CountryCode]; ok && hb != nil { + err := hb.InitializeEndpoints() + if err != nil { + return err + } + auth.BaseAuthorizationURL = hb.Endpoints.API.V3.Authorization + auth.TokenURL = hb.Endpoints.API.V3.Token + } + // already updated, return + if srv.CountryCode == s.CurrentLocation { + return nil + } + } + + // refresh the current location endpoints + // Re-initialize the endpoints + b, err := s.Base() + if err != nil { + return err + } + + err = b.InitializeEndpoints() + if err != nil { + return err + } + return nil +} |
