mirror of
https://github.com/wyx2685/V2bX.git
synced 2025-01-22 18:08:14 -05:00
15c36a9580
refactor limiter fix getLink bug add connection limit move limit config to ControllerConfig del dynamic speed limit (next version will be re add) del online ip sync (next version will be re add)
46 lines
1.2 KiB
Go
46 lines
1.2 KiB
Go
package node
|
|
|
|
import (
|
|
"fmt"
|
|
"github.com/Yuzuki616/V2bX/api/panel"
|
|
conf2 "github.com/Yuzuki616/V2bX/conf"
|
|
"github.com/goccy/go-json"
|
|
|
|
"github.com/xtls/xray-core/common/net"
|
|
"github.com/xtls/xray-core/core"
|
|
"github.com/xtls/xray-core/infra/conf"
|
|
)
|
|
|
|
// buildOutbound build freedom outbund config for addoutbound
|
|
func buildOutbound(config *conf2.ControllerConfig, nodeInfo *panel.NodeInfo, tag string) (*core.OutboundHandlerConfig, error) {
|
|
outboundDetourConfig := &conf.OutboundDetourConfig{}
|
|
outboundDetourConfig.Protocol = "freedom"
|
|
outboundDetourConfig.Tag = tag
|
|
|
|
// Build Send IP address
|
|
if config.SendIP != "" {
|
|
ipAddress := net.ParseAddress(config.SendIP)
|
|
outboundDetourConfig.SendThrough = &conf.Address{Address: ipAddress}
|
|
}
|
|
|
|
// Freedom Protocol setting
|
|
var domainStrategy = "Asis"
|
|
if config.EnableDNS {
|
|
if config.DNSType != "" {
|
|
domainStrategy = config.DNSType
|
|
} else {
|
|
domainStrategy = "UseIP"
|
|
}
|
|
}
|
|
proxySetting := &conf.FreedomConfig{
|
|
DomainStrategy: domainStrategy,
|
|
}
|
|
var setting json.RawMessage
|
|
setting, err := json.Marshal(proxySetting)
|
|
if err != nil {
|
|
return nil, fmt.Errorf("marshal proxy %s config fialed: %s", nodeInfo.NodeType, err)
|
|
}
|
|
outboundDetourConfig.Settings = &setting
|
|
return outboundDetourConfig.Build()
|
|
}
|