add conditional compilation support
add multi core support
This commit is contained in:
Yuzuki616
2023-06-08 01:18:56 +08:00
parent 925542b515
commit d76c6a73eb
36 changed files with 1721 additions and 279 deletions

View File

@@ -3,17 +3,18 @@ package node
import (
"errors"
"fmt"
"log"
"github.com/Yuzuki616/V2bX/api/iprecoder"
"github.com/Yuzuki616/V2bX/api/panel"
"github.com/Yuzuki616/V2bX/conf"
"github.com/Yuzuki616/V2bX/core"
vCore "github.com/Yuzuki616/V2bX/core"
"github.com/Yuzuki616/V2bX/limiter"
"github.com/xtls/xray-core/common/task"
"log"
)
type Controller struct {
server *core.Core
server vCore.Core
apiClient *panel.Client
nodeInfo *panel.NodeInfo
Tag string
@@ -28,7 +29,7 @@ type Controller struct {
}
// NewController return a Node controller with default parameters.
func NewController(server *core.Core, api *panel.Client, config *conf.ControllerConfig) *Controller {
func NewController(server vCore.Core, api *panel.Client, config *conf.ControllerConfig) *Controller {
controller := &Controller{
server: server,
ControllerConfig: config,
@@ -68,7 +69,7 @@ func (c *Controller) Start() error {
if err != nil {
return fmt.Errorf("add new tag failed: %s", err)
}
added, err := c.server.AddUsers(&core.AddUsersParams{
added, err := c.server.AddUsers(&vCore.AddUsersParams{
Tag: c.Tag,
Config: c.ControllerConfig,
UserInfo: c.userList,

View File

@@ -3,7 +3,7 @@ package node
import (
"github.com/Yuzuki616/V2bX/api/panel"
"github.com/Yuzuki616/V2bX/conf"
"github.com/Yuzuki616/V2bX/core"
vCore "github.com/Yuzuki616/V2bX/core"
)
type Node struct {
@@ -14,7 +14,7 @@ func New() *Node {
return &Node{}
}
func (n *Node) Start(nodes []*conf.NodeConfig, core *core.Core) error {
func (n *Node) Start(nodes []*conf.NodeConfig, core vCore.Core) error {
n.controllers = make([]*Controller, len(nodes))
for i, c := range nodes {
p, err := panel.New(c.ApiConfig)

View File

@@ -2,16 +2,18 @@ package node
import (
"fmt"
"github.com/Yuzuki616/V2bX/api/panel"
"github.com/Yuzuki616/V2bX/common/builder"
"github.com/Yuzuki616/V2bX/core"
"github.com/Yuzuki616/V2bX/limiter"
"github.com/Yuzuki616/V2bX/node/lego"
"github.com/xtls/xray-core/common/task"
"log"
"runtime"
"strconv"
"time"
vCore "github.com/Yuzuki616/V2bX/core"
"github.com/Yuzuki616/V2bX/api/panel"
"github.com/Yuzuki616/V2bX/common/builder"
"github.com/Yuzuki616/V2bX/limiter"
"github.com/Yuzuki616/V2bX/node/lego"
"github.com/xtls/xray-core/common/task"
)
func (c *Controller) initTask() {
@@ -90,7 +92,7 @@ func (c *Controller) nodeInfoMonitor() (err error) {
c.userList = newUserInfo
// Add new Limiter
l := limiter.AddLimiter(c.Tag, &c.LimitConfig, newUserInfo)
_, err = c.server.AddUsers(&core.AddUsersParams{
_, err = c.server.AddUsers(&vCore.AddUsersParams{
Tag: c.Tag,
Config: c.ControllerConfig,
})
@@ -131,13 +133,13 @@ func (c *Controller) nodeInfoMonitor() (err error) {
(deleted)[i].Uuid,
(deleted)[i].Id)
}
err := c.server.RemoveUsers(deletedEmail, c.Tag)
err := c.server.DelUsers(deletedEmail, c.Tag)
if err != nil {
log.Print(err)
}
}
if len(added) > 0 {
_, err := c.server.AddUsers(&core.AddUsersParams{
_, err := c.server.AddUsers(&vCore.AddUsersParams{
Tag: c.Tag,
Config: c.ControllerConfig,
UserInfo: added,