From c5cb22829d2acaf4d7f755db9b2d753bbdc9314d Mon Sep 17 00:00:00 2001 From: Christoph Haas Date: Mon, 9 Nov 2020 23:36:19 +0100 Subject: [PATCH] wip: many small fixes and improvements... --- internal/server/core.go | 3 +++ internal/server/helper.go | 14 ++++++++++++++ 2 files changed, 17 insertions(+) diff --git a/internal/server/core.go b/internal/server/core.go index 5dffe49..a8aba5f 100644 --- a/internal/server/core.go +++ b/internal/server/core.go @@ -104,6 +104,9 @@ func (s *Server) Setup() error { if err := s.users.InitFromCurrentInterface(); err != nil { return errors.New("unable to initialize user manager") } + if err := s.RestoreWireGuardInterface(); err != nil { + return errors.New("unable to restore wirguard state") + } dir := s.getExecutableDirectory() rDir, _ := filepath.Abs(filepath.Dir(os.Args[0])) diff --git a/internal/server/helper.go b/internal/server/helper.go index 32d9b50..ce91e90 100644 --- a/internal/server/helper.go +++ b/internal/server/helper.go @@ -164,3 +164,17 @@ func (s *Server) DeleteUser(user User) error { return nil } + +func (s *Server) RestoreWireGuardInterface() error { + activeUsers := s.users.GetActiveUsers() + + for i := range activeUsers { + if activeUsers[i].Peer == nil { + if err := s.wg.AddPeer(activeUsers[i].GetPeerConfig()); err != nil { + return err + } + } + } + + return nil +}