浏览代码

send fw updates to gw nodes when new peers are added

Abhishek Kondur 2 年之前
父节点
当前提交
e2950f7571
共有 1 个文件被更改,包括 17 次插入5 次删除
  1. 17 5
      mq/publishers.go

+ 17 - 5
mq/publishers.go

@@ -213,11 +213,13 @@ func BroadcastDelPeer(host *models.Host, network string) error {
 		peerHost, err := logic.GetHost(nodeI.HostID.String())
 		peerHost, err := logic.GetHost(nodeI.HostID.String())
 		if err == nil {
 		if err == nil {
 			publish(peerHost, fmt.Sprintf("peer/host/%s/%s", peerHost.ID.String(), servercfg.GetServer()), data)
 			publish(peerHost, fmt.Sprintf("peer/host/%s/%s", peerHost.ID.String(), servercfg.GetServer()), data)
-			if nodeI.IsIngressGateway {
-				f, err := logic.GetFwUpdate(peerHost)
-				if err == nil {
-					PublishFwUpdate(peerHost, &f)
-				}
+			if nodeI.IsIngressGateway || nodeI.IsEgressGateway {
+				go func(peerHost models.Host) {
+					f, err := logic.GetFwUpdate(&peerHost)
+					if err == nil {
+						PublishFwUpdate(&peerHost, &f)
+					}
+				}(*peerHost)
 			}
 			}
 		}
 		}
 	}
 	}
@@ -285,6 +287,16 @@ func BroadcastAddOrUpdatePeer(host *models.Host, node *models.Node, update bool)
 		if err == nil {
 		if err == nil {
 			publish(peerHost, fmt.Sprintf("peer/host/%s/%s", peerHost.ID.String(), servercfg.GetServer()), data)
 			publish(peerHost, fmt.Sprintf("peer/host/%s/%s", peerHost.ID.String(), servercfg.GetServer()), data)
 		}
 		}
+		if nodeI.IsIngressGateway || nodeI.IsEgressGateway {
+			go func(peerHost models.Host) {
+				f, err := logic.GetFwUpdate(&peerHost)
+				if err == nil {
+					PublishFwUpdate(&peerHost, &f)
+				}
+			}(*peerHost)
+
+		}
+
 	}
 	}
 	return nil
 	return nil
 }
 }