mirror of
https://github.com/ipfs/kubo.git
synced 2026-02-27 13:27:50 +08:00
make net/conn.Conn conform to net.Conn
This commit is contained in:
parent
3b29653022
commit
9b7fb704ef
@ -2,6 +2,7 @@ package conn
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"net"
|
||||
"time"
|
||||
|
||||
context "github.com/jbenet/go-ipfs/Godeps/_workspace/src/code.google.com/p/go.net/context"
|
||||
@ -85,6 +86,25 @@ func (c *singleConn) String() string {
|
||||
return String(c, "singleConn")
|
||||
}
|
||||
|
||||
func (c *singleConn) LocalAddr() net.Addr {
|
||||
return c.maconn.LocalAddr()
|
||||
}
|
||||
|
||||
func (c *singleConn) RemoteAddr() net.Addr {
|
||||
return c.maconn.RemoteAddr()
|
||||
}
|
||||
|
||||
func (c *singleConn) SetDeadline(t time.Time) error {
|
||||
return c.maconn.SetDeadline(t)
|
||||
}
|
||||
func (c *singleConn) SetReadDeadline(t time.Time) error {
|
||||
return c.maconn.SetReadDeadline(t)
|
||||
}
|
||||
|
||||
func (c *singleConn) SetWriteDeadline(t time.Time) error {
|
||||
return c.maconn.SetWriteDeadline(t)
|
||||
}
|
||||
|
||||
// LocalMultiaddr is the Multiaddr on this side
|
||||
func (c *singleConn) LocalMultiaddr() ma.Multiaddr {
|
||||
return c.maconn.LocalMultiaddr()
|
||||
|
||||
@ -2,6 +2,8 @@ package conn
|
||||
|
||||
import (
|
||||
"errors"
|
||||
"net"
|
||||
"time"
|
||||
|
||||
peer "github.com/jbenet/go-ipfs/peer"
|
||||
u "github.com/jbenet/go-ipfs/util"
|
||||
@ -17,6 +19,7 @@ type Map map[u.Key]Conn
|
||||
|
||||
// Conn is a generic message-based Peer-to-Peer connection.
|
||||
type Conn interface {
|
||||
|
||||
// implement ContextCloser too!
|
||||
ctxc.ContextCloser
|
||||
|
||||
@ -35,6 +38,13 @@ type Conn interface {
|
||||
// RemotePeer is the Peer on the remote side
|
||||
RemotePeer() peer.Peer
|
||||
|
||||
// net.Conn, cause duplicates.
|
||||
LocalAddr() net.Addr
|
||||
RemoteAddr() net.Addr
|
||||
SetDeadline(t time.Time) error
|
||||
SetReadDeadline(t time.Time) error
|
||||
SetWriteDeadline(t time.Time) error
|
||||
|
||||
msgio.Reader
|
||||
msgio.Writer
|
||||
}
|
||||
|
||||
@ -3,7 +3,9 @@ package conn
|
||||
import (
|
||||
"errors"
|
||||
"fmt"
|
||||
"net"
|
||||
"sync"
|
||||
"time"
|
||||
|
||||
context "github.com/jbenet/go-ipfs/Godeps/_workspace/src/code.google.com/p/go.net/context"
|
||||
ma "github.com/jbenet/go-ipfs/Godeps/_workspace/src/github.com/jbenet/go-multiaddr"
|
||||
@ -232,14 +234,62 @@ func (c *MultiConn) String() string {
|
||||
return String(c, "MultiConn")
|
||||
}
|
||||
|
||||
func (c *MultiConn) LocalAddr() net.Addr {
|
||||
bc := c.BestConn()
|
||||
if bc == nil {
|
||||
return nil
|
||||
}
|
||||
return bc.LocalAddr()
|
||||
}
|
||||
|
||||
func (c *MultiConn) RemoteAddr() net.Addr {
|
||||
bc := c.BestConn()
|
||||
if bc == nil {
|
||||
return nil
|
||||
}
|
||||
return bc.RemoteAddr()
|
||||
}
|
||||
|
||||
func (c *MultiConn) SetDeadline(t time.Time) error {
|
||||
bc := c.BestConn()
|
||||
if bc == nil {
|
||||
return nil
|
||||
}
|
||||
return bc.SetDeadline(t)
|
||||
}
|
||||
|
||||
func (c *MultiConn) SetReadDeadline(t time.Time) error {
|
||||
bc := c.BestConn()
|
||||
if bc == nil {
|
||||
return nil
|
||||
}
|
||||
return bc.SetReadDeadline(t)
|
||||
}
|
||||
|
||||
func (c *MultiConn) SetWriteDeadline(t time.Time) error {
|
||||
bc := c.BestConn()
|
||||
if bc == nil {
|
||||
return nil
|
||||
}
|
||||
return bc.SetWriteDeadline(t)
|
||||
}
|
||||
|
||||
// LocalMultiaddr is the Multiaddr on this side
|
||||
func (c *MultiConn) LocalMultiaddr() ma.Multiaddr {
|
||||
return c.BestConn().LocalMultiaddr()
|
||||
bc := c.BestConn()
|
||||
if bc == nil {
|
||||
return nil
|
||||
}
|
||||
return bc.LocalMultiaddr()
|
||||
}
|
||||
|
||||
// RemoteMultiaddr is the Multiaddr on the remote side
|
||||
func (c *MultiConn) RemoteMultiaddr() ma.Multiaddr {
|
||||
return c.BestConn().RemoteMultiaddr()
|
||||
bc := c.BestConn()
|
||||
if bc == nil {
|
||||
return nil
|
||||
}
|
||||
return bc.RemoteMultiaddr()
|
||||
}
|
||||
|
||||
// LocalPeer is the Peer on this side
|
||||
|
||||
@ -1,6 +1,9 @@
|
||||
package conn
|
||||
|
||||
import (
|
||||
"net"
|
||||
"time"
|
||||
|
||||
context "github.com/jbenet/go-ipfs/Godeps/_workspace/src/code.google.com/p/go.net/context"
|
||||
msgio "github.com/jbenet/go-ipfs/Godeps/_workspace/src/github.com/jbenet/go-msgio"
|
||||
ma "github.com/jbenet/go-ipfs/Godeps/_workspace/src/github.com/jbenet/go-multiaddr"
|
||||
@ -63,6 +66,26 @@ func (c *secureConn) String() string {
|
||||
return String(c, "secureConn")
|
||||
}
|
||||
|
||||
func (c *secureConn) LocalAddr() net.Addr {
|
||||
return c.insecure.LocalAddr()
|
||||
}
|
||||
|
||||
func (c *secureConn) RemoteAddr() net.Addr {
|
||||
return c.insecure.RemoteAddr()
|
||||
}
|
||||
|
||||
func (c *secureConn) SetDeadline(t time.Time) error {
|
||||
return c.insecure.SetDeadline(t)
|
||||
}
|
||||
|
||||
func (c *secureConn) SetReadDeadline(t time.Time) error {
|
||||
return c.insecure.SetReadDeadline(t)
|
||||
}
|
||||
|
||||
func (c *secureConn) SetWriteDeadline(t time.Time) error {
|
||||
return c.insecure.SetWriteDeadline(t)
|
||||
}
|
||||
|
||||
// LocalMultiaddr is the Multiaddr on this side
|
||||
func (c *secureConn) LocalMultiaddr() ma.Multiaddr {
|
||||
return c.insecure.LocalMultiaddr()
|
||||
|
||||
Loading…
Reference in New Issue
Block a user