summaryrefslogtreecommitdiff
path: root/internal/server
diff options
context:
space:
mode:
authorjwijenbergh <jeroenwijenbergh@protonmail.com>2024-03-07 14:52:17 +0100
committerJeroen Wijenbergh <46386452+jwijenbergh@users.noreply.github.com>2024-03-07 15:19:43 +0100
commit3be9c620fc7e9d7616124b5bcdaafa3d509ae1ff (patch)
tree78f6dfbcc4a93ad17ad6d12fdca338ff77a2851b /internal/server
parent96092bf0f243da114e79d5e491295b69fadf9caa (diff)
Client + Server: Add a way to obtain the cached profiles list
Diffstat (limited to 'internal/server')
-rw-r--r--internal/server/server.go16
1 files changed, 13 insertions, 3 deletions
diff --git a/internal/server/server.go b/internal/server/server.go
index d622aef..97a25b4 100644
--- a/internal/server/server.go
+++ b/internal/server/server.go
@@ -35,10 +35,19 @@ func (s *Servers) NewServer(identifier string, t srvtypes.Type, api *api.API) Se
}
}
-// Profiles gets the profiles for the server
+// Profiles gets the cached profiles from the configuration/state file
+func (s *Server) Profiles() (*srvtypes.Profiles, error) {
+ cfgs, err := s.cfgServer()
+ if err != nil {
+ return nil, err
+ }
+ return &cfgs.Profiles, nil
+}
+
+// FreshProfiles gets the profiles for the server
// It only does a /info network request if the profiles have not been cached
// force indicates whether or not the profiles should be fetched fresh
-func (s *Server) Profiles(ctx context.Context) (*profiles.Info, error) {
+func (s *Server) FreshProfiles(ctx context.Context) (*profiles.Info, error) {
a, err := s.api()
if err != nil {
return nil, err
@@ -48,6 +57,7 @@ func (s *Server) Profiles(ctx context.Context) (*profiles.Info, error) {
if err != nil {
return nil, err
}
+ // Update the profile list in the config
err = s.SetProfileList(prfs.Public())
if err != nil {
return nil, err
@@ -64,7 +74,7 @@ func (s *Server) api() (*api.API, error) {
func (s *Server) findProfile(ctx context.Context, wgSupport bool) (*profiles.Profile, error) {
// Get the profiles by ignoring the cache
- prfs, err := s.Profiles(ctx)
+ prfs, err := s.FreshProfiles(ctx)
if err != nil {
return nil, err
}