feat: add support for unsupported platforms in wireguard overlay
Kim committed
May 8, 2026 at 10:30 UTC
7b04411dc893f220a497de62f742973184503057
3 files changed
+47
-8
portal/overlay/overlay.go
+8
@@ -16,6 +16,14 @@ import (
16
"github.com/gosuda/portal-tunnel/v2/utils"
17
)
18
19
+const (
20
+ DefaultMTU = 1420
21
+ DefaultListenPort = 51820
22
+ DefaultPeerAPIHTTPPort = 7777
23
+ DefaultPeerYamuxPort = 7778
24
+ DefaultPersistentKeepalive = 25
25
+)
26
+
27
type Config struct {
28
PrivateKey string
29
PublicKey string
portal/overlay/stack.go
+3
-8
@@ -1,3 +1,5 @@
1
+//go:build linux || darwin || windows || freebsd || openbsd
2
+
3
package overlay
4
5
import (
@@ -19,14 +21,7 @@ import (
21
"github.com/gosuda/portal-tunnel/v2/utils"
22
)
23
22
-const (
23
- DefaultMTU = 1420
24
- DefaultListenPort = 51820
25
- DefaultPeerAPIHTTPPort = 7777
26
- DefaultPeerYamuxPort = 7778
27
- DefaultPersistentKeepalive = 25
28
- defaultEndpointResolveTTL = 3 * time.Second
29
-)
24
+const defaultEndpointResolveTTL = 3 * time.Second
25
26
type stack struct {
27
device *device.Device
portal/overlay/stack_unsupported.go
new
+36
@@ -0,0 +1,36 @@
1
+//go:build !linux && !darwin && !windows && !freebsd && !openbsd
2
+
3
+package overlay
4
+
5
+import (
6
+ "context"
7
+ "fmt"
8
+ "net"
9
+ "runtime"
10
+
11
+ "github.com/gosuda/portal-tunnel/v2/types"
12
+)
13
+
14
+var errUnsupportedOverlay = fmt.Errorf("wireguard overlay is not supported on %s/%s", runtime.GOOS, runtime.GOARCH)
15
+
16
+type stack struct{}
17
+
18
+func newStack(Config) (*stack, error) {
19
+ return nil, errUnsupportedOverlay
20
+}
21
+
22
+func (*stack) ListenTCP(int) (net.Listener, error) {
23
+ return nil, errUnsupportedOverlay
24
+}
25
+
26
+func (*stack) DialContext(context.Context, string, string) (net.Conn, error) {
27
+ return nil, errUnsupportedOverlay
28
+}
29
+
30
+func (*stack) ApplyPeers([]types.RelayDescriptor) error {
31
+ return errUnsupportedOverlay
32
+}
33
+
34
+func (*stack) Close() error {
35
+ return nil
36
+}