Documentation

Overview

    Package transport implements various HTTP transport utilities based on Go net package.

    Package netutil provides network utility functions, complementing the more common ones in the net package.

    Index

    Constants

    This section is empty.

    Variables

    View Source
    var (
    	ErrNotTCP = errors.New("only tcp connections have keepalive")
    )

    Functions

    func LimitListener

    func LimitListener(l net.Listener, n int) net.Listener

      LimitListener returns a Listener that accepts at most n simultaneous connections from the provided Listener.

      func NewKeepAliveListener

      func NewKeepAliveListener(l net.Listener, scheme string, info TLSInfo) (net.Listener, error)

        NewKeepAliveListener returns a listener that listens on the given address. Be careful when wrap around KeepAliveListener with another Listener if TLSInfo is not nil. Some pkgs (like go/http) might expect Listener to return TLSConn type to start TLS handshake. http://tldp.org/HOWTO/TCP-Keepalive-HOWTO/overview.html

        func NewListener

        func NewListener(addr string, scheme string, info TLSInfo) (net.Listener, error)

        func NewTimeoutListener

        func NewTimeoutListener(addr string, scheme string, info TLSInfo, rdtimeoutd, wtimeoutd time.Duration) (net.Listener, error)

          NewTimeoutListener returns a listener that listens on the given address. If read/write on the accepted connection blocks longer than its time limit, it will return timeout error.

          func NewTimeoutTransport

          func NewTimeoutTransport(info TLSInfo, dialtimeoutd, rdtimeoutd, wtimeoutd time.Duration) (*http.Transport, error)

            NewTimeoutTransport returns a transport created using the given TLS info. If read/write on the created connection blocks longer than its time limit, it will return timeout error. If read/write timeout is set, transport will not be able to reuse connection.

            func NewTransport

            func NewTransport(info TLSInfo, dialtimeoutd time.Duration) (*http.Transport, error)

            Types

            type TLSInfo

            type TLSInfo struct {
            	CertFile       string
            	KeyFile        string
            	CAFile         string
            	TrustedCAFile  string
            	ClientCertAuth bool
            	// contains filtered or unexported fields
            }

            func (TLSInfo) ClientConfig

            func (info TLSInfo) ClientConfig() (*tls.Config, error)

              ClientConfig generates a tls.Config object for use by an HTTP client.

              func (TLSInfo) Empty

              func (info TLSInfo) Empty() bool

              func (TLSInfo) ServerConfig

              func (info TLSInfo) ServerConfig() (*tls.Config, error)

                ServerConfig generates a tls.Config object for use by an HTTP server.

                func (TLSInfo) String

                func (info TLSInfo) String() string