refactored unneccesary db call

This commit is contained in:
0xdcarns
2021-10-27 10:02:39 -04:00
parent e4e8f368d6
commit f91dae5355
2 changed files with 16 additions and 28 deletions

View File

@@ -126,7 +126,7 @@ func ServerJoin(network string, serverID string, privateKey string) error {
if err = StorePrivKey(node.ID, privateKey); err != nil { if err = StorePrivKey(node.ID, privateKey); err != nil {
return err return err
} }
if err = ServerPush(node.MacAddress, node.Network); err != nil { if err = ServerPush(node); err != nil {
return err return err
} }
@@ -154,7 +154,7 @@ func ServerCheckin(mac string, network string) error {
return err return err
} }
newNode, err = ServerPull(mac, network, false) newNode, err = ServerPull(&serverNode, false)
if isDeleteError(err) { if isDeleteError(err) {
return ServerLeave(mac, network) return ServerLeave(mac, network)
} else if err != nil { } else if err != nil {
@@ -166,22 +166,16 @@ func ServerCheckin(mac string, network string) error {
return errors.New("node has been removed") return errors.New("node has been removed")
} }
return ServerPush(newNode.MacAddress, newNode.Network) return ServerPush(newNode)
} }
// ServerPull - pulls current config/peers for server // 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 var err error
serverNode, err = GetNode(mac, network)
if err != nil {
return &serverNode, err
}
if serverNode.IPForwarding == "yes" { if serverNode.IPForwarding == "yes" {
if err = setIPForwardingLinux(); err != nil { if err = setIPForwardingLinux(); err != nil {
return &serverNode, err return serverNode, err
} }
} }
serverNode.OS = runtime.GOOS 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) Log("removed old interface "+oldIfaceName, 1)
} }
serverNode.PullChanges = "no" serverNode.PullChanges = "no"
if err = setWGConfig(serverNode, network, false); err != nil { if err = setWGConfig(*serverNode, serverNode.Network, false); err != nil {
return &serverNode, err return serverNode, err
} }
// handle server side update // handle server side update
if err = UpdateNode(&serverNode, &serverNode); err != nil { if err = UpdateNode(serverNode, serverNode); err != nil {
return &serverNode, err return serverNode, err
} }
} else { } else {
if err = setWGConfig(serverNode, network, true); err != nil { if err = setWGConfig(*serverNode, serverNode.Network, true); err != nil {
if errors.Is(err, os.ErrNotExist) { if errors.Is(err, os.ErrNotExist) {
return ServerPull(serverNode.MacAddress, serverNode.Network, true) return ServerPull(serverNode, true)
} else { } else {
return &serverNode, err return serverNode, err
} }
} }
} }
return &serverNode, nil return serverNode, nil
} }
// ServerPush - pushes config changes for server checkins/join // ServerPush - pushes config changes for server checkins/join
func ServerPush(mac string, network string) error { func ServerPush(serverNode *models.Node) 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
}
serverNode.OS = runtime.GOOS serverNode.OS = runtime.GOOS
serverNode.SetLastCheckIn() serverNode.SetLastCheckIn()
return UpdateNode(&serverNode, &serverNode) return UpdateNode(serverNode, serverNode)
} }
// ServerLeave - removes a server node // ServerLeave - removes a server node

View File

@@ -271,6 +271,7 @@ func GetFreePort(rangestart int32) (int32, error) {
if err != nil { if err != nil {
return 0, err return 0, err
} }
for x := rangestart; x <= 65535; x++ { for x := rangestart; x <= 65535; x++ {
conflict := false conflict := false
for _, i := range devices { for _, i := range devices {