aboutsummaryrefslogtreecommitdiffstats
path: root/ethereum.go
diff options
context:
space:
mode:
Diffstat (limited to 'ethereum.go')
-rw-r--r--ethereum.go37
1 files changed, 20 insertions, 17 deletions
diff --git a/ethereum.go b/ethereum.go
index bd6caac08..c54303795 100644
--- a/ethereum.go
+++ b/ethereum.go
@@ -85,7 +85,6 @@ func New(caps Caps, usePnp bool) (*Ethereum, error) {
Nonce: nonce,
serverCaps: caps,
nat: nat,
- MaxPeers: 5,
}
ethereum.TxPool = ethchain.NewTxPool()
ethereum.TxPool.Speaker = ethereum
@@ -114,28 +113,32 @@ func (s *Ethereum) ProcessPeerList(addrs []string) {
}
func (s *Ethereum) ConnectToPeer(addr string) error {
- var alreadyConnected bool
+ if s.peers.Len() < s.MaxPeers {
+ var alreadyConnected bool
- eachPeer(s.peers, func(p *Peer, v *list.Element) {
- if p.conn == nil {
- return
- }
- phost, _, _ := net.SplitHostPort(p.conn.RemoteAddr().String())
- ahost, _, _ := net.SplitHostPort(addr)
+ eachPeer(s.peers, func(p *Peer, v *list.Element) {
+ if p.conn == nil {
+ return
+ }
+ phost, _, _ := net.SplitHostPort(p.conn.RemoteAddr().String())
+ ahost, _, _ := net.SplitHostPort(addr)
- if phost == ahost {
- alreadyConnected = true
- return
+ if phost == ahost {
+ alreadyConnected = true
+ return
+ }
+ })
+
+ if alreadyConnected {
+ return nil
}
- })
- if alreadyConnected {
- return nil
- }
+ peer := NewOutboundPeer(addr, s, s.serverCaps)
- peer := NewOutboundPeer(addr, s, s.serverCaps)
+ s.peers.PushBack(peer)
- s.peers.PushBack(peer)
+ log.Printf("[SERV] Adding peer %d / %d\n", s.peers.Len(), s.MaxPeers)
+ }
return nil
}