mirror of
https://github.com/wyx2685/V2bX.git
synced 2026-02-04 12:40:11 +00:00
fix get node info and node rule error
This commit is contained in:
@@ -78,7 +78,7 @@ func New(apiConfig *Config) API {
|
|||||||
})
|
})
|
||||||
// Read local rule list
|
// Read local rule list
|
||||||
localRuleList := readLocalRuleList(apiConfig.RuleListPath)
|
localRuleList := readLocalRuleList(apiConfig.RuleListPath)
|
||||||
apiClient := &Client{
|
return &Client{
|
||||||
client: client,
|
client: client,
|
||||||
NodeID: apiConfig.NodeID,
|
NodeID: apiConfig.NodeID,
|
||||||
Key: apiConfig.Key,
|
Key: apiConfig.Key,
|
||||||
@@ -91,5 +91,4 @@ func New(apiConfig *Config) API {
|
|||||||
DeviceLimit: apiConfig.DeviceLimit,
|
DeviceLimit: apiConfig.DeviceLimit,
|
||||||
LocalRuleList: localRuleList,
|
LocalRuleList: localRuleList,
|
||||||
}
|
}
|
||||||
return apiClient
|
|
||||||
}
|
}
|
||||||
|
|||||||
37
api/node.go
37
api/node.go
@@ -124,25 +124,34 @@ func (c *Client) GetNodeInfo() (nodeInfo *NodeInfo, err error) {
|
|||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
i := bytes.Index(res.Body(), []byte("outbo"))
|
|
||||||
md := md52.Sum(res.Body()[:i])
|
|
||||||
nodeIsNotChange := false
|
|
||||||
if c.NodeInfoRspMd5 != [16]byte{} {
|
|
||||||
if c.NodeInfoRspMd5 == md {
|
|
||||||
nodeIsNotChange = true
|
|
||||||
}
|
|
||||||
}
|
|
||||||
c.NodeInfoRspMd5 = md
|
|
||||||
c.access.Lock()
|
c.access.Lock()
|
||||||
defer c.access.Unlock()
|
defer c.access.Unlock()
|
||||||
switch c.NodeType {
|
switch c.NodeType {
|
||||||
case "V2ray":
|
case "V2ray":
|
||||||
md2 := md52.Sum(res.Body()[i:])
|
i := bytes.Index(res.Body(), []byte("outbo"))
|
||||||
nodeInfo, err = c.ParseV2rayNodeResponse(res.Body(), nodeIsNotChange, c.NodeRuleRspMd5 != md2)
|
md := md52.Sum(res.Body()[:i])
|
||||||
case "Trojan":
|
nodeIsNotChange := true
|
||||||
if nodeIsNotChange {
|
if c.NodeInfoRspMd5 != [16]byte{} {
|
||||||
return nil, nil
|
if c.NodeInfoRspMd5 != md {
|
||||||
|
nodeIsNotChange = false
|
||||||
|
c.NodeInfoRspMd5 = md
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
md2 := md52.Sum(res.Body()[i:])
|
||||||
|
ruleIsChange := false
|
||||||
|
if c.NodeRuleRspMd5 != md2 {
|
||||||
|
ruleIsChange = true
|
||||||
|
c.NodeRuleRspMd5 = md2
|
||||||
|
}
|
||||||
|
nodeInfo, err = c.ParseV2rayNodeResponse(res.Body(), nodeIsNotChange, ruleIsChange)
|
||||||
|
case "Trojan":
|
||||||
|
md := md52.Sum(res.Body())
|
||||||
|
if c.NodeInfoRspMd5 != [16]byte{} {
|
||||||
|
if c.NodeInfoRspMd5 == md {
|
||||||
|
return nil, nil
|
||||||
|
}
|
||||||
|
}
|
||||||
|
c.NodeInfoRspMd5 = md
|
||||||
nodeInfo, err = c.ParseTrojanNodeResponse(res.Body())
|
nodeInfo, err = c.ParseTrojanNodeResponse(res.Body())
|
||||||
}
|
}
|
||||||
return nodeInfo, nil
|
return nodeInfo, nil
|
||||||
|
|||||||
@@ -125,8 +125,8 @@ func (l *Limiter) GetUserBucket(tag string, email string, ip string) (limiter *r
|
|||||||
inboundInfo := value.(*InboundInfo)
|
inboundInfo := value.(*InboundInfo)
|
||||||
nodeLimit := inboundInfo.NodeSpeedLimit
|
nodeLimit := inboundInfo.NodeSpeedLimit
|
||||||
var userLimit uint64 = 0
|
var userLimit uint64 = 0
|
||||||
var deviceLimit int = 0
|
var deviceLimit = 0
|
||||||
var uid int = 0
|
var uid = 0
|
||||||
if v, ok := inboundInfo.UserInfo.Load(email); ok {
|
if v, ok := inboundInfo.UserInfo.Load(email); ok {
|
||||||
u := v.(UserInfo)
|
u := v.(UserInfo)
|
||||||
uid = u.UID
|
uid = u.UID
|
||||||
|
|||||||
Reference in New Issue
Block a user