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 ¶
type ClientAuth ¶
type ClientAuth struct {
Web bool
// 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.
OverlayPrivateKey key.NodePrivate
// ReceiverPublicKey is the public key of the receiver. Node messages are
// encrypted to this public key.
ReceiverPublicKey key.NodePublic
// ReceiverStunAddr is the address that the receiver is reachable over UDP
// when the overlay is running in P2P mode.
ReceiverStunAddr netip.AddrPort
// ReceiverDERPRegionID is the region id that the receiver is reachable over
// DERP when the overlay is running in DERP mode.
ReceiverDERPRegionID uint16
}
func (*ClientAuth) AuthKey ¶
func (ca *ClientAuth) AuthKey() string
func (*ClientAuth) Parse ¶
func (ca *ClientAuth) Parse(authKey string) error
func (*ClientAuth) PrintDebug ¶ added in v0.0.6
func (ca *ClientAuth) PrintDebug(logf func(str string, args ...any), dm *tailcfg.DERPMap)
type Overlay ¶
type Overlay interface {
// listenOverlay(ctx context.Context, kind string) error
Recv() <-chan *tailcfg.Node
SendTailscaleNodeUpdate(node *tailcfg.Node)
IPs() []netip.Addr
}
Overlay specifies the mechanism by which senders and receivers exchange Tailscale nodes over a sidechannel.
type Receive ¶
type Receive struct {
Logger *slog.Logger
HumanLogf Logf
DerpMap *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.
SelfPriv key.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.
PeerPriv key.NodePrivate
// contains filtered or unexported fields
}
func NewReceiveOverlay ¶
func (*Receive) ClientAuth ¶
func (r *Receive) ClientAuth() *ClientAuth
func (*Receive) ListenOverlaySTUN ¶
func (*Receive) SendTailscaleNodeUpdate ¶ added in v0.4.0
type RtcFileMetadata ¶ added in v0.4.0
type RtcMetadata ¶ added in v0.4.0
type RtcMetadata struct {
Type string `json:"type"`
FileMetadata RtcFileMetadata `json:"fileMetadata"`
}
Click to show internal directories.
Click to hide internal directories.