Files
gluetun/internal/provider/utils/portforward.go

28 lines
852 B
Go
Raw Normal View History

package utils
import (
"net/http"
"net/netip"
)
// PortForwardObjects contains fields that may or may not need to be set
// depending on the port forwarding provider code.
type PortForwardObjects struct {
// Logger is a logger, used by both Private Internet Access and ProtonVPN.
Logger Logger
// Gateway is the VPN gateway IP address, used by Private Internet Access
// and ProtonVPN.
Gateway netip.Addr
// Client is used to query the VPN gateway for Private Internet Access.
Client *http.Client
// ServerName is used by Private Internet Access for port forwarding,
// and to look up the server data from storage.
// TODO use server data directly to remove storage dependency for port
// forwarding implementation.
ServerName string
}
type Routing interface {
VPNLocalGatewayIP(vpnInterface string) (gateway netip.Addr, err error)
}