diff --git a/network/instance.go b/network/instance.go index 1308dda020d9d85c9e1dab52d1b4848330a0c1ef..b33b3aff5ec5ef46c6d696a8995f9dddc4508d0e 100644 --- a/network/instance.go +++ b/network/instance.go @@ -593,6 +593,18 @@ func (i *Instance) updateConns(def *ndf.NetworkDefinition, isGateway, isNode boo host, ok := i.comm.GetHost(gwid) if !ok { + // Check if gateway ID collides with an existing hard coded ID + if id.CollidesWithHardCodedID(gwid) { + return errors.Errorf("Gateway ID invalid, collides with a "+ + "hard coded ID. Invalid ID: %v", gwid.Marshal()) + } + gwParams := connect.GetDefaultHostParams() + gwParams.AuthEnabled = false + _, err := i.comm.AddHost(gwid, addr, []byte(gateway.TlsCertificate), gwParams) + if err != nil { + return errors.WithMessagef(err, "Could not add gateway host %s", gwid) + } + // Send events into Node Listener if i.addGateway != nil { ng := NodeGateway{ @@ -607,17 +619,7 @@ func (i *Instance) updateConns(def *ndf.NetworkDefinition, isGateway, isNode boo } } - // Check if gateway ID collides with an existing hard coded ID - if id.CollidesWithHardCodedID(gwid) { - return errors.Errorf("Gateway ID invalid, collides with a "+ - "hard coded ID. Invalid ID: %v", gwid.Marshal()) - } - gwParams := connect.GetDefaultHostParams() - gwParams.AuthEnabled = false - _, err := i.comm.AddHost(gwid, addr, []byte(gateway.TlsCertificate), gwParams) - if err != nil { - return errors.WithMessagef(err, "Could not add gateway host %s", gwid) - } + } else if host.GetAddress() != addr { host.UpdateAddress(addr) } @@ -636,6 +638,17 @@ func (i *Instance) updateConns(def *ndf.NetworkDefinition, isGateway, isNode boo host, ok := i.comm.GetHost(nid) if !ok { + // Check if isNode ID collides with an existing hard coded ID + if id.CollidesWithHardCodedID(nid) { + return errors.Errorf("Node ID invalid, collides with a "+ + "hard coded ID. Invalid ID: %v", nid.Marshal()) + } + + _, err := i.comm.AddHost(nid, addr, []byte(node.TlsCertificate), connect.GetDefaultHostParams()) + if err != nil { + return errors.WithMessagef(err, "Could not add isNode host %s", nid) + } + // Send events into Node Listener if i.addNode != nil { ng := NodeGateway{ @@ -650,16 +663,6 @@ func (i *Instance) updateConns(def *ndf.NetworkDefinition, isGateway, isNode boo } } - // Check if isNode ID collides with an existing hard coded ID - if id.CollidesWithHardCodedID(nid) { - return errors.Errorf("Node ID invalid, collides with a "+ - "hard coded ID. Invalid ID: %v", nid.Marshal()) - } - - _, err := i.comm.AddHost(nid, addr, []byte(node.TlsCertificate), connect.GetDefaultHostParams()) - if err != nil { - return errors.WithMessagef(err, "Could not add isNode host %s", nid) - } } else if host.GetAddress() != addr { host.UpdateAddress(addr) }