From f91dae53554b067d90c7cb7c766fa766866c47e8 Mon Sep 17 00:00:00 2001 From: 0xdcarns Date: Wed, 27 Oct 2021 10:02:39 -0400 Subject: [PATCH] refactored unneccesary db call --- logic/server.go | 43 ++++++++++------------------- netclient/ncutils/netclientutils.go | 1 + 2 files changed, 16 insertions(+), 28 deletions(-) diff --git a/logic/server.go b/logic/server.go index 8bed02cc..c2b738d2 100644 --- a/logic/server.go +++ b/logic/server.go @@ -126,7 +126,7 @@ func ServerJoin(network string, serverID string, privateKey string) error { if err = StorePrivKey(node.ID, privateKey); err != nil { return err } - if err = ServerPush(node.MacAddress, node.Network); err != nil { + if err = ServerPush(node); err != nil { return err } @@ -154,7 +154,7 @@ func ServerCheckin(mac string, network string) error { return err } - newNode, err = ServerPull(mac, network, false) + newNode, err = ServerPull(&serverNode, false) if isDeleteError(err) { return ServerLeave(mac, network) } else if err != nil { @@ -166,22 +166,16 @@ func ServerCheckin(mac string, network string) error { return errors.New("node has been removed") } - return ServerPush(newNode.MacAddress, newNode.Network) + return ServerPush(newNode) } // ServerPull - pulls current config/peers for server -func ServerPull(mac string, network string, onErr bool) (*models.Node, error) { +func ServerPull(serverNode *models.Node, onErr bool) (*models.Node, error) { - var serverNode models.Node var err error - serverNode, err = GetNode(mac, network) - if err != nil { - return &serverNode, err - } - if serverNode.IPForwarding == "yes" { if err = setIPForwardingLinux(); err != nil { - return &serverNode, err + return serverNode, err } } serverNode.OS = runtime.GOOS @@ -199,38 +193,31 @@ func ServerPull(mac string, network string, onErr bool) (*models.Node, error) { Log("removed old interface "+oldIfaceName, 1) } serverNode.PullChanges = "no" - if err = setWGConfig(serverNode, network, false); err != nil { - return &serverNode, err + if err = setWGConfig(*serverNode, serverNode.Network, false); err != nil { + return serverNode, err } // handle server side update - if err = UpdateNode(&serverNode, &serverNode); err != nil { - return &serverNode, err + if err = UpdateNode(serverNode, serverNode); err != nil { + return serverNode, err } } else { - if err = setWGConfig(serverNode, network, true); err != nil { + if err = setWGConfig(*serverNode, serverNode.Network, true); err != nil { if errors.Is(err, os.ErrNotExist) { - return ServerPull(serverNode.MacAddress, serverNode.Network, true) + return ServerPull(serverNode, true) } else { - return &serverNode, err + return serverNode, err } } } - return &serverNode, nil + return serverNode, nil } // ServerPush - pushes config changes for server checkins/join -func ServerPush(mac string, network string) error { - - var serverNode models.Node - var err error - serverNode, err = GetNode(mac, network) - if err != nil /* && !ncutils.IsEmptyRecord(err) May not be necessary */ { - return err - } +func ServerPush(serverNode *models.Node) error { serverNode.OS = runtime.GOOS serverNode.SetLastCheckIn() - return UpdateNode(&serverNode, &serverNode) + return UpdateNode(serverNode, serverNode) } // ServerLeave - removes a server node diff --git a/netclient/ncutils/netclientutils.go b/netclient/ncutils/netclientutils.go index e9b4102b..764406e2 100644 --- a/netclient/ncutils/netclientutils.go +++ b/netclient/ncutils/netclientutils.go @@ -271,6 +271,7 @@ func GetFreePort(rangestart int32) (int32, error) { if err != nil { return 0, err } + for x := rangestart; x <= 65535; x++ { conflict := false for _, i := range devices {