Documentation
¶
Overview ¶
Package tsnet provides interfaces and implementations for Tailscale tsnet integration.
Index ¶
- type LocalClient
- type MockLocalClient
- type MockTSNetServer
- func (m *MockTSNetServer) Close() error
- func (m *MockTSNetServer) Listen(network, addr string) (net.Listener, error)
- func (m *MockTSNetServer) ListenFunnel(network, addr string) (net.Listener, error)
- func (m *MockTSNetServer) ListenTLS(network, addr string) (net.Listener, error)
- func (m *MockTSNetServer) LocalClient() (LocalClient, error)
- func (m *MockTSNetServer) SetAuthKey(authKey string)
- func (m *MockTSNetServer) SetControlURL(controlURL string)
- func (m *MockTSNetServer) SetDir(dir string)
- func (m *MockTSNetServer) SetEphemeral(ephemeral bool)
- func (m *MockTSNetServer) SetHostname(hostname string)
- func (m *MockTSNetServer) Start() error
- type RealLocalClient
- type RealTSNetServer
- func (s *RealTSNetServer) Close() error
- func (s *RealTSNetServer) Listen(network, addr string) (net.Listener, error)
- func (s *RealTSNetServer) ListenFunnel(network, addr string) (net.Listener, error)
- func (s *RealTSNetServer) ListenTLS(network, addr string) (net.Listener, error)
- func (s *RealTSNetServer) LocalClient() (LocalClient, error)
- func (s *RealTSNetServer) SetAuthKey(authKey string)
- func (s *RealTSNetServer) SetControlURL(controlURL string)
- func (s *RealTSNetServer) SetDir(dir string)
- func (s *RealTSNetServer) SetEphemeral(ephemeral bool)
- func (s *RealTSNetServer) SetHostname(hostname string)
- func (s *RealTSNetServer) Start() error
- type TSNetServer
- type TSNetServerFactory
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
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
StatusWithoutPeers implements LocalClient.
func (*RealLocalClient) WhoIs ¶
func (c *RealLocalClient) WhoIs(ctx context.Context, remoteAddr string) (*apitype.WhoIsResponse, error)
WhoIs implements LocalClient.
type RealTSNetServer ¶
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.