Documentation ¶
Index ¶
- type AddrDialFunc
- type Link
- type Opts
- func (m *Opts) CloneMessageVT() protobuf_go_lite.CloneMessage
- func (m *Opts) CloneVT() *Opts
- func (this *Opts) EqualMessageVT(thatMsg any) bool
- func (this *Opts) EqualVT(that *Opts) bool
- func (x *Opts) GetBufSize() uint32
- func (x *Opts) GetMtu() uint32
- func (x *Opts) GetQuic() *quic.Opts
- func (x *Opts) GetVerbose() bool
- func (x *Opts) MarshalJSON() ([]byte, error)
- func (x *Opts) MarshalProtoJSON(s *json.MarshalState)
- func (x *Opts) MarshalProtoText() string
- func (m *Opts) MarshalToSizedBufferVT(dAtA []byte) (int, error)
- func (m *Opts) MarshalToVT(dAtA []byte) (int, error)
- func (m *Opts) MarshalVT() (dAtA []byte, err error)
- func (*Opts) ProtoMessage()
- func (x *Opts) Reset()
- func (m *Opts) SizeVT() (n int)
- func (x *Opts) String() string
- func (x *Opts) UnmarshalJSON(b []byte) error
- func (x *Opts) UnmarshalProtoJSON(s *json.UnmarshalState)
- func (m *Opts) UnmarshalVT(dAtA []byte) error
- type Transport
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type AddrDialFunc ¶
AddrDialFunc dials an address.
type Opts ¶
type Opts struct { // Quic are the quic protocol options. Quic *quic.Opts `protobuf:"bytes,1,opt,name=quic,proto3" json:"quic,omitempty"` // Verbose turns on verbose debug logging. Verbose bool `protobuf:"varint,2,opt,name=verbose,proto3" json:"verbose,omitempty"` // Mtu sets the maximum size for a single packet. // Defaults to 65000. Mtu uint32 `protobuf:"varint,3,opt,name=mtu,proto3" json:"mtu,omitempty"` // BufSize is the number of packets to buffer. // // Total memory cap is mtu * bufSize. // Defaults to 10. BufSize uint32 `protobuf:"varint,4,opt,name=buf_size,json=bufSize,proto3" json:"bufSize,omitempty"` // contains filtered or unexported fields }
Opts are extra options for the conn.
func (*Opts) CloneMessageVT ¶ added in v0.15.6
func (m *Opts) CloneMessageVT() protobuf_go_lite.CloneMessage
func (*Opts) EqualMessageVT ¶ added in v0.15.6
func (*Opts) GetBufSize ¶
func (*Opts) GetVerbose ¶
func (*Opts) MarshalJSON ¶ added in v0.29.0
MarshalJSON marshals the Opts to JSON.
func (*Opts) MarshalProtoJSON ¶ added in v0.29.0
func (x *Opts) MarshalProtoJSON(s *json.MarshalState)
MarshalProtoJSON marshals the Opts message to JSON.
func (*Opts) MarshalProtoText ¶ added in v0.29.2
func (*Opts) MarshalToSizedBufferVT ¶ added in v0.2.0
func (*Opts) ProtoMessage ¶
func (*Opts) ProtoMessage()
func (*Opts) UnmarshalJSON ¶ added in v0.29.0
UnmarshalJSON unmarshals the Opts from JSON.
func (*Opts) UnmarshalProtoJSON ¶ added in v0.29.0
func (x *Opts) UnmarshalProtoJSON(s *json.UnmarshalState)
UnmarshalProtoJSON unmarshals the Opts message from JSON.
func (*Opts) UnmarshalVT ¶ added in v0.2.0
type Transport ¶
type Transport struct { // Transport is the underlying quic transport *transport_quic.Transport // contains filtered or unexported fields }
Transport implements a Bifrost transport with ordered conns.
An example is a TCP connection: the OS provides an ordered stream of data as the interface for the Go program to use.
func NewTransport ¶
func NewTransport( ctx context.Context, le *logrus.Entry, privKey crypto.PrivKey, tc transport.TransportHandler, opts *Opts, uuid uint64, laddr net.Addr, addrDialer AddrDialFunc, ) (*Transport, error)
NewTransport constructs a new conn-backed transport.
addrDialer is an optional function to enable dialing out.
func (*Transport) HandleConn ¶
func (t *Transport) HandleConn( ctx context.Context, dial bool, c io.ReadWriteCloser, raddr net.Addr, peerID peer.ID, ) (*Link, error)
HandleConn handles an incoming or outgoing connection.
dial indicates if this is the originator (outgoing) conn or not ctx is used for the negotiation phase only if peerID is empty, allows any peer ID on the other end raddr can be nil if peerID is NOT empty