mirror of
https://github.com/xjasonlyu/tun2socks.git
synced 2025-10-17 06:10:49 +08:00
Chore: add stack field to Engine
This commit is contained in:
@@ -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
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user