security Security
}
-// NewSwitch create a new Switch and set discover.
-func NewSwitch(config *cfg.Config) (*Switch, error) {
+// NewSwitchMaybeDiscover create a new Switch and set discover.
+func NewSwitchMaybeDiscover(config *cfg.Config) (*Switch, error) {
var err error
var l Listener
var listenAddr string
}
}
- return newSwitch(config, discv, lanDiscv, l, *privateKey, listenAddr, netID)
+ return NewSwitch(config, discv, lanDiscv, l, *privateKey, listenAddr, netID)
}
// newSwitch creates a new Switch with the given config.
-func newSwitch(config *cfg.Config, discv discv, lanDiscv lanDiscv, l Listener, privKey signlib.PrivKey, listenAddr string, netID uint64) (*Switch, error) {
+func NewSwitch(config *cfg.Config, discv discv, lanDiscv lanDiscv, l Listener, privKey signlib.PrivKey, listenAddr string, netID uint64) (*Switch, error) {
sw := &Switch{
Config: config,
peerConfig: DefaultPeerConfig(config.P2P),
return sw, nil
}
+func (sw *Switch) GetDiscv() discv {
+ return sw.discv
+}
+
+func (sw *Switch) GetNodeInfo() *NodeInfo {
+ return sw.nodeInfo
+}
+
+func (sw *Switch) GetPeers() *PeerSet {
+ return sw.peers
+}
+
+func (sw *Switch) GetReactors() map[string]Reactor {
+ return sw.reactors
+}
+
+func (sw *Switch) GetSecurity() Security {
+ return sw.security
+}
+
// OnStart implements BaseService. It starts all the reactors, peers, and listeners.
func (sw *Switch) OnStart() error {
for _, reactor := range sw.reactors {
for i := 0; i < len(lanPeer.IP); i++ {
addresses = append(addresses, NewLANNetAddressIPPort(lanPeer.IP[i], uint16(lanPeer.Port)))
}
- sw.dialPeers(addresses)
+ sw.DialPeers(addresses)
}
func (sw *Switch) connectLANPeersRoutine() {
break
}
- // disconnect if we alrady have MaxNumPeers
+ // disconnect if we already have MaxNumPeers
if sw.peers.Size() >= sw.Config.P2P.MaxNumPeers {
if err := inConn.Close(); err != nil {
log.WithFields(log.Fields{"module": logModule, "remote peer:": inConn.RemoteAddr().String(), " err:": err}).Error("closes connection err")
wg.Done()
}
-func (sw *Switch) dialPeers(addresses []*NetAddress) {
+func (sw *Switch) DialPeers(addresses []*NetAddress) {
connectedPeers := make(map[string]struct{})
for _, peer := range sw.Peers().List() {
connectedPeers[peer.RemoteAddrHost()] = struct{}{}
addresses = append(addresses, address)
}
- sw.dialPeers(addresses)
+ sw.DialPeers(addresses)
}
func (sw *Switch) ensureOutboundPeers() {
address := NewNetAddressIPPort(nodes[i].IP, nodes[i].TCP)
addresses = append(addresses, address)
}
- sw.dialPeers(addresses)
+ sw.DialPeers(addresses)
}
func (sw *Switch) ensureOutboundPeersRoutine() {