diff --git a/core/device/tun/opts.go b/core/device/tun/opts.go deleted file mode 100755 index b1a474a..0000000 --- a/core/device/tun/opts.go +++ /dev/null @@ -1,15 +0,0 @@ -package tun - -type Option func(*TUN) - -func WithName(name string) Option { - return func(t *TUN) { - t.name = name - } -} - -func WithMTU(mtu uint32) Option { - return func(t *TUN) { - t.mtu = mtu - } -} diff --git a/core/device/tun/tun_gvisor.go b/core/device/tun/tun_gvisor.go index 6a36c46..b00f8da 100755 --- a/core/device/tun/tun_gvisor.go +++ b/core/device/tun/tun_gvisor.go @@ -23,12 +23,8 @@ type TUN struct { name string } -func Open(opts ...Option) (device.Device, error) { - t := &TUN{} - - for _, opt := range opts { - opt(t) - } +func Open(name string, mtu uint32) (device.Device, error) { + t := &TUN{name: name, mtu: mtu} if len(t.name) >= unix.IFNAMSIZ { return nil, fmt.Errorf("interface name too long: %s", t.name) @@ -46,11 +42,11 @@ func Open(opts ...Option) (device.Device, error) { } } - mtu, err := rawfile.GetMTU(t.name) + _mtu, err := rawfile.GetMTU(t.name) if err != nil { return nil, fmt.Errorf("get mtu: %w", err) } - t.mtu = mtu + t.mtu = _mtu ep, err := fdbased.New(&fdbased.Options{ MTU: t.mtu, diff --git a/core/device/tun/tun_wireguard.go b/core/device/tun/tun_wireguard.go index 500ac6c..feeffbd 100755 --- a/core/device/tun/tun_wireguard.go +++ b/core/device/tun/tun_wireguard.go @@ -19,12 +19,8 @@ type TUN struct { name string } -func Open(opts ...Option) (device.Device, error) { - t := &TUN{} - - for _, opt := range opts { - opt(t) - } +func Open(name string, mtu uint32) (device.Device, error) { + t := &TUN{name: name, mtu: mtu} forcedMTU := defaultMTU if t.mtu > 0 { @@ -37,11 +33,11 @@ func Open(opts ...Option) (device.Device, error) { } t.nt = nt.(*tun.NativeTun) - mtu, err := nt.MTU() + _mtu, err := nt.MTU() if err != nil { return nil, fmt.Errorf("get mtu: %w", err) } - t.mtu = uint32(mtu) + t.mtu = uint32(_mtu) ep, err := rwbased.New(t, t.mtu) if err != nil { diff --git a/engine/parse.go b/engine/parse.go index 24e60e1..bef45ae 100644 --- a/engine/parse.go +++ b/engine/parse.go @@ -27,7 +27,7 @@ func parseDevice(s string, mtu uint32) (device.Device, error) { switch driver { case tun.Driver: - return tun.Open(tun.WithName(name), tun.WithMTU(mtu)) + return tun.Open(name, mtu) default: return nil, fmt.Errorf("unsupported driver: %s", driver) }