mirror of
https://github.com/netbirdio/netbird.git
synced 2024-12-15 03:11:02 +01:00
30ebcf38c7
In the case of user space WireGuard mode, use in-memory proxy between the TURN/Relay connection and the WireGuard Bind. We keep the UDP proxy and eBPF proxy for kernel mode. The key change is the new wgproxy/bind and the iface/bind/ice_bind changes. Everything else is just to fulfill the dependencies.
16 lines
541 B
Go
16 lines
541 B
Go
package wgproxy
|
|
|
|
import (
|
|
"context"
|
|
"net"
|
|
)
|
|
|
|
// Proxy is a transfer layer between the relayed connection and the WireGuard
|
|
type Proxy interface {
|
|
AddTurnConn(ctx context.Context, endpoint *net.UDPAddr, remoteConn net.Conn) error
|
|
EndpointAddr() *net.UDPAddr // EndpointAddr returns the address of the WireGuard peer endpoint
|
|
Work() // Work start or resume the proxy
|
|
Pause() // Pause to forward the packages from remote connection to WireGuard. The opposite way still works.
|
|
CloseConn() error
|
|
}
|