mirror of
https://github.com/hackdiaz-dev/free-turn-proxy.git
synced 2026-10-12 09:41:53 +02:00
80 lines
1.8 KiB
Go
80 lines
1.8 KiB
Go
package config
|
|
|
|
import (
|
|
"encoding/hex"
|
|
"strconv"
|
|
"strings"
|
|
)
|
|
|
|
// ClientArgs восстанавливает срез CLI-аргументов из Client структуры.
|
|
func ClientArgs(c *Client) []string {
|
|
if c == nil {
|
|
return nil
|
|
}
|
|
def := Defaults()
|
|
var args []string
|
|
add := func(flag string, value ...string) {
|
|
args = append(args, flag)
|
|
args = append(args, value...)
|
|
}
|
|
|
|
add("-peer", c.Proxy.Peer)
|
|
if len(c.VK.Links) > 0 {
|
|
add("-links", strings.Join(c.VK.Links, ","))
|
|
}
|
|
if c.Provider.Name != def.Provider.Name {
|
|
add("-provider", c.Provider.Name)
|
|
}
|
|
if c.Proxy.Listen != def.Proxy.Listen {
|
|
add("-listen", c.Proxy.Listen)
|
|
}
|
|
if c.TURN.Host != "" {
|
|
add("-turn", c.TURN.Host)
|
|
}
|
|
if c.TURN.Port != "" {
|
|
add("-port", c.TURN.Port)
|
|
}
|
|
if c.TURN.N != def.TURN.N {
|
|
add("-n", strconv.Itoa(c.TURN.N))
|
|
}
|
|
if c.VK.StreamsPerCred != def.VK.StreamsPerCred {
|
|
add("-streams-per-cred", strconv.Itoa(c.VK.StreamsPerCred))
|
|
}
|
|
if c.TURN.TransportUDP != def.TURN.TransportUDP {
|
|
add("-transport", TransportUDP)
|
|
}
|
|
if c.Proxy.Mode != def.Proxy.Mode {
|
|
add("-mode", string(c.Proxy.Mode))
|
|
}
|
|
args = append(args, kcpArgs(c.KCP.Profile, def.KCP.Profile)...)
|
|
if c.Obf.Enabled() {
|
|
add("-obf-profile", string(c.Obf.Profile))
|
|
add("-obf-key", hex.EncodeToString(c.Obf.Key))
|
|
}
|
|
if c.Obf.Timing > 0 {
|
|
add("-obf-timing", c.Obf.Timing.String())
|
|
}
|
|
if c.VK.ManualCaptcha {
|
|
args = append(args, "-manual-captcha")
|
|
}
|
|
if c.VK.Platform != def.VK.Platform {
|
|
add("-platform", string(c.VK.Platform))
|
|
}
|
|
if c.DNS.Mode != def.DNS.Mode {
|
|
add("-dns-mode", c.DNS.Mode)
|
|
}
|
|
if len(c.DNS.Servers) > 0 {
|
|
add("-dns-servers", strings.Join(c.DNS.Servers, ","))
|
|
}
|
|
if c.ClientID != "" {
|
|
add("-client-id", c.ClientID)
|
|
}
|
|
if c.SubURL != "" {
|
|
add("-sub", c.SubURL)
|
|
}
|
|
if c.Log.Debug {
|
|
args = append(args, "-debug")
|
|
}
|
|
return args
|
|
}
|