|
|
- // +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)
|