Commit 36f221db authored by obscuren's avatar obscuren

Don't connect to peers that are already connected

parent 7f100e96
...@@ -90,6 +90,22 @@ func (s *Ethereum) ProcessPeerList(addrs []string) { ...@@ -90,6 +90,22 @@ func (s *Ethereum) ProcessPeerList(addrs []string) {
} }
func (s *Ethereum) ConnectToPeer(addr string) error { func (s *Ethereum) ConnectToPeer(addr string) error {
var alreadyConnected bool
eachPeer(s.peers, func(p *Peer, v *list.Element) {
phost, _, _ := net.SplitHostPort(p.conn.RemoteAddr().String())
ahost, _, _ := net.SplitHostPort(addr)
if phost == ahost {
alreadyConnected = true
return
}
})
if alreadyConnected {
return nil
}
peer := NewOutboundPeer(addr, s) peer := NewOutboundPeer(addr, s)
s.peers.PushBack(peer) s.peers.PushBack(peer)
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment