mirror of
https://github.com/fluencelabs/tendermint
synced 2025-05-29 06:01:21 +00:00
p2p: netPipe for <Go1.10 in own file with own build tag
Follow up of 283544c7f3ada24378fd6e0ac2f82cd927bc95e6 putting <Go1.10 implementation of netPipe in its own file and protect it with its separate build tag.
This commit is contained in:
parent
443854222c
commit
3f9dff9aac
32
p2p/conn_notgo110.go
Normal file
32
p2p/conn_notgo110.go
Normal file
@ -0,0 +1,32 @@
|
|||||||
|
// +build !go1.10
|
||||||
|
|
||||||
|
package p2p
|
||||||
|
|
||||||
|
import (
|
||||||
|
"net"
|
||||||
|
"time"
|
||||||
|
)
|
||||||
|
|
||||||
|
// Only Go1.10 has a proper net.Conn implementation that
|
||||||
|
// has the SetDeadline method implemented as per
|
||||||
|
// https://github.com/golang/go/commit/e2dd8ca946be884bb877e074a21727f1a685a706
|
||||||
|
// lest we run into problems like
|
||||||
|
// https://github.com/tendermint/tendermint/issues/851
|
||||||
|
// so for go versions < Go1.10 use our custom net.Conn creator
|
||||||
|
// that doesn't return an `Unimplemented error` for net.Conn.
|
||||||
|
// Before https://github.com/tendermint/tendermint/commit/49faa79bdce5663894b3febbf4955fb1d172df04
|
||||||
|
// we hadn't cared about errors from SetDeadline so swallow them up anyways.
|
||||||
|
type pipe struct {
|
||||||
|
net.Conn
|
||||||
|
}
|
||||||
|
|
||||||
|
func (p *pipe) SetDeadline(t time.Time) error {
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
|
func netPipe() (net.Conn, net.Conn) {
|
||||||
|
p1, p2 := net.Pipe()
|
||||||
|
return &pipe{p1}, &pipe{p2}
|
||||||
|
}
|
||||||
|
|
||||||
|
var _ net.Conn = (*pipe)(nil)
|
@ -593,27 +593,3 @@ func (sw *Switch) addPeerWithConnectionAndConfig(conn net.Conn, config *PeerConf
|
|||||||
|
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
// Only Go1.10 has a proper net.Conn implementation that
|
|
||||||
// has the SetDeadline method implemented as per
|
|
||||||
// https://github.com/golang/go/commit/e2dd8ca946be884bb877e074a21727f1a685a706
|
|
||||||
// lest we run into problems like
|
|
||||||
// https://github.com/tendermint/tendermint/issues/851
|
|
||||||
// so for go versions < Go1.10 use our custom net.Conn creator
|
|
||||||
// that doesn't return an `Unimplemented error` for net.Conn.
|
|
||||||
// Before https://github.com/tendermint/tendermint/commit/49faa79bdce5663894b3febbf4955fb1d172df04
|
|
||||||
// we hadn't cared about errors from SetDeadline so swallow them up anyways.
|
|
||||||
type pipe struct {
|
|
||||||
net.Conn
|
|
||||||
}
|
|
||||||
|
|
||||||
func (p *pipe) SetDeadline(t time.Time) error {
|
|
||||||
return nil
|
|
||||||
}
|
|
||||||
|
|
||||||
func netPipe() (net.Conn, net.Conn) {
|
|
||||||
p1, p2 := net.Pipe()
|
|
||||||
return &pipe{p1}, &pipe{p2}
|
|
||||||
}
|
|
||||||
|
|
||||||
var _ net.Conn = (*pipe)(nil)
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user