Chore: add stack field to Engine

This commit is contained in:
xjasonlyu
2021-02-07 18:38:19 +08:00
parent ea1832adaa
commit 103009cb1d

View File

@@ -20,6 +20,7 @@ type Engine struct {
rawProxy string rawProxy string
rawDevice string rawDevice string
stack *stack.Stack
proxy proxy.Proxy proxy proxy.Proxy
device device.Device device device.Device
} }
@@ -86,42 +87,34 @@ func (e *Engine) setStats() error {
return nil return nil
} }
func (e *Engine) setProxy() error { func (e *Engine) setProxy() (err error) {
if e.rawProxy == "" { if e.rawProxy == "" {
return errors.New("empty proxy") return errors.New("empty proxy")
} }
p, err := parseProxy(e.rawProxy) e.proxy, err = parseProxy(e.rawProxy)
if err != nil { proxy.SetDialer(e.proxy)
return err return
}
e.proxy = p
proxy.SetDialer(p)
return nil
} }
func (e *Engine) setDevice() error { func (e *Engine) setDevice() (err error) {
if e.rawDevice == "" { if e.rawDevice == "" {
return errors.New("empty device") return errors.New("empty device")
} }
d, err := parseDevice(e.rawDevice, e.mtu) e.device, err = parseDevice(e.rawDevice, e.mtu)
if err != nil { return
return err
}
e.device = d
return nil
} }
func (e *Engine) setStack() error { func (e *Engine) setStack() (err error) {
handler := &fakeTunnel{} handler := &fakeTunnel{}
if _, err := stack.New(e.device, handler, stack.WithDefault()); err != nil { e.stack, err = stack.New(e.device, handler, stack.WithDefault())
return err if err != nil {
}
log.Infof( log.Infof(
"[STACK] %s://%s <-> %s://%s", "[STACK] %s://%s <-> %s://%s",
e.device.Type(), e.device.Name(), e.device.Type(), e.device.Name(),
e.proxy.Proto(), e.proxy.Addr(), e.proxy.Proto(), e.proxy.Addr(),
) )
return nil }
return
} }