wireguardctrl

package module
v0.0.0-...-d81ff3a Latest Latest
Warning

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

Go to latest
Published: May 6, 2019 License: MIT Imports: 6 Imported by: 0

README

wireguardctrl builds.sr.ht status GoDoc Go Report Card

Package wireguardctrl enables control of WireGuard devices on multiple platforms.

For more information on WireGuard, please see https://www.wireguard.com/.

MIT Licensed.

Overview

wireguardctrl can control multiple types of WireGuard devices, including:

  • Linux kernel module devices, via generic netlink
  • userspace devices (e.g. wireguard-go), via the userspace configuration protocol

In the future, if non-Linux operating systems choose to implement WireGuard natively, this package should also be extended to support the native interface of those operating systems.

If you are aware of any efforts on this front, please file an issue.

This package implements WireGuard configuration protocol operations, enabling the configuration of existing WireGuard devices. Operations such as creating WireGuard devices, or applying IP addresses to those devices, are out of scope for this package.

Documentation

Overview

Package wireguardctrl enables control of WireGuard devices on multiple platforms.

For more information on WireGuard, please see https://www.wireguard.com/.

Overview

wireguardctrl can control multiple types of WireGuard devices, including:

  • Linux kernel module devices, via generic netlink
  • userspace devices (e.g. wireguard-go), via the userspace configuration protocol

In the future, if non-Linux operating systems choose to implement WireGuard natively, this package should also be extended to support the native interfaces of those operating systems.

If you are aware of any efforts on this front, please file an issue: https://github.com/mdlayher/wireguardctrl/issues/new.

This package implements WireGuard configuration protocol operations, enabling the configuration of existing WireGuard devices. Operations such as creating WireGuard devices, or applying IP addresses to those devices, are out of scope for this package.

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type Client

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

A Client provides access to WireGuard device information.

func New

func New() (*Client, error)

New creates a new Client.

func (*Client) Close

func (c *Client) Close() error

Close releases resources used by a Client.

func (*Client) ConfigureDevice

func (c *Client) ConfigureDevice(name string, cfg wgtypes.Config) error

ConfigureDevice configures a WireGuard device by its interface name.

Because the zero value of some Go types may be significant to WireGuard for Config fields, only fields which are not nil will be applied when configuring a device.

If the device specified by name does not exist or is not a WireGuard device, an error is returned which can be checked using os.IsNotExist.

func (*Client) Device

func (c *Client) Device(name string) (*wgtypes.Device, error)

Device retrieves a WireGuard device by its interface name.

If the device specified by name does not exist or is not a WireGuard device, an error is returned which can be checked using os.IsNotExist.

func (*Client) Devices

func (c *Client) Devices() ([]*wgtypes.Device, error)

Devices retrieves all WireGuard devices on this system.

Directories

Path Synopsis
cmd
wgctrl
Command wgctrl is a testing utility for interacting with WireGuard via package wireguardctrl.
Command wgctrl is a testing utility for interacting with WireGuard via package wireguardctrl.
internal
wglinux
Package wglinux provides internal access to Linux's WireGuard generic netlink interface.
Package wglinux provides internal access to Linux's WireGuard generic netlink interface.
wglinux/internal/wgh
Package wgh is an auto-generated package which contains constants and types used to access WireGuard information using generic netlink.
Package wgh is an auto-generated package which contains constants and types used to access WireGuard information using generic netlink.
wgtest
Package wgtest contains shared testing utilities for package wireguardctrl.
Package wgtest contains shared testing utilities for package wireguardctrl.
wguser
Package wguser provides internal access to the userspace WireGuard configuration protocol interface.
Package wguser provides internal access to the userspace WireGuard configuration protocol interface.
Package wgtypes provides shared types for the wireguardctrl family of packages.
Package wgtypes provides shared types for the wireguardctrl family of packages.

Jump to

Keyboard shortcuts

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