tsnet

package
v0.11.1 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jul 20, 2025 License: MIT Imports: 10 Imported by: 0

Documentation

Overview

Package tsnet provides interfaces and implementations for Tailscale tsnet integration.

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type LocalClient

type LocalClient interface {
	// WhoIs returns information about the connecting client.
	WhoIs(ctx context.Context, remoteAddr string) (*apitype.WhoIsResponse, error)
	// StatusWithoutPeers returns the status without peer information.
	StatusWithoutPeers(ctx context.Context) (*ipnstate.Status, error)
}

LocalClient is an interface for tailscale LocalClient operations.

type MockLocalClient

type MockLocalClient struct {
	WhoIsFunc              func(ctx context.Context, remoteAddr string) (*apitype.WhoIsResponse, error)
	StatusWithoutPeersFunc func(ctx context.Context) (*ipnstate.Status, error)
}

MockLocalClient is a mock implementation of LocalClient for testing.

func (*MockLocalClient) StatusWithoutPeers added in v0.2.0

func (m *MockLocalClient) StatusWithoutPeers(ctx context.Context) (*ipnstate.Status, error)

StatusWithoutPeers implements LocalClient.

func (*MockLocalClient) WhoIs

func (m *MockLocalClient) WhoIs(ctx context.Context, remoteAddr string) (*apitype.WhoIsResponse, error)

WhoIs implements LocalClient.

type MockTSNetServer

type MockTSNetServer struct {
	Hostname  string
	Dir       string
	AuthKey   string
	Ephemeral bool
	Logf      logger.Logf

	ListenFunc       func(network, addr string) (net.Listener, error)
	ListenTLSFunc    func(network, addr string) (net.Listener, error)
	ListenFunnelFunc func(network, addr string) (net.Listener, error)
	CloseFunc        func() error
	StartFunc        func() error
	LocalClientFunc  func() (LocalClient, error)
}

MockTSNetServer is a mock implementation of TSNetServer for testing.

func NewMockTSNetServer

func NewMockTSNetServer() *MockTSNetServer

NewMockTSNetServer creates a new MockTSNetServer instance.

func (*MockTSNetServer) Close

func (m *MockTSNetServer) Close() error

Close implements TSNetServer.

func (*MockTSNetServer) Listen

func (m *MockTSNetServer) Listen(network, addr string) (net.Listener, error)

Listen implements TSNetServer.

func (*MockTSNetServer) ListenFunnel

func (m *MockTSNetServer) ListenFunnel(network, addr string) (net.Listener, error)

ListenFunnel implements TSNetServer.

func (*MockTSNetServer) ListenTLS

func (m *MockTSNetServer) ListenTLS(network, addr string) (net.Listener, error)

ListenTLS implements TSNetServer.

func (*MockTSNetServer) LocalClient

func (m *MockTSNetServer) LocalClient() (LocalClient, error)

LocalClient implements TSNetServer.

func (*MockTSNetServer) SetAuthKey

func (m *MockTSNetServer) SetAuthKey(authKey string)

SetAuthKey implements TSNetServer.

func (*MockTSNetServer) SetControlURL added in v0.10.0

func (m *MockTSNetServer) SetControlURL(controlURL string)

SetControlURL implements TSNetServer.

func (*MockTSNetServer) SetDir

func (m *MockTSNetServer) SetDir(dir string)

SetDir implements TSNetServer.

func (*MockTSNetServer) SetEphemeral

func (m *MockTSNetServer) SetEphemeral(ephemeral bool)

SetEphemeral implements TSNetServer.

func (*MockTSNetServer) SetHostname

func (m *MockTSNetServer) SetHostname(hostname string)

SetHostname implements TSNetServer.

func (*MockTSNetServer) Start

func (m *MockTSNetServer) Start() error

Start implements TSNetServer.

type RealLocalClient

type RealLocalClient struct {
	// contains filtered or unexported fields
}

RealLocalClient wraps a real local.Client.

func (*RealLocalClient) StatusWithoutPeers added in v0.2.0

func (c *RealLocalClient) StatusWithoutPeers(ctx context.Context) (*ipnstate.Status, error)

StatusWithoutPeers implements LocalClient.

func (*RealLocalClient) WhoIs

func (c *RealLocalClient) WhoIs(ctx context.Context, remoteAddr string) (*apitype.WhoIsResponse, error)

WhoIs implements LocalClient.

type RealTSNetServer

type RealTSNetServer struct {
	tsnet.Server
}

RealTSNetServer wraps a real tsnet.Server to implement TSNetServer.

func NewRealTSNetServer

func NewRealTSNetServer(serviceName string) *RealTSNetServer

NewRealTSNetServer creates a new RealTSNetServer instance.

func (*RealTSNetServer) Close

func (s *RealTSNetServer) Close() error

Close implements TSNetServer.

func (*RealTSNetServer) Listen

func (s *RealTSNetServer) Listen(network, addr string) (net.Listener, error)

Listen implements TSNetServer.

func (*RealTSNetServer) ListenFunnel

func (s *RealTSNetServer) ListenFunnel(network, addr string) (net.Listener, error)

ListenFunnel implements TSNetServer.

func (*RealTSNetServer) ListenTLS

func (s *RealTSNetServer) ListenTLS(network, addr string) (net.Listener, error)

ListenTLS implements TSNetServer.

func (*RealTSNetServer) LocalClient

func (s *RealTSNetServer) LocalClient() (LocalClient, error)

LocalClient implements TSNetServer.

func (*RealTSNetServer) SetAuthKey

func (s *RealTSNetServer) SetAuthKey(authKey string)

SetAuthKey implements TSNetServer.

func (*RealTSNetServer) SetControlURL added in v0.10.0

func (s *RealTSNetServer) SetControlURL(controlURL string)

SetControlURL implements TSNetServer.

func (*RealTSNetServer) SetDir

func (s *RealTSNetServer) SetDir(dir string)

SetDir implements TSNetServer.

func (*RealTSNetServer) SetEphemeral

func (s *RealTSNetServer) SetEphemeral(ephemeral bool)

SetEphemeral implements TSNetServer.

func (*RealTSNetServer) SetHostname

func (s *RealTSNetServer) SetHostname(hostname string)

SetHostname implements TSNetServer.

func (*RealTSNetServer) Start

func (s *RealTSNetServer) Start() error

Start implements TSNetServer.

type TSNetServer

type TSNetServer interface {
	// Listen creates a listener on the Tailscale network.
	Listen(network, addr string) (net.Listener, error)

	// ListenTLS creates a TLS listener on the Tailscale network with
	// automatic certificate management.
	ListenTLS(network, addr string) (net.Listener, error)

	// ListenFunnel creates a listener for serving on Tailscale Funnel.
	ListenFunnel(network, addr string) (net.Listener, error)

	// Close shuts down the server.
	Close() error

	// Start initializes the server connection to Tailscale.
	Start() error

	// LocalClient returns a LocalClient for this server.
	LocalClient() (LocalClient, error)

	// SetHostname sets the hostname for this server.
	SetHostname(hostname string)

	// SetDir sets the state directory for this server.
	SetDir(dir string)

	// SetAuthKey sets the auth key for this server.
	SetAuthKey(authKey string)

	// SetEphemeral sets whether this server should be ephemeral.
	SetEphemeral(ephemeral bool)

	// SetControlURL sets the control server URL.
	SetControlURL(controlURL string)
}

TSNetServer is an interface that abstracts tsnet.Server functionality to enable testing without real network connections.

type TSNetServerFactory

type TSNetServerFactory func(serviceName string) TSNetServer

TSNetServerFactory is a function that creates new TSNetServer instances.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL