diff --git a/client/internal/engine.go b/client/internal/engine.go index 854b5220c..5e486d18f 100644 --- a/client/internal/engine.go +++ b/client/internal/engine.go @@ -118,9 +118,6 @@ type Engine struct { routeManager routemanager.Manager dnsServer dns.Server - - // userspaceBind indicates whether a - userspaceBind bool } // Peer is an instance of the Connection Peer diff --git a/client/internal/engine_test.go b/client/internal/engine_test.go index 381daed4b..3b46571ee 100644 --- a/client/internal/engine_test.go +++ b/client/internal/engine_test.go @@ -214,6 +214,9 @@ func TestEngine_UpdateNetworkMap(t *testing.T) { t.Fatal(err) } engine.wgInterface, err = iface.NewWGIFace("utun102", "100.64.0.1/24", iface.DefaultMTU, nil, newNet) + if err != nil { + t.Fatal(err) + } engine.routeManager = routemanager.NewManager(ctx, key.PublicKey().String(), engine.wgInterface, engine.statusRecorder) engine.dnsServer = &dns.MockServer{ UpdateDNSServerFunc: func(serial uint64, update nbdns.Config) error { return nil }, diff --git a/client/internal/proxy/direct.go b/client/internal/proxy/direct.go index 10123bd10..58603a831 100644 --- a/client/internal/proxy/direct.go +++ b/client/internal/proxy/direct.go @@ -23,6 +23,7 @@ func NewDirectNoProxy(config Config, remoteWgPort int) *DirectNoProxy { return &DirectNoProxy{config: config, RemoteWgListenPort: remoteWgPort} } +// Close removes peer from the WireGuard interface func (p *DirectNoProxy) Close() error { err := p.config.WgInterface.RemovePeer(p.config.RemoteKey) if err != nil { @@ -50,6 +51,7 @@ func (p *DirectNoProxy) Start(remoteConn net.Conn) error { return nil } +// Type returns the type of this proxy func (p *DirectNoProxy) Type() Type { return TypeDirectNoProxy } diff --git a/client/internal/stdnet/stdnet.go b/client/internal/stdnet/stdnet.go index 142fea80f..76915656e 100644 --- a/client/internal/stdnet/stdnet.go +++ b/client/internal/stdnet/stdnet.go @@ -49,7 +49,7 @@ func (n *Net) filterInterfaces(interfaces []*transport.Interface) []*transport.I // The interfaces are discovered by an external iFaceDiscover function or by a default discoverer if the external one // wasn't specified. func (n *Net) UpdateInterfaces(iFaceDiscover IFaceDiscover) error { - discoveredInterfaces := []*transport.Interface{} + discoveredInterfaces := []*transport.Interface{} //nolint var err error if iFaceDiscover != nil { interfacesString := "" diff --git a/iface/bind/bind.go b/iface/bind/bind.go index a0813be69..846028c53 100644 --- a/iface/bind/bind.go +++ b/iface/bind/bind.go @@ -13,6 +13,7 @@ import ( "syscall" ) +// ICEBind is the userspace implementation of WireGuard's conn.Bind interface using ice.UDPMux of the pion/ice library type ICEBind struct { // below fields, initialized on open sharedConn net.PacketConn @@ -33,6 +34,7 @@ func NewICEBind(transportNet transport.Net) *ICEBind { } } +// GetICEMux returns the ICE UDPMux that was created and used by ICEBind func (b *ICEBind) GetICEMux() (*UniversalUDPMuxDefault, error) { b.mu.Lock() defer b.mu.Unlock() @@ -43,6 +45,7 @@ func (b *ICEBind) GetICEMux() (*UniversalUDPMuxDefault, error) { return b.udpMux, nil } +// Open creates a WireGuard socket and an instance of UDPMux that is used to glue up ICE and WireGuard for hole punching func (b *ICEBind) Open(uport uint16) ([]conn.ReceiveFunc, uint16, error) { b.mu.Lock() defer b.mu.Unlock() @@ -134,6 +137,7 @@ func (b *ICEBind) makeReceiveIPv4(c net.PacketConn) conn.ReceiveFunc { } } +// Close closes the WireGuard socket and UDPMux func (b *ICEBind) Close() error { b.mu.Lock() defer b.mu.Unlock() diff --git a/iface/bind/udp_mux.go b/iface/bind/udp_mux.go index 22c257e22..3cf3753d0 100644 --- a/iface/bind/udp_mux.go +++ b/iface/bind/udp_mux.go @@ -359,6 +359,7 @@ func (m *UDPMuxDefault) createMuxedConn(key string) *udpMuxedConn { return c } +// HandleSTUNMessage handles STUN packets and forwards them to underlying pion/ice library func (m *UDPMuxDefault) HandleSTUNMessage(msg *stun.Message, addr net.Addr) error { remoteAddr, ok := addr.(*net.UDPAddr) diff --git a/iface/bind/udp_mux_universal.go b/iface/bind/udp_mux_universal.go index 54d95afa1..8417c2a5e 100644 --- a/iface/bind/udp_mux_universal.go +++ b/iface/bind/udp_mux_universal.go @@ -70,6 +70,7 @@ type udpConn struct { logger logging.LeveledLogger } +// GetListenAddresses returns the listen addr of this UDPMux func (m *UniversalUDPMuxDefault) GetListenAddresses() []net.Addr { return []net.Addr{m.LocalAddr()} }