Maint: port forwarding refactoring (#543)
- portforward package - portforward run loop - Less functional arguments and cycles
This commit is contained in:
@@ -2,17 +2,21 @@ package utils
|
||||
|
||||
import (
|
||||
"context"
|
||||
"errors"
|
||||
"fmt"
|
||||
"net"
|
||||
"net/http"
|
||||
|
||||
"github.com/qdm12/gluetun/internal/firewall"
|
||||
"github.com/qdm12/golibs/logging"
|
||||
)
|
||||
|
||||
type NoPortForwarder interface {
|
||||
PortForward(ctx context.Context, client *http.Client,
|
||||
pfLogger logging.Logger, gateway net.IP, portAllower firewall.PortAllower,
|
||||
syncState func(port uint16) (pfFilepath string))
|
||||
logger logging.Logger, gateway net.IP, serverName string) (
|
||||
port uint16, err error)
|
||||
KeepPortForward(ctx context.Context, client *http.Client,
|
||||
logger logging.Logger, port uint16, gateway net.IP, serverName string) (
|
||||
err error)
|
||||
}
|
||||
|
||||
type NoPortForwarding struct {
|
||||
@@ -25,8 +29,16 @@ func NewNoPortForwarding(providerName string) *NoPortForwarding {
|
||||
}
|
||||
}
|
||||
|
||||
var ErrPortForwardingNotSupported = errors.New("custom port forwarding obtention is not supported")
|
||||
|
||||
func (n *NoPortForwarding) PortForward(ctx context.Context, client *http.Client,
|
||||
pfLogger logging.Logger, gateway net.IP, portAllower firewall.PortAllower,
|
||||
syncState func(port uint16) (pfFilepath string)) {
|
||||
panic("custom port forwarding obtention is not supported for " + n.providerName)
|
||||
logger logging.Logger, gateway net.IP, serverName string) (
|
||||
port uint16, err error) {
|
||||
return 0, fmt.Errorf("%w: for %s", ErrPortForwardingNotSupported, n.providerName)
|
||||
}
|
||||
|
||||
func (n *NoPortForwarding) KeepPortForward(ctx context.Context, client *http.Client,
|
||||
logger logging.Logger, port uint16, gateway net.IP, serverName string) (
|
||||
err error) {
|
||||
return fmt.Errorf("%w: for %s", ErrPortForwardingNotSupported, n.providerName)
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user