mirror of
https://github.com/wyx2685/V2bX.git
synced 2025-01-22 09:58:14 -05:00
fix get node info,fix trojan builder
This commit is contained in:
parent
21bd807e99
commit
5c7356a8da
36
api/node.go
36
api/node.go
@ -56,17 +56,17 @@ func readLocalRuleList(path string) (LocalRuleList []DetectRule) {
|
||||
}
|
||||
|
||||
type NodeInfo struct {
|
||||
DeviceLimit int
|
||||
SpeedLimit uint64
|
||||
NodeType string
|
||||
NodeId int
|
||||
TLSType string
|
||||
EnableVless bool
|
||||
EnableTls bool
|
||||
EnableSS2022 bool
|
||||
V2ray *V2rayConfig
|
||||
Trojan *TrojanConfig
|
||||
SS *SSConfig
|
||||
DeviceLimit int
|
||||
SpeedLimit uint64
|
||||
NodeType string
|
||||
NodeId int
|
||||
TLSType string
|
||||
EnableVless bool
|
||||
EnableTls bool
|
||||
//EnableSS2022 bool
|
||||
V2ray *V2rayConfig
|
||||
Trojan *TrojanConfig
|
||||
SS *SSConfig
|
||||
}
|
||||
|
||||
type SSConfig struct {
|
||||
@ -130,10 +130,13 @@ func (c *Client) GetNodeInfo() (nodeInfo *NodeInfo, err error) {
|
||||
case "V2ray":
|
||||
i := bytes.Index(res.Body(), []byte("outbo"))
|
||||
md := md52.Sum(res.Body()[:i])
|
||||
nodeIsNotChange := true
|
||||
if c.NodeInfoRspMd5 != [16]byte{} {
|
||||
nodeNotIsChange := true
|
||||
if c.NodeInfoRspMd5 == [16]byte{} {
|
||||
nodeNotIsChange = false
|
||||
c.NodeInfoRspMd5 = md
|
||||
} else {
|
||||
if c.NodeInfoRspMd5 != md {
|
||||
nodeIsNotChange = false
|
||||
nodeNotIsChange = false
|
||||
c.NodeInfoRspMd5 = md
|
||||
}
|
||||
}
|
||||
@ -143,7 +146,7 @@ func (c *Client) GetNodeInfo() (nodeInfo *NodeInfo, err error) {
|
||||
ruleIsChange = true
|
||||
c.NodeRuleRspMd5 = md2
|
||||
}
|
||||
nodeInfo, err = c.ParseV2rayNodeResponse(res.Body(), nodeIsNotChange, ruleIsChange)
|
||||
nodeInfo, err = c.ParseV2rayNodeResponse(res.Body(), nodeNotIsChange, ruleIsChange)
|
||||
case "Trojan":
|
||||
md := md52.Sum(res.Body())
|
||||
if c.NodeInfoRspMd5 != [16]byte{} {
|
||||
@ -189,6 +192,7 @@ func (c *Client) ParseTrojanNodeResponse(body []byte) (*NodeInfo, error) {
|
||||
node.DeviceLimit = c.DeviceLimit
|
||||
node.NodeId = c.NodeID
|
||||
node.NodeType = c.NodeType
|
||||
node.Trojan.TransportProtocol = "tcp"
|
||||
return node, nil
|
||||
}
|
||||
|
||||
@ -225,7 +229,7 @@ func (c *Client) ParseSSNodeResponse() (*NodeInfo, error) {
|
||||
|
||||
// ParseV2rayNodeResponse parse the response for the given nodeinfor format
|
||||
func (c *Client) ParseV2rayNodeResponse(body []byte, notParseNode, parseRule bool) (*NodeInfo, error) {
|
||||
if notParseNode && (!parseRule) {
|
||||
if notParseNode && !parseRule {
|
||||
return nil, nil
|
||||
}
|
||||
node := &NodeInfo{V2ray: &V2rayConfig{}}
|
||||
|
@ -133,7 +133,7 @@ func (c *Controller) nodeInfoMonitor() (err error) {
|
||||
var nodeInfoChanged = false
|
||||
// If nodeInfo changed
|
||||
if newNodeInfo != nil {
|
||||
if !reflect.DeepEqual(c.nodeInfo, newNodeInfo) {
|
||||
if c.nodeInfo.SS == nil || !reflect.DeepEqual(c.nodeInfo.SS, newNodeInfo.SS) {
|
||||
// Remove old tag
|
||||
oldtag := c.Tag
|
||||
err := c.removeOldTag(oldtag)
|
||||
|
@ -65,7 +65,7 @@ func InboundBuilder(config *Config, nodeInfo *api.NodeInfo, tag string) (*core.I
|
||||
nodeInfo.V2ray.Inbounds[0].PortList = &conf.PortList{
|
||||
Range: []conf.PortRange{{From: uint32(nodeInfo.Trojan.LocalPort), To: uint32(nodeInfo.Trojan.LocalPort)}},
|
||||
}
|
||||
t := conf.TransportProtocol(nodeInfo.SS.TransportProtocol)
|
||||
t := conf.TransportProtocol(nodeInfo.Trojan.TransportProtocol)
|
||||
nodeInfo.V2ray.Inbounds[0].StreamSetting = &conf.StreamConfig{Network: &t}
|
||||
} else if nodeInfo.NodeType == "Shadowsocks" {
|
||||
defer func() {
|
||||
|
@ -77,7 +77,7 @@ func (c *Controller) buildTrojanUsers(userInfo *[]api.UserInfo) (users []*protoc
|
||||
users = make([]*protocol.User, len(*userInfo))
|
||||
for i, user := range *userInfo {
|
||||
trojanAccount := &trojan.Account{
|
||||
Password: user.V2rayUser.Uuid,
|
||||
Password: user.TrojanUser.Password,
|
||||
Flow: "xtls-rprx-direct",
|
||||
}
|
||||
users[i] = &protocol.User{
|
||||
@ -91,7 +91,7 @@ func (c *Controller) buildTrojanUsers(userInfo *[]api.UserInfo) (users []*protoc
|
||||
|
||||
func (c *Controller) buildTrojanUser(userInfo *api.UserInfo) (user *protocol.User) {
|
||||
trojanAccount := &trojan.Account{
|
||||
Password: userInfo.V2rayUser.Uuid,
|
||||
Password: userInfo.TrojanUser.Password,
|
||||
Flow: "xtls-rprx-direct",
|
||||
}
|
||||
user = &protocol.User{
|
||||
|
Loading…
Reference in New Issue
Block a user