overlay
package v0.4.1
Go to latest Published: Jan 7, 2025 License:CC0-1.0
Opens a new window with list of versions in this module.
Latest LatestThis package is not in the latest version of its module.
Opens a new window with license information.
Imports:32 Opens a new window with list of imports.
Imported by:0 Opens a new window with list of known importers.
Details
Validgo.mod file
The Go module system was introduced in Go 1.11 and is the official dependency management solution for Go.
Redistributable license
Redistributable licenses place minimal restrictions on how software can be used, modified, and redistributed.
Tagged version
Modules with tagged versions give importers more predictable builds.
Stable version
When a project reaches major version v1 it is considered stable.
- Learn more about best practices
Repository
Links
Documentation¶
Index¶
- Constants
- Variables
- type ClientAuth
- type HostInfo
- type Logf
- type Overlay
- type Receive
- func (r *Receive) ClientAuth() *ClientAuth
- func (r *Receive) IPs() []netip.Addr
- func (r *Receive) ListenOverlayDERP(ctx context.Context) error
- func (r *Receive) ListenOverlaySTUN(ctx context.Context) (<-chan struct{}, error)
- func (r *Receive) PickDERPHome(ctx context.Context) error
- func (r *Receive) Recv() <-chan *tailcfg.Node
- func (r *Receive) SendTailscaleNodeUpdate(node *tailcfg.Node)
- type RtcFileMetadata
- type RtcMetadata
- type Send
Constants¶
View Source
const (RtcMetadataTypeFileMetadata = "file_metadata"RtcMetadataTypeFileComplete = "file_complete"RtcMetadataTypeFileAck = "file_ack")
Variables¶
View Source
var TailscaleServicePrefix6 = [6]byte{0xfd, 0x7a, 0x11, 0x5c, 0xa1, 0xe0}
Functions¶
This section is empty.
Types¶
typeClientAuth¶
type ClientAuth struct {Webbool// OverlayPrivateKey is the main auth mechanism used to secure the overlay.// Peers are sent this private key to encrypt node communication to the// receiver. Leaking this private key would allow anyone to connect.OverlayPrivateKeykey.NodePrivate// ReceiverPublicKey is the public key of the receiver. Node messages are// encrypted to this public key.ReceiverPublicKeykey.NodePublic// ReceiverStunAddr is the address that the receiver is reachable over UDP// when the overlay is running in P2P mode.ReceiverStunAddrnetip.AddrPort// ReceiverDERPRegionID is the region id that the receiver is reachable over// DERP when the overlay is running in DERP mode.ReceiverDERPRegionIDuint16}
func (*ClientAuth)AuthKey¶
func (ca *ClientAuth) AuthKey()string
func (*ClientAuth)Parse¶
func (ca *ClientAuth) Parse(authKeystring)error
func (*ClientAuth)PrintDebug¶added inv0.0.6
func (ca *ClientAuth) PrintDebug(logf func(strstring, args ...any), dm *tailcfg.DERPMap)
typeOverlay¶
type Overlay interface {// listenOverlay(ctx context.Context, kind string) errorRecv() <-chan *tailcfg.NodeSendTailscaleNodeUpdate(node *tailcfg.Node)IPs() []netip.Addr}
Overlay specifies the mechanism by which senders and receivers exchangeTailscale nodes over a sidechannel.
typeReceive¶
type Receive struct {Logger *slog.LoggerHumanLogfLogfDerpMap *tailcfg.DERPMap// SelfPriv is the private key that peers will encrypt overlay messages to.// The public key of this is sent in the auth key.SelfPrivkey.NodePrivate// PeerPriv is the main auth mechanism used to secure the overlay. Peers are// sent this private key to encrypt node communication. Leaking this private// key would allow anyone to connect.PeerPrivkey.NodePrivate// contains filtered or unexported fields}
func (*Receive)ClientAuth¶
func (r *Receive) ClientAuth() *ClientAuth
func (*Receive)ListenOverlaySTUN¶
func (*Receive)SendTailscaleNodeUpdate¶added inv0.4.0
typeRtcFileMetadata¶added inv0.4.0
typeRtcMetadata¶added inv0.4.0
type RtcMetadata struct {Typestring `json:"type"`FileMetadataRtcFileMetadata `json:"fileMetadata"`}
Click to show internal directories.
Click to hide internal directories.