wg

package
v0.0.328 Latest Latest
Warning

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

Go to latest
Published: May 18, 2022 License: Apache-2.0 Imports: 25 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 added in v0.0.320

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 added in v0.0.296

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

func (*Tunnel) LookupAAAA added in v0.0.233

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

func (*Tunnel) LookupTXT added in v0.0.233

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

func (*Tunnel) Resolver

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

type WireGuardState added in v0.0.216

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 added in v0.0.216

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 added in v0.0.320

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

func NewWsWgProxy added in v0.0.320

func NewWsWgProxy() (*WsWgProxy, error)

func (*WsWgProxy) Connect added in v0.0.320

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

func (*WsWgProxy) Port added in v0.0.320

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