diff --git a/logic/nodes.go b/logic/nodes.go index 20ea54c3..f6f74c4d 100644 --- a/logic/nodes.go +++ b/logic/nodes.go @@ -233,7 +233,6 @@ func CreateNode(node *models.Node) error { if err != nil { return err } - logger.Log(0, "INSERTING: ", node.ID, fmt.Sprintf("pubkey? %v", node.TrafficKeys)) err = database.Insert(node.ID, string(nodebytes), database.NODES_TABLE_NAME) if err != nil { return err diff --git a/mq/mq.go b/mq/mq.go index 63cf71a2..da67aec1 100644 --- a/mq/mq.go +++ b/mq/mq.go @@ -41,7 +41,7 @@ var Ping mqtt.MessageHandler = func(client mqtt.Client, msg mqtt.Message) { logger.Log(0, record) return } - _, decryptErr := decryptMsg(node.ID, msg.Payload()) + _, decryptErr := decryptMsg(msg.Payload()) if decryptErr != nil { logger.Log(0, "error updating node ", node.ID, err.Error()) return @@ -69,7 +69,7 @@ var UpdateNode mqtt.MessageHandler = func(client mqtt.Client, msg mqtt.Message) logger.Log(1, "error getting node ", id, err.Error()) return } - decrypted, decryptErr := decryptMsg(id, msg.Payload()) + decrypted, decryptErr := decryptMsg(msg.Payload()) if decryptErr != nil { logger.Log(1, "failed to decrypt message for node ", id, decryptErr.Error()) return @@ -114,7 +114,7 @@ func PublishPeerUpdate(newNode *models.Node) error { logger.Log(2, "error marshaling peer update for node", node.ID, err.Error()) continue } - if err = publish(node.ID, fmt.Sprintf("peers/%s/%s", node.Network, node.ID), data); err != nil { + if err = publish(&node, fmt.Sprintf("peers/%s/%s", node.Network, node.ID), data); err != nil { logger.Log(1, "failed to publish peer update for node", node.ID) } } @@ -143,7 +143,7 @@ func NodeUpdate(node *models.Node) error { logger.Log(2, "error marshalling node update ", err.Error()) return err } - if err = publish(node.ID, fmt.Sprintf("update/%s/%s", node.Network, node.ID), data); err != nil { + if err = publish(node, fmt.Sprintf("update/%s/%s", node.Network, node.ID), data); err != nil { logger.Log(2, "error publishing node update to peer ", node.ID, err.Error()) return err } diff --git a/mq/util.go b/mq/util.go index 224805ca..8541c279 100644 --- a/mq/util.go +++ b/mq/util.go @@ -5,10 +5,11 @@ import ( "github.com/gravitl/netmaker/logger" "github.com/gravitl/netmaker/logic" + "github.com/gravitl/netmaker/models" "github.com/gravitl/netmaker/netclient/ncutils" ) -func decryptMsg(nodeid string, msg []byte) ([]byte, error) { +func decryptMsg(msg []byte) ([]byte, error) { logger.Log(0, "found message for decryption: %s \n", string(msg)) trafficKey, trafficErr := logic.RetrieveTrafficKey() if trafficErr != nil { @@ -17,11 +18,7 @@ func decryptMsg(nodeid string, msg []byte) ([]byte, error) { return ncutils.DestructMessage(string(msg), &trafficKey), nil } -func encrypt(nodeid string, dest string, msg []byte) ([]byte, error) { - var node, err = logic.GetNodeByID(nodeid) - if err != nil { - return nil, err - } +func encrypt(node *models.Node, dest string, msg []byte) ([]byte, error) { encrypted := ncutils.BuildMessage(msg, &node.TrafficKeys.Mine) if encrypted == "" { return nil, fmt.Errorf("could not encrypt message") @@ -29,10 +26,10 @@ func encrypt(nodeid string, dest string, msg []byte) ([]byte, error) { return []byte(encrypted), nil } -func publish(nodeid string, dest string, msg []byte) error { +func publish(node *models.Node, dest string, msg []byte) error { client := SetupMQTT() defer client.Disconnect(250) - encrypted, encryptErr := encrypt(nodeid, dest, msg) + encrypted, encryptErr := encrypt(node, dest, msg) if encryptErr != nil { return encryptErr }