ispending bug fix and node auth fix

This commit is contained in:
worker-9
2021-08-10 10:55:48 -04:00
parent c799df59ce
commit 46d6899982
4 changed files with 50 additions and 41 deletions

View File

@@ -11,6 +11,7 @@ import (
"net"
"time"
"github.com/gravitl/netmaker/database"
nodepb "github.com/gravitl/netmaker/grpc"
"github.com/gravitl/netmaker/models"
"github.com/gravitl/netmaker/netclient/auth"
@@ -115,8 +116,6 @@ func JoinNetwork(cfg config.ClientConfig, privateKey string) error {
return err
}
}
} else {
cfg.Node.Endpoint = cfg.Node.Endpoint
}
if privateKey == "" {
wgPrivatekey, err := wgtypes.GeneratePrivateKey()
@@ -158,27 +157,27 @@ func JoinNetwork(cfg config.ClientConfig, privateKey string) error {
wcclient = nodepb.NewNodeServiceClient(conn)
postnode := &models.Node{
Password: cfg.Node.Password,
MacAddress: cfg.Node.MacAddress,
AccessKey: cfg.Server.AccessKey,
Network: cfg.Network,
ListenPort: cfg.Node.ListenPort,
PostUp: cfg.Node.PostUp,
PostDown: cfg.Node.PostDown,
PersistentKeepalive: cfg.Node.PersistentKeepalive,
LocalAddress: cfg.Node.LocalAddress,
Interface: cfg.Node.Interface,
PublicKey: cfg.Node.PublicKey,
Name: cfg.Node.Name,
Endpoint: cfg.Node.Endpoint,
SaveConfig: cfg.Node.SaveConfig,
UDPHolePunch: cfg.Node.UDPHolePunch,
}
if err = config.ModConfig(postnode); err != nil {
// postnode := &models.Node{
// Password: cfg.Node.Password,
// MacAddress: cfg.Node.MacAddress,
// AccessKey: cfg.Server.AccessKey,
// Network: cfg.Network,
// ListenPort: cfg.Node.ListenPort,
// PostUp: cfg.Node.PostUp,
// PostDown: cfg.Node.PostDown,
// PersistentKeepalive: cfg.Node.PersistentKeepalive,
// LocalAddress: cfg.Node.LocalAddress,
// Interface: cfg.Node.Interface,
// PublicKey: cfg.Node.PublicKey,
// Name: cfg.Node.Name,
// Endpoint: cfg.Node.Endpoint,
// SaveConfig: cfg.Node.SaveConfig,
// UDPHolePunch: cfg.Node.UDPHolePunch,
// }
if err = config.ModConfig(&cfg.Node); err != nil {
return err
}
data, err := json.Marshal(&postnode)
data, err := json.Marshal(&cfg.Node)
if err != nil {
return err
}
@@ -216,6 +215,11 @@ func JoinNetwork(cfg config.ClientConfig, privateKey string) error {
return err
}
err = wireguard.StorePrivKey(privateKey, cfg.Network)
if err != nil {
return err
}
if node.IsPending == "yes" {
fmt.Println("Node is marked as PENDING.")
fmt.Println("Awaiting approval from Admin before configuring WireGuard.")
@@ -227,14 +231,11 @@ func JoinNetwork(cfg config.ClientConfig, privateKey string) error {
log.Println("retrieving remote peers")
peers, hasGateway, gateways, err := server.GetPeers(node.MacAddress, cfg.Network, cfg.Server.GRPCAddress, node.IsDualStack == "yes", node.IsIngressGateway == "yes")
if err != nil {
log.Println("failed to retrieve peers")
return err
}
err = wireguard.StorePrivKey(privateKey, cfg.Network)
if err != nil {
if err != nil && !database.IsEmptyRecord(err) {
log.Println("failed to retrieve peers", err)
return err
}
log.Println("starting wireguard")
err = wireguard.InitWireguard(&node, privateKey, peers, hasGateway, gateways)
if err != nil {