made node update with server more efficient

This commit is contained in:
0xdcarns 2022-02-20 09:38:28 -05:00
parent 1770fe8649
commit 086eb842be
4 changed files with 15 additions and 13 deletions

View file

@ -113,12 +113,18 @@ func ClientPeerUpdate(client mqtt.Client, msg mqtt.Message) {
return return
} }
case ncutils.DONE: case ncutils.DONE:
currentServerNode, err := logic.GetNetworkServerLocal(currentNode.Network)
if err != nil {
return
}
if err := logic.ServerUpdate(&currentServerNode, false); err != nil {
logger.Log(1, "server node:", currentServerNode.ID, "failed update")
return
}
if err := PublishPeerUpdate(&currentNode); err != nil { if err := PublishPeerUpdate(&currentNode); err != nil {
logger.Log(1, "error publishing peer update ", err.Error()) logger.Log(1, "error publishing peer update ", err.Error())
return return
} }
case ncutils.KEY:
logger.Log(0, "I should have broke")
} }
logger.Log(1, "sent peer updates after signal received from", id, currentNode.Name) logger.Log(1, "sent peer updates after signal received from", id, currentNode.Name)

View file

@ -96,11 +96,11 @@ func UpdateKeys(nodeCfg *config.ClientConfig, client mqtt.Client) error {
ncutils.Log("error updating local config " + err.Error()) ncutils.Log("error updating local config " + err.Error())
} }
var commsCfg = getCommsCfgByNode(&nodeCfg.Node) var commsCfg = getCommsCfgByNode(&nodeCfg.Node)
PublishNodeUpdate(&commsCfg, nodeCfg)
if err = wireguard.ApplyConf(&nodeCfg.Node, nodeCfg.Node.Interface, file); err != nil { if err = wireguard.ApplyConf(&nodeCfg.Node, nodeCfg.Node.Interface, file); err != nil {
ncutils.Log("error applying new config " + err.Error()) ncutils.Log("error applying new config " + err.Error())
return err return err
} }
PublishNodeUpdate(&commsCfg, nodeCfg)
return nil return nil
} }

View file

@ -93,12 +93,12 @@ func NodeUpdate(client mqtt.Client, msg mqtt.Message) {
return return
} }
if ifaceDelta { // if a change caused an ifacedelta we need to notify the server to update the peers if ifaceDelta { // if a change caused an ifacedelta we need to notify the server to update the peers
ackErr := publishSignal(&commsCfg, &nodeCfg, ncutils.ACK) // ackErr := publishSignal(&commsCfg, &nodeCfg, ncutils.ACK)
if ackErr != nil { // if ackErr != nil {
ncutils.Log("could not notify server that it received an interface update") // ncutils.Log("could not notify server that it received an interface update")
} else { // } else {
ncutils.Log("signalled acknowledgement of change to server") // ncutils.Log("signalled acknowledgement of change to server")
} // }
ncutils.Log("applying WG conf to " + file) ncutils.Log("applying WG conf to " + file)
err = wireguard.ApplyConf(&nodeCfg.Node, nodeCfg.Node.Interface, file) err = wireguard.ApplyConf(&nodeCfg.Node, nodeCfg.Node.Interface, file)
if err != nil { if err != nil {

View file

@ -5,8 +5,4 @@ const (
ACK = 1 ACK = 1
// DONE - done signal for MQ // DONE - done signal for MQ
DONE = 2 DONE = 2
// KEY - key update completed signal for MQ
KEY = 3
// COMMS_NETWORK_NAME - name of signalling network
COMMS_NETWORK_NAME = "n37m8k3r"
) )