Chore(tun): remove with options

This commit is contained in:
xjasonlyu
2021-10-17 14:12:54 +08:00
parent dc8e4f1ba1
commit bf3f4599cc
4 changed files with 9 additions and 32 deletions

View File

@@ -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
}
}

View File

@@ -23,12 +23,8 @@ type TUN struct {
name string name string
} }
func Open(opts ...Option) (device.Device, error) { func Open(name string, mtu uint32) (device.Device, error) {
t := &TUN{} t := &TUN{name: name, mtu: mtu}
for _, opt := range opts {
opt(t)
}
if len(t.name) >= unix.IFNAMSIZ { if len(t.name) >= unix.IFNAMSIZ {
return nil, fmt.Errorf("interface name too long: %s", t.name) 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 { if err != nil {
return nil, fmt.Errorf("get mtu: %w", err) return nil, fmt.Errorf("get mtu: %w", err)
} }
t.mtu = mtu t.mtu = _mtu
ep, err := fdbased.New(&fdbased.Options{ ep, err := fdbased.New(&fdbased.Options{
MTU: t.mtu, MTU: t.mtu,

View File

@@ -19,12 +19,8 @@ type TUN struct {
name string name string
} }
func Open(opts ...Option) (device.Device, error) { func Open(name string, mtu uint32) (device.Device, error) {
t := &TUN{} t := &TUN{name: name, mtu: mtu}
for _, opt := range opts {
opt(t)
}
forcedMTU := defaultMTU forcedMTU := defaultMTU
if t.mtu > 0 { if t.mtu > 0 {
@@ -37,11 +33,11 @@ func Open(opts ...Option) (device.Device, error) {
} }
t.nt = nt.(*tun.NativeTun) t.nt = nt.(*tun.NativeTun)
mtu, err := nt.MTU() _mtu, err := nt.MTU()
if err != nil { if err != nil {
return nil, fmt.Errorf("get mtu: %w", err) return nil, fmt.Errorf("get mtu: %w", err)
} }
t.mtu = uint32(mtu) t.mtu = uint32(_mtu)
ep, err := rwbased.New(t, t.mtu) ep, err := rwbased.New(t, t.mtu)
if err != nil { if err != nil {

View File

@@ -27,7 +27,7 @@ func parseDevice(s string, mtu uint32) (device.Device, error) {
switch driver { switch driver {
case tun.Driver: case tun.Driver:
return tun.Open(tun.WithName(name), tun.WithMTU(mtu)) return tun.Open(name, mtu)
default: default:
return nil, fmt.Errorf("unsupported driver: %s", driver) return nil, fmt.Errorf("unsupported driver: %s", driver)
} }