Fixed client and server issues with updates and dns before db connect

This commit is contained in:
worker-9
2021-07-28 16:08:50 -04:00
parent 6b5f5450be
commit fb5f08be5a
4 changed files with 22 additions and 34 deletions

View File

@@ -788,9 +788,6 @@ func updateNode(w http.ResponseWriter, r *http.Request) {
return
}
if err = SetNetworkNodesLastModified(node.Network); err != nil {
log.Println(err)
}
if servercfg.IsDNSMode() {
err = SetDNS()
}

View File

@@ -23,7 +23,6 @@ import (
//Start MongoDB Connection and start API Request Handler
func main() {
checkModes() // check which flags are set and if root or not
initialize() // initial db and grpc server
defer database.Database.Close()
startControllers() // start the grpc or rest endpoints
@@ -46,6 +45,7 @@ func checkModes() { // Client Mode Prereq Check
if uid != 0 {
log.Fatal("To run in client mode requires root privileges. Either disable client mode or run with sudo.")
}
database.InitializeDatabase()
if servercfg.IsDNSMode() {
err := functions.SetDNSDir()
@@ -57,7 +57,7 @@ func checkModes() { // Client Mode Prereq Check
}
func initialize() {
database.InitializeDatabase()
checkModes() // check which flags are set and if root or not
if servercfg.IsGRPCWireGuard() {
if err := serverctl.InitServerWireGuard(); err != nil {
log.Fatal(err)

View File

@@ -15,6 +15,7 @@ import (
const charset = "abcdefghijklmnopqrstuvwxyz" + "ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789"
const TEN_YEARS_IN_SECONDS = 300000000
var seededRand *rand.Rand = rand.New(
rand.NewSource(time.Now().UnixNano()))
@@ -270,10 +271,10 @@ func (currentNode *Node) Update(newNode *Node) error {
}
newNode.SetID()
if newNode.ID == currentNode.ID {
newNode.SetLastModified()
if data, err := json.Marshal(newNode); err != nil {
return err
} else {
newNode.SetLastModified()
if err = database.Insert(newNode.ID, string(data), database.NODES_TABLE_NAME); err == nil {
if network, err := GetNetwork(newNode.Network); err == nil {
err = network.SetNetworkNodesLastModified()

View File

@@ -1,7 +1,6 @@
package wireguard
import (
"github.com/davecgh/go-spew/spew"
"context"
"crypto/tls"
"errors"
@@ -14,6 +13,8 @@ import (
"strconv"
"strings"
"github.com/davecgh/go-spew/spew"
nodepb "github.com/gravitl/netmaker/grpc"
"github.com/gravitl/netmaker/models"
"github.com/gravitl/netmaker/netclient/auth"
@@ -203,30 +204,19 @@ func InitWireguard(node *nodepb.Node, privkey string, peers []wgtypes.PeerConfig
Stdout: os.Stdout,
Stderr: os.Stdout,
}
cmdIPLinkDelete := exec.Command("ip", "link", "delete", "dev", ifacename)
currentiface, err := net.InterfaceByName(ifacename)
if err != nil {
err = cmdIPDevLinkAdd.Run()
if err != nil && !strings.Contains(err.Error(), "exists") {
fmt.Println("Error creating interface")
//fmt.Println(err.Error())
//return err
delErr := cmdIPLinkDelete.Run()
addLinkErr := cmdIPDevLinkAdd.Run()
addErr := cmdIPAddrAdd.Run()
if delErr != nil {
log.Println(delErr)
}
if addLinkErr != nil {
log.Println(addLinkErr)
}
match := false
addrs, _ := currentiface.Addrs()
for _, a := range addrs {
if strings.Contains(a.String(), node.Address) {
match = true
}
}
if !match {
err = cmdIPAddrAdd.Run()
if err != nil {
fmt.Println("Error adding address")
//return err
}
if addErr != nil {
log.Println(addErr)
}
var nodeport int
nodeport = int(node.Listenport)
@@ -267,7 +257,7 @@ func InitWireguard(node *nodepb.Node, privkey string, peers []wgtypes.PeerConfig
}
}
//=========DNS Setup==========\\
log.Println("NODECFG.DNS:",nodecfg.DNS)
log.Println("NODECFG.DNS:", nodecfg.DNS)
if nodecfg.DNS == "on" {
_ = local.UpdateDNS(ifacename, network, nameserver)
}