wg

package
v0.0.494-pre-1 Latest Latest
Warning

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

Go to latest
Published: Mar 20, 2023 License: Apache-2.0 Imports: 27 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type Config

type Config struct {
	LocalPrivateKey PrivateKey `toml:"local_private_key"`
	LocalNetwork    *IPNet     `toml:"local_network"`

	RemotePublicKey PublicKey `toml:"remote_public_key"`
	RemoteNetwork   *IPNet    `toml:"remote_network"`

	Endpoint  string `toml:"endpoint"`
	DNS       net.IP `toml:"dns"`
	KeepAlive int    `toml:"keepalive"`
	MTU       int    `toml:"mtu"`
	LogLevel  int    `toml:"log_level"`
}

type IPNet

type IPNet net.IPNet

func (*IPNet) MarshalText

func (n *IPNet) MarshalText() ([]byte, error)

func (*IPNet) String

func (n *IPNet) String() string

func (*IPNet) UnmarshalText

func (n *IPNet) UnmarshalText(text []byte) error

type PrivateKey

type PrivateKey device.NoisePrivateKey

func (PrivateKey) MarshalText

func (pk PrivateKey) MarshalText() ([]byte, error)

func (PrivateKey) ToHex

func (pk PrivateKey) ToHex() string

func (*PrivateKey) UnmarshalText

func (pk *PrivateKey) UnmarshalText(text []byte) error

type PublicKey

type PublicKey device.NoisePublicKey

func (PublicKey) MarshalText

func (pk PublicKey) MarshalText() ([]byte, error)

func (PublicKey) ToHex

func (pk PublicKey) ToHex() string

func (*PublicKey) UnmarshalText

func (pk *PublicKey) UnmarshalText(text []byte) error

type Tunnel

type Tunnel struct {
	State  *WireGuardState
	Config *Config
	// contains filtered or unexported fields
}

func Connect

func Connect(ctx context.Context, state *WireGuardState) (*Tunnel, error)

func ConnectWS

func ConnectWS(ctx context.Context, state *WireGuardState) (*Tunnel, error)

func (*Tunnel) Close

func (t *Tunnel) Close() error

func (*Tunnel) DialContext

func (t *Tunnel) DialContext(ctx context.Context, network, addr string) (net.Conn, error)

func (*Tunnel) ListenPing

func (t *Tunnel) ListenPing() (*netstack.PingConn, error)

func (*Tunnel) LookupAAAA

func (t *Tunnel) LookupAAAA(ctx context.Context, name string) ([]net.IP, error)

func (*Tunnel) LookupTXT

func (t *Tunnel) LookupTXT(ctx context.Context, name string) ([]string, error)

func (*Tunnel) Resolver

func (t *Tunnel) Resolver() *net.Resolver

type WireGuardState

type WireGuardState struct {
	Org          string                   `json:"org"`
	Name         string                   `json:"name"`
	Region       string                   `json:"region"`
	LocalPublic  string                   `json:"localprivate"`
	LocalPrivate string                   `json:"localpublic"`
	DNS          string                   `json:"dns"`
	Peer         api.CreatedWireGuardPeer `json:"peer"`
}

func (*WireGuardState) TunnelConfig

func (s *WireGuardState) TunnelConfig() *Config

BUG(tqbf): Obviously all this needs to go, and I should just make my code conform to the marshal/unmarshal protocol wireguard-go uses, but in the service of landing this feature, I'm just going to apply a layer of spackle for now.

type WsWgProxy

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

func NewWsWgProxy

func NewWsWgProxy() (*WsWgProxy, error)

func (*WsWgProxy) Connect

func (wswg *WsWgProxy) Connect(endpoint string) error

func (*WsWgProxy) Port

func (wswg *WsWgProxy) Port() (int, error)

Notes

Bugs

  • Obviously all this needs to go, and I should just make my code conform to the marshal/unmarshal protocol wireguard-go uses, but in the service of landing this feature, I'm just going to apply a layer of spackle for now.

  • for now, we never manage tunnels for different organizations, and while this comment is eating more space than the code I'd need to do this right, it's more fun to type, so we just hardcode.

  • I think this dance just because these needed to parse for Ben's TOML code.

Jump to

Keyboard shortcuts

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