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

This commit is contained in:
Abhishek Kondur 2023-01-04 11:03:13 +05:30
parent de6361e7e5
commit 88902f7823
4 changed files with 14 additions and 14 deletions

View file

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

View file

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

View file

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

View file

@ -69,7 +69,7 @@ func PublishSingleHostUpdate(host *models.Host) error {
if err != nil { if err != nil {
return err 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 // PublishPeerUpdate --- publishes a peer update to all the peers of a node