mirror of
https://github.com/DNSCrypt/dnscrypt-proxy.git
synced 2025-03-04 10:24:40 +01:00
Add -include-relays option to include relays in -list and -list-all
This commit is contained in:
parent
f85b3e81ec
commit
7fb58720fb
2 changed files with 39 additions and 2 deletions
|
@ -290,6 +290,7 @@ type ConfigFlags struct {
|
||||||
Resolve *string
|
Resolve *string
|
||||||
List *bool
|
List *bool
|
||||||
ListAll *bool
|
ListAll *bool
|
||||||
|
IncludeRelays *bool
|
||||||
JSONOutput *bool
|
JSONOutput *bool
|
||||||
Check *bool
|
Check *bool
|
||||||
ConfigFile *string
|
ConfigFile *string
|
||||||
|
@ -742,7 +743,7 @@ func ConfigLoad(proxy *Proxy, flags *ConfigFlags) error {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if *flags.List || *flags.ListAll {
|
if *flags.List || *flags.ListAll {
|
||||||
if err := config.printRegisteredServers(proxy, *flags.JSONOutput); err != nil {
|
if err := config.printRegisteredServers(proxy, *flags.JSONOutput, *flags.IncludeRelays); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
os.Exit(0)
|
os.Exit(0)
|
||||||
|
@ -778,8 +779,43 @@ func ConfigLoad(proxy *Proxy, flags *ConfigFlags) error {
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func (config *Config) printRegisteredServers(proxy *Proxy, jsonOutput bool) error {
|
func (config *Config) printRegisteredServers(proxy *Proxy, jsonOutput bool, includeRelays bool) error {
|
||||||
var summary []ServerSummary
|
var summary []ServerSummary
|
||||||
|
if includeRelays {
|
||||||
|
for _, registeredRelay := range proxy.registeredRelays {
|
||||||
|
addrStr, port := registeredRelay.stamp.ServerAddrStr, stamps.DefaultPort
|
||||||
|
var hostAddr string
|
||||||
|
hostAddr, port = ExtractHostAndPort(addrStr, port)
|
||||||
|
addrs := make([]string, 0)
|
||||||
|
if (registeredRelay.stamp.Proto == stamps.StampProtoTypeDoH || registeredRelay.stamp.Proto == stamps.StampProtoTypeODoHTarget) &&
|
||||||
|
len(registeredRelay.stamp.ProviderName) > 0 {
|
||||||
|
providerName := registeredRelay.stamp.ProviderName
|
||||||
|
var host string
|
||||||
|
host, port = ExtractHostAndPort(providerName, port)
|
||||||
|
addrs = append(addrs, host)
|
||||||
|
}
|
||||||
|
if len(addrStr) > 0 {
|
||||||
|
addrs = append(addrs, hostAddr)
|
||||||
|
}
|
||||||
|
serverSummary := ServerSummary{
|
||||||
|
Name: registeredRelay.name,
|
||||||
|
Proto: registeredRelay.stamp.Proto.String(),
|
||||||
|
IPv6: strings.HasPrefix(addrStr, "["),
|
||||||
|
Ports: []int{port},
|
||||||
|
Addrs: addrs,
|
||||||
|
DNSSEC: registeredRelay.stamp.Props&stamps.ServerInformalPropertyDNSSEC != 0,
|
||||||
|
NoLog: registeredRelay.stamp.Props&stamps.ServerInformalPropertyNoLog != 0,
|
||||||
|
NoFilter: registeredRelay.stamp.Props&stamps.ServerInformalPropertyNoFilter != 0,
|
||||||
|
Description: registeredRelay.description,
|
||||||
|
Stamp: registeredRelay.stamp.String(),
|
||||||
|
}
|
||||||
|
if jsonOutput {
|
||||||
|
summary = append(summary, serverSummary)
|
||||||
|
} else {
|
||||||
|
fmt.Println(serverSummary.Name)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
for _, registeredServer := range proxy.registeredServers {
|
for _, registeredServer := range proxy.registeredServers {
|
||||||
addrStr, port := registeredServer.stamp.ServerAddrStr, stamps.DefaultPort
|
addrStr, port := registeredServer.stamp.ServerAddrStr, stamps.DefaultPort
|
||||||
var hostAddr string
|
var hostAddr string
|
||||||
|
|
|
@ -51,6 +51,7 @@ func main() {
|
||||||
flags.Resolve = flag.String("resolve", "", "resolve a DNS name (string can be <name> or <name>,<resolver address>)")
|
flags.Resolve = flag.String("resolve", "", "resolve a DNS name (string can be <name> or <name>,<resolver address>)")
|
||||||
flags.List = flag.Bool("list", false, "print the list of available resolvers for the enabled filters")
|
flags.List = flag.Bool("list", false, "print the list of available resolvers for the enabled filters")
|
||||||
flags.ListAll = flag.Bool("list-all", false, "print the complete list of available resolvers, ignoring filters")
|
flags.ListAll = flag.Bool("list-all", false, "print the complete list of available resolvers, ignoring filters")
|
||||||
|
flags.IncludeRelays = flag.Bool("include-relays", false, "include the list of available relays in the output of -list and -list-all")
|
||||||
flags.JSONOutput = flag.Bool("json", false, "output list as JSON")
|
flags.JSONOutput = flag.Bool("json", false, "output list as JSON")
|
||||||
flags.Check = flag.Bool("check", false, "check the configuration file and exit")
|
flags.Check = flag.Bool("check", false, "check the configuration file and exit")
|
||||||
flags.ConfigFile = flag.String("config", DefaultConfigFileName, "Path to the configuration file")
|
flags.ConfigFile = flag.String("config", DefaultConfigFileName, "Path to the configuration file")
|
||||||
|
|
Loading…
Add table
Reference in a new issue