فهرست منبع

fix host peer update model,add server name to peer update topic

Abhishek Kondur 2 سال پیش
والد
کامیت
88902f7823
4فایلهای تغییر یافته به همراه14 افزوده شده و 14 حذف شده
  1. 5 5
      logic/peers.go
  2. 7 7
      models/mqtt.go
  3. 1 1
      mq/dynsec_helper.go
  4. 1 1
      mq/publishers.go

+ 5 - 5
logic/peers.go

@@ -194,8 +194,10 @@ func GetPeersForProxy(node *models.Node, onlyPeers bool) (proxy_models.ProxyMana
 
 func GetPeerUpdateForHost(host *models.Host) (models.HostPeerUpdate, error) {
 	hostPeerUpdate := models.HostPeerUpdate{
-		Network: make(map[string]models.NetworkInfo),
-		PeerIDs: make(models.HostPeerMap),
+		Network:       make(map[string]models.NetworkInfo),
+		PeerIDs:       make(models.HostPeerMap),
+		ServerVersion: servercfg.GetVersion(),
+		ServerAddrs:   []models.ServerAddr{},
 	}
 	peerIndexMap := make(map[string]int)
 	for _, nodeID := range host.Nodes {
@@ -205,9 +207,7 @@ func GetPeerUpdateForHost(host *models.Host) (models.HostPeerUpdate, error) {
 		}
 		log.Println("peer update for node ", node.ID)
 		hostPeerUpdate.Network[node.Network] = models.NetworkInfo{
-			ServerVersion: servercfg.GetVersion(),
-			ServerAddr:    node.Server,
-			DNS:           getPeerDNS(node.Network),
+			DNS: getPeerDNS(node.Network),
 		}
 		currentPeers, err := GetNetworkNodes(node.Network)
 		if err != nil {

+ 7 - 7
models/mqtt.go

@@ -18,16 +18,16 @@ type PeerUpdate struct {
 
 // HostPeerUpdate
 type HostPeerUpdate struct {
-	Network     map[string]NetworkInfo           `json:"network" bson:"network" yaml:"network"`
-	Peers       []wgtypes.PeerConfig             `json:"peers" bson:"peers" yaml:"peers"`
-	PeerIDs     HostPeerMap                      `json:"peerids" bson:"peerids" yaml:"peerids"`
-	ProxyUpdate proxy_models.ProxyManagerPayload `json:"proxy_update" bson:"proxy_update" yaml:"proxy_update"`
+	ServerVersion string                           `json:"serverversion" bson:"serverversion" yaml:"serverversion"`
+	ServerAddrs   []ServerAddr                     `json:"serveraddrs" bson:"serveraddrs" yaml:"serveraddrs"`
+	Network       map[string]NetworkInfo           `json:"network" bson:"network" yaml:"network"`
+	Peers         []wgtypes.PeerConfig             `json:"peers" bson:"peers" yaml:"peers"`
+	PeerIDs       HostPeerMap                      `json:"peerids" bson:"peerids" yaml:"peerids"`
+	ProxyUpdate   proxy_models.ProxyManagerPayload `json:"proxy_update" bson:"proxy_update" yaml:"proxy_update"`
 }
 
 type NetworkInfo struct {
-	ServerVersion string `json:"serverversion" bson:"serverversion" yaml:"serverversion"`
-	ServerAddr    string `json:"serveraddr" bson:"serveraddr" yaml:"serveraddr"`
-	DNS           string `json:"dns" bson:"dns" yaml:"dns"`
+	DNS string `json:"dns" bson:"dns" yaml:"dns"`
 }
 
 // KeyUpdate - key update struct

+ 1 - 1
mq/dynsec_helper.go

@@ -174,7 +174,7 @@ func fetchHostAcls(hostID string) []Acl {
 	return []Acl{
 		{
 			AclType:  "publishClientReceive",
-			Topic:    fmt.Sprintf("peers/host/%s", hostID),
+			Topic:    fmt.Sprintf("peers/host/%s/#", hostID),
 			Priority: -1,
 			Allow:    true,
 		},

+ 1 - 1
mq/publishers.go

@@ -69,7 +69,7 @@ func PublishSingleHostUpdate(host *models.Host) error {
 	if err != nil {
 		return err
 	}
-	return publish(host, "peers/host", data)
+	return publish(host, fmt.Sprintf("peers/host/%s/%s", host.ID.String(), servercfg.GetServer()), data)
 }
 
 // PublishPeerUpdate --- publishes a peer update to all the peers of a node