tcp

package module
v2.0.8+incompatible Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Aug 27, 2018 License: MIT Imports: 13 Imported by: 0

README

go-tcp-transport

Coverage Status Travis CI

A libp2p transport implementation for tcp, including reuseport socket options.

Table of Contents

Install

make install

Contribute

PRs are welcome!

Small note: If editing the Readme, please conform to the standard-readme specification.

License

MIT © Jeromy Johnson

Documentation

Index

Constants

This section is empty.

Variables

View Source
var DefaultConnectTimeout = 5 * time.Second

DefaultConnectTimeout is the (default) maximum amount of time the TCP transport will spend on the initial TCP connect before giving up.

Functions

func ReuseportIsAvailable

func ReuseportIsAvailable() bool

reuseportIsAvailable returns whether reuseport is available to be used. This is here because we want to be able to turn reuseport on and off selectively. For now we use an ENV variable, as this handles our pressing need:

IPFS_REUSEPORT=false ipfs daemon

If this becomes a sought after feature, we could add this to the config. In the end, reuseport is a stop-gap.

Types

type TcpTransport

type TcpTransport struct {
	// Connection upgrader for upgrading insecure stream connections to
	// secure multiplex connections.
	Upgrader *tptu.Upgrader

	// Explicitly disable reuseport.
	DisableReuseport bool

	// TCP connect timeout
	ConnectTimeout time.Duration
	// contains filtered or unexported fields
}

TcpTransport is the TCP transport.

func NewTCPTransport

func NewTCPTransport(upgrader *tptu.Upgrader) *TcpTransport

NewTCPTransport creates a tcp transport object that tracks dialers and listeners created. It represents an entire tcp stack (though it might not necessarily be)

func (*TcpTransport) CanDial

func (t *TcpTransport) CanDial(addr ma.Multiaddr) bool

CanDial returns true if this transport believes it can dial the given multiaddr.

func (*TcpTransport) Dial

func (t *TcpTransport) Dial(ctx context.Context, raddr ma.Multiaddr, p peer.ID) (tpt.Conn, error)

Dial dials the peer at the remote address.

func (*TcpTransport) Listen

func (t *TcpTransport) Listen(laddr ma.Multiaddr) (tpt.Listener, error)

Listen listens on the given multiaddr.

func (*TcpTransport) Protocols

func (t *TcpTransport) Protocols() []int

Protocols returns the list of terminal protocols this transport can dial.

func (*TcpTransport) Proxy

func (t *TcpTransport) Proxy() bool

Proxy always returns false for the TCP transport.

func (*TcpTransport) String

func (t *TcpTransport) String() string

func (*TcpTransport) UseReuseport

func (t *TcpTransport) UseReuseport() bool

UseReuseport returns true if reuseport is enabled and available.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL