Commit dcf4fad9 authored by obscuren's avatar obscuren

Networking code

parent 6d69ca36
...@@ -177,18 +177,7 @@ func NewOutboundPeer(addr string, ethereum *Ethereum, caps Caps) *Peer { ...@@ -177,18 +177,7 @@ func NewOutboundPeer(addr string, ethereum *Ethereum, caps Caps) *Peer {
// Set up the connection in another goroutine so we don't block the main thread // Set up the connection in another goroutine so we don't block the main thread
go func() { go func() {
var ( conn, err := p.Connect(addr)
err error
conn net.Conn
)
for attempts := 0; attempts < 5; attempts++ {
conn, err = net.DialTimeout("tcp", addr, 10*time.Second)
if err != nil {
peerlogger.Debugf("Peer connection failed. Retrying (%d/5)\n", attempts+1)
}
}
if err != nil { if err != nil {
peerlogger.Debugln("Connection to peer failed. Giving up.", err) peerlogger.Debugln("Connection to peer failed. Giving up.", err)
p.Stop() p.Stop()
...@@ -206,6 +195,21 @@ func NewOutboundPeer(addr string, ethereum *Ethereum, caps Caps) *Peer { ...@@ -206,6 +195,21 @@ func NewOutboundPeer(addr string, ethereum *Ethereum, caps Caps) *Peer {
return p return p
} }
func (self *Peer) Connect(addr string) (conn net.Conn, err error) {
for attempts := 0; attempts < 5; attempts++ {
conn, err = net.DialTimeout("tcp", addr, 10*time.Second)
if err != nil {
peerlogger.Debugf("Peer connection failed. Retrying (%d/5)\n", attempts+1)
continue
}
// Success
return
}
return
}
// Getters // Getters
func (p *Peer) PingTime() string { func (p *Peer) PingTime() string {
return p.pingTime.String() return p.pingTime.String()
......
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