diff --git a/service/peer.go b/service/peer.go index c443f915..e2da7daf 100644 --- a/service/peer.go +++ b/service/peer.go @@ -33,7 +33,7 @@ import ( // peerServers type peerServers struct { - HasAgentFlag *bool `json:"HasAgent,omitempty"` // If set, this peer is running an agent + HasAgentFlag bool `json:"HasAgent"` // If set, this peer is running an agent HasDBServerFlag *bool `json:"HasDBServer,omitempty"` // If set or is nil, this peer is running a dbserver HasCoordinatorFlag *bool `json:"HasCoordinator,omitempty"` // If set or is nil, this peer is running a coordinator } @@ -58,12 +58,8 @@ func preparePeerServers(mode ServiceMode, bsCfg BootstrapConfig, config Config) if !boolFromRef(bsCfg.StartCoordinator, true) { hasCoordinator = boolRef(false) } - var hasAgent *bool - if !boolFromRef(bsCfg.StartAgent, !mode.IsSingleMode()) { - hasAgent = boolRef(false) - } return peerServers{ - HasAgentFlag: hasAgent, + HasAgentFlag: boolFromRef(bsCfg.StartAgent, !mode.IsSingleMode()), HasDBServerFlag: hasDBServer, HasCoordinatorFlag: hasCoordinator, } @@ -83,7 +79,7 @@ func newPeer(id, address string, port, portOffset int, dataDir string, servers p } // HasAgent returns true if this peer is running an agent -func (p Peer) HasAgent() bool { return p.HasAgentFlag == nil || *p.HasAgentFlag } +func (p Peer) HasAgent() bool { return p.HasAgentFlag } // HasDBServer returns true if this peer is running a dbserver func (p Peer) HasDBServer() bool { return p.HasDBServerFlag == nil || *p.HasDBServerFlag } diff --git a/service/service.go b/service/service.go index ca4a38ca..7c1ef7b6 100644 --- a/service/service.go +++ b/service/service.go @@ -816,7 +816,7 @@ func (s *Service) HandleHello(ownAddress, remoteAddress string, req *HelloReques peer.Port = req.SlavePort peer.DataDir = req.DataDir - peer.HasAgentFlag = utils.NotNilDefault(req.Agent, peer.HasAgentFlag) + peer.HasAgentFlag = boolFromRef(req.Agent, peer.HasAgentFlag) peer.HasCoordinatorFlag = utils.NotNilDefault(req.Coordinator, peer.HasCoordinatorFlag) peer.HasDBServerFlag = utils.NotNilDefault(req.DBServer, peer.HasDBServerFlag) } @@ -831,14 +831,13 @@ func (s *Service) HandleHello(ownAddress, remoteAddress string, req *HelloReques portOffset := s.myPeers.GetFreePortOffset(slaveAddr, slavePort, s.cfg.AllPortOffsetsUnique) s.log.Debug().Msgf("Set slave port offset to %d, got slaveAddr=%s, slavePort=%d", portOffset, slaveAddr, slavePort) - hasAgentFlag := !s.myPeers.HaveEnoughAgents() servers := peerServers{ - HasAgentFlag: &hasAgentFlag, + HasAgentFlag: !s.myPeers.HaveEnoughAgents(), HasDBServerFlag: nil, HasCoordinatorFlag: nil, } if req.Agent != nil { - servers.HasAgentFlag = req.Agent + servers.HasAgentFlag = *req.Agent } if req.DBServer != nil && *req.DBServer != true { servers.HasDBServerFlag = req.DBServer