Chore: with engine

This commit is contained in:
xjasonlyu
2022-03-29 19:42:44 +08:00
parent b166ed5e66
commit 2aea811072

View File

@@ -62,13 +62,11 @@ func (e *engine) start() error {
} }
for _, f := range []func() error{ for _, f := range []func() error{
e.applyLogLevel, e.withGeneral,
e.applyDialer, e.withRestAPI,
e.applyRestAPI, e.withProxy,
e.applyUDPTimeout, e.withDevice,
e.applyProxy, e.withStack,
e.applyDevice,
e.applyStack,
} { } {
if err := f(); err != nil { if err := f(); err != nil {
return err return err
@@ -92,28 +90,30 @@ func (e *engine) insert(k *Key) {
e.Key = k e.Key = k
} }
func (e *engine) applyLogLevel() error { func (e *engine) withGeneral() error {
level, err := log.ParseLevel(e.LogLevel) level, err := log.ParseLevel(e.LogLevel)
if err != nil { if err != nil {
return err return err
} }
log.SetLevel(level) log.SetLevel(level)
return nil
}
func (e *engine) applyDialer() error {
if e.Interface != "" { if e.Interface != "" {
dialer.DefaultInterfaceName.Store(e.Interface) dialer.DefaultInterfaceName.Store(e.Interface)
log.Infof("[DIALER] bind to interface: %s", e.Interface) log.Infof("[DIALER] bind to interface: %s", e.Interface)
} }
if e.Mark != 0 { if e.Mark != 0 {
dialer.DefaultRoutingMark.Store(int32(e.Mark)) dialer.DefaultRoutingMark.Store(int32(e.Mark))
log.Infof("[DIALER] set fwmark: %#x", e.Mark) log.Infof("[DIALER] set fwmark: %#x", e.Mark)
} }
if e.UDPTimeout > 0 {
tunnel.SetUDPTimeout(e.UDPTimeout)
}
return nil return nil
} }
func (e *engine) applyRestAPI() error { func (e *engine) withRestAPI() error {
if e.RestAPI != "" { if e.RestAPI != "" {
u, err := parseRestAPI(e.RestAPI) u, err := parseRestAPI(e.RestAPI)
if err != nil { if err != nil {
@@ -131,14 +131,7 @@ func (e *engine) applyRestAPI() error {
return nil return nil
} }
func (e *engine) applyUDPTimeout() error { func (e *engine) withProxy() (err error) {
if e.UDPTimeout > 0 {
tunnel.SetUDPTimeout(e.UDPTimeout)
}
return nil
}
func (e *engine) applyProxy() (err error) {
if e.Proxy == "" { if e.Proxy == "" {
return errors.New("empty proxy") return errors.New("empty proxy")
} }
@@ -148,7 +141,7 @@ func (e *engine) applyProxy() (err error) {
return return
} }
func (e *engine) applyDevice() (err error) { func (e *engine) withDevice() (err error) {
if e.Device == "" { if e.Device == "" {
return errors.New("empty device") return errors.New("empty device")
} }
@@ -157,7 +150,7 @@ func (e *engine) applyDevice() (err error) {
return return
} }
func (e *engine) applyStack() (err error) { func (e *engine) withStack() (err error) {
defer func() { defer func() {
if err == nil { if err == nil {
log.Infof( log.Infof(