Merge branch 'dev_new' of github.com:wyx2685/V2bX into dev_new

This commit is contained in:
wyx2685
2025-12-03 05:24:57 +09:00
3 changed files with 30 additions and 13 deletions

View File

@@ -3,6 +3,7 @@ package panel
import (
"errors"
"fmt"
"net"
"strconv"
"strings"
"time"
@@ -18,6 +19,7 @@ import (
type Client struct {
client *resty.Client
APIHost string
APISendIP string
Token string
NodeType string
NodeId int
@@ -29,7 +31,14 @@ type Client struct {
}
func New(c *conf.ApiConfig) (*Client, error) {
client := resty.New()
var client *resty.Client
if c.APISendIP != "" {
client = resty.NewWithLocalAddr(&net.TCPAddr{
IP: net.ParseIP(c.APISendIP),
})
} else {
client = resty.New()
}
client.SetRetryCount(3)
if c.Timeout > 0 {
client.SetTimeout(time.Duration(c.Timeout) * time.Second)
@@ -69,12 +78,13 @@ func New(c *conf.ApiConfig) (*Client, error) {
"token": c.Key,
})
return &Client{
client: client,
Token: c.Key,
APIHost: c.APIHost,
NodeType: c.NodeType,
NodeId: c.NodeID,
UserList: &UserListBody{},
AliveMap: &AliveMap{},
client: client,
Token: c.Key,
APIHost: c.APIHost,
APISendIP: c.APISendIP,
NodeType: c.NodeType,
NodeId: c.NodeID,
UserList: &UserListBody{},
AliveMap: &AliveMap{},
}, nil
}

View File

@@ -19,11 +19,17 @@ type Conn struct {
}
func (c *Conn) Read(b []byte) (n int, err error) {
c.limiter.Wait(int64(len(b)))
return c.Conn.Read(b)
n, err = c.Conn.Read(b)
if n > 0 {
c.limiter.Wait(int64(n))
}
return n, err
}
func (c *Conn) Write(b []byte) (n int, err error) {
c.limiter.Wait(int64(len(b)))
return c.Conn.Write(b)
}
n, err = c.Conn.Write(b)
if n > 0 {
c.limiter.Wait(int64(n))
}
return n, err
}

View File

@@ -25,6 +25,7 @@ type rawNodeConfig struct {
type ApiConfig struct {
APIHost string `json:"ApiHost"`
APISendIP string `json:"ApiSendIP"`
NodeID int `json:"NodeID"`
Key string `json:"ApiKey"`
NodeType string `json:"NodeType"`