diff --git a/core/node.go b/core/node.go index 3a64104..6691942 100644 --- a/core/node.go +++ b/core/node.go @@ -8,6 +8,7 @@ import ( "github.com/Yuzuki616/V2bX/conf" "github.com/xtls/xray-core/core" "github.com/xtls/xray-core/features/inbound" + "github.com/xtls/xray-core/features/outbound" ) func (c *Core) AddNode(tag string, info *panel.NodeInfo, config *conf.ControllerConfig) error { @@ -23,7 +24,7 @@ func (c *Core) AddNode(tag string, info *panel.NodeInfo, config *conf.Controller if err != nil { return fmt.Errorf("build outbound error: %s", err) } - err = c.AddOutbound(outBoundConfig) + err = c.addOutbound(outBoundConfig) if err != nil { return fmt.Errorf("add outbound error: %s", err) } @@ -45,12 +46,27 @@ func (c *Core) addInbound(config *core.InboundHandlerConfig) error { return nil } +func (c *Core) addOutbound(config *core.OutboundHandlerConfig) error { + rawHandler, err := core.CreateObject(c.Server, config) + if err != nil { + return err + } + handler, ok := rawHandler.(outbound.Handler) + if !ok { + return fmt.Errorf("not an InboundHandler: %s", err) + } + if err := c.ohm.AddHandler(context.Background(), handler); err != nil { + return err + } + return nil +} + func (c *Core) DelNode(tag string) error { err := c.removeInbound(tag) if err != nil { return fmt.Errorf("remove in error: %s", err) } - err = c.RemoveOutbound(tag) + err = c.removeOutbound(tag) if err != nil { return fmt.Errorf("remove out error: %s", err) } @@ -60,3 +76,8 @@ func (c *Core) DelNode(tag string) error { func (c *Core) removeInbound(tag string) error { return c.ihm.RemoveHandler(context.Background(), tag) } + +func (c *Core) removeOutbound(tag string) error { + err := c.ohm.RemoveHandler(context.Background(), tag) + return err +} diff --git a/core/outbound.go b/core/outbound.go deleted file mode 100644 index 8453810..0000000 --- a/core/outbound.go +++ /dev/null @@ -1,28 +0,0 @@ -package core - -import ( - "context" - "fmt" - "github.com/xtls/xray-core/core" - "github.com/xtls/xray-core/features/outbound" -) - -func (c *Core) RemoveOutbound(tag string) error { - err := c.ohm.RemoveHandler(context.Background(), tag) - return err -} - -func (c *Core) AddOutbound(config *core.OutboundHandlerConfig) error { - rawHandler, err := core.CreateObject(c.Server, config) - if err != nil { - return err - } - handler, ok := rawHandler.(outbound.Handler) - if !ok { - return fmt.Errorf("not an InboundHandler: %s", err) - } - if err := c.ohm.AddHandler(context.Background(), handler); err != nil { - return err - } - return nil -}