package yamux
import (
"io"
"math"
"net"
"github.com/libp2p/go-libp2p/core/network"
"github.com/libp2p/go-yamux/v5"
)
var DefaultTransport *Transport
const ID = "/yamux/1.0.0"
func init() {
config := yamux .DefaultConfig ()
config .MaxStreamWindowSize = uint32 (16 * 1024 * 1024 )
config .LogOutput = io .Discard
config .ReadBufSize = 0
config .MaxIncomingStreams = math .MaxUint32
DefaultTransport = (*Transport )(config )
}
type Transport yamux .Config
var _ network .Multiplexer = &Transport {}
func (t *Transport ) NewConn (nc net .Conn , isServer bool , scope network .PeerScope ) (network .MuxedConn , error ) {
var newSpan func () (yamux .MemoryManager , error )
if scope != nil {
newSpan = func () (yamux .MemoryManager , error ) { return scope .BeginSpan () }
}
var s *yamux .Session
var err error
if isServer {
s , err = yamux .Server (nc , t .Config (), newSpan )
} else {
s , err = yamux .Client (nc , t .Config (), newSpan )
}
if err != nil {
return nil , err
}
return NewMuxedConn (s ), nil
}
func (t *Transport ) Config () *yamux .Config {
return (*yamux .Config )(t )
}
The pages are generated with Golds v0.8.2 . (GOOS=linux GOARCH=amd64)
Golds is a Go 101 project developed by Tapir Liu .
PR and bug reports are welcome and can be submitted to the issue list .
Please follow @zigo_101 (reachable from the left QR code) to get the latest news of Golds .