Documentation
¶
Index ¶
Constants ¶
View Source
const ( DirectDialEvtT = "DirectDial" ProtocolErrorEvtT = "ProtocolError" StartHolePunchEvtT = "StartHolePunch" EndHolePunchEvtT = "EndHolePunch" HolePunchAttemptEvtT = "HolePunchAttempt" )
Event Types
View Source
const Protocol protocol.ID = "/libp2p/dcutr"
Protocol is the libp2p protocol for Hole Punching.
View Source
const (
ServiceName = "libp2p.holepunch"
)
TODO Should we have options for these ?
Variables ¶
View Source
var ( // ErrHolePunchActive is returned from DirectConnect when another hole punching attempt is currently running ErrHolePunchActive = errors.New("another hole punching attempt to this peer is active") // ErrClosed is returned when the hole punching is closed ErrClosed = errors.New("hole punching service closing") )
View Source
var StreamTimeout = 1 * time.Minute
StreamTimeout is the timeout for the hole punch protocol stream.
Functions ¶
This section is empty.
Types ¶
type DirectDialEvt ¶
type DirectDialEvt struct { Success bool EllapsedTime time.Duration Error string `json:",omitempty"` }
Event Objects
type EndHolePunchEvt ¶
type EventTracer ¶
type EventTracer interface {
Trace(evt *Event)
}
type HolePunchAttemptEvt ¶
type HolePunchAttemptEvt struct {
Attempt int
}
type Option ¶
func WithTracer ¶
func WithTracer(tr EventTracer) Option
WithTracer is a Service option that enables hole punching tracing
type ProtocolErrorEvt ¶
type ProtocolErrorEvt struct {
Error string
}
type Service ¶
type Service struct {
// contains filtered or unexported fields
}
The Service is used to make direct connections with a peer via hole-punching.
func NewService ¶
NewService creates a new service that can be used for hole punching
type StartHolePunchEvt ¶
Click to show internal directories.
Click to hide internal directories.