mirror of
https://github.com/gravitl/netmaker.git
synced 2025-10-16 05:41:13 +08:00
Fixed client and server issues with updates and dns before db connect
This commit is contained in:
@@ -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()
|
||||
}
|
||||
|
4
main.go
4
main.go
@@ -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)
|
||||
|
@@ -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()
|
||||
|
@@ -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)
|
||||
}
|
||||
|
Reference in New Issue
Block a user