relay functionality working

This commit is contained in:
afeiszli
2021-09-16 20:00:40 -04:00
parent 0457769308
commit 61c2c5f0a0
5 changed files with 125 additions and 16 deletions

View File

@@ -97,11 +97,22 @@ func (s *NodeServiceServer) UpdateNode(ctx context.Context, req *nodepb.Object)
if err != nil {
return nil, err
}
relayupdate := false
oldRelayAddrs := node.RelayAddrs
if node.IsRelay == "yes" && len(newnode.RelayAddrs) > 0 {
for i, addr := range newnode.RelayAddrs {
if addr != node.RelayAddrs[i] {
relayupdate = true
}
}
}
err = node.Update(&newnode)
if err != nil {
return nil, err
}
if relayupdate {
UpdateRelay(node.Network, oldRelayAddrs, node.RelayAddrs)
}
nodeData, err := json.Marshal(&newnode)
if err != nil {
return nil, err
@@ -138,7 +149,11 @@ func (s *NodeServiceServer) GetPeers(ctx context.Context, req *nodepb.Object) (*
SetNetworkServerPeers(macAndNetwork[1])
}
excludeDoNotPropagate := node.IsRelay != "yes"
peers, err := GetPeersList(macAndNetwork[1], excludeDoNotPropagate)
var relayedNode string
if node.DoNotPropagate == "yes" {
relayedNode = node.Address
}
peers, err := GetPeersList(macAndNetwork[1], excludeDoNotPropagate, relayedNode)
if err != nil {
return nil, err
}