Reworked peers to check for public key duplication and adding peers to peerlist only after the handshake has come in

This commit is contained in:
Maran
2014-06-18 13:06:48 +02:00
parent 22e16f15a6
commit 1f79175898
2 changed files with 34 additions and 11 deletions

View File

@ -149,7 +149,9 @@ func (s *Ethereum) IsUpToDate() bool {
})
return upToDate
}
func (s *Ethereum) PushPeer(peer *Peer) {
s.peers.PushBack(peer)
}
func (s *Ethereum) IsListening() bool {
return s.listening
}
@ -159,14 +161,11 @@ func (s *Ethereum) AddPeer(conn net.Conn) {
if peer != nil {
if s.peers.Len() < s.MaxPeers {
s.peers.PushBack(peer)
peer.Start()
} else {
ethutil.Config.Log.Debugf("[SERV] Max connected peers reached. Not adding incoming peer.")
}
}
s.reactor.Post("peerList", s.peers)
}
func (s *Ethereum) ProcessPeerList(addrs []string) {
@ -233,12 +232,7 @@ func (s *Ethereum) ConnectToPeer(addr string) error {
return nil
}
peer := NewOutboundPeer(addr, s, s.serverCaps)
s.peers.PushBack(peer)
ethutil.Config.Log.Infof("[SERV] Adding peer (%s) %d / %d\n", addr, s.peers.Len(), s.MaxPeers)
s.reactor.Post("peerList", s.peers)
NewOutboundPeer(addr, s, s.serverCaps)
}
return nil