@@ -485,9 +485,22 @@ func ConfigLoad(proxy *Proxy, svcFlag *string) error {
485485 os .Exit (0 )
486486 }
487487 if proxy .routes != nil && len (* proxy .routes ) > 0 {
488+ hasSpecificRoutes := false
488489 for _ , server := range proxy .registeredServers {
489490 if via , ok := (* proxy .routes )[server .name ]; ok {
490- dlog .Noticef ("Anonymized DNS: routing [%v] via %v" , server .name , via )
491+ if server .stamp .Proto != stamps .StampProtoTypeDNSCrypt {
492+ dlog .Errorf ("DNS anonymization is only supported with the DNSCrypt protocol - Connections to [%v] cannot be anonymized" , server .name )
493+ } else {
494+ dlog .Noticef ("Anonymized DNS: routing [%v] via %v" , server .name , via )
495+ }
496+ hasSpecificRoutes = true
497+ }
498+ }
499+ if via , ok := (* proxy .routes )["*" ]; ok {
500+ if hasSpecificRoutes {
501+ dlog .Noticef ("Anonymized DNS: routing everything else via %v" , via )
502+ } else {
503+ dlog .Noticef ("Anonymized DNS: routing everything via %v" , via )
491504 }
492505 }
493506 }
@@ -617,12 +630,14 @@ func (config *Config) loadSource(proxy *Proxy, requiredProps stamps.ServerInform
617630 dlog .Warnf ("Error in source [%s]: [%s] -- Continuing with reduced server count [%d]" , cfgSourceName , err , len (registeredServers ))
618631 }
619632 for _ , registeredServer := range registeredServers {
620- if len (config .ServerNames ) > 0 {
621- if ! includesName (config .ServerNames , registeredServer .name ) {
633+ if registeredServer .stamp .Proto != stamps .StampProtoTypeDNSCryptRelay {
634+ if len (config .ServerNames ) > 0 {
635+ if ! includesName (config .ServerNames , registeredServer .name ) {
636+ continue
637+ }
638+ } else if registeredServer .stamp .Props & requiredProps != requiredProps {
622639 continue
623640 }
624- } else if registeredServer .stamp .Props & requiredProps != requiredProps {
625- continue
626641 }
627642 if includesName (config .DisabledServerNames , registeredServer .name ) {
628643 continue
@@ -639,12 +654,17 @@ func (config *Config) loadSource(proxy *Proxy, requiredProps stamps.ServerInform
639654 continue
640655 }
641656 }
642- if ! ((config .SourceDNSCrypt && registeredServer .stamp .Proto == stamps .StampProtoTypeDNSCrypt ) ||
643- (config .SourceDoH && registeredServer .stamp .Proto == stamps .StampProtoTypeDoH )) {
644- continue
657+ if registeredServer .stamp .Proto == stamps .StampProtoTypeDNSCryptRelay {
658+ dlog .Debugf ("Adding [%s] to the set of available relays" , registeredServer .name )
659+ proxy .registeredRelays = append (proxy .registeredRelays , registeredServer )
660+ } else {
661+ if ! ((config .SourceDNSCrypt && registeredServer .stamp .Proto == stamps .StampProtoTypeDNSCrypt ) ||
662+ (config .SourceDoH && registeredServer .stamp .Proto == stamps .StampProtoTypeDoH )) {
663+ continue
664+ }
665+ dlog .Debugf ("Adding [%s] to the set of wanted resolvers" , registeredServer .name )
666+ proxy .registeredServers = append (proxy .registeredServers , registeredServer )
645667 }
646- dlog .Debugf ("Adding [%s] to the set of wanted resolvers" , registeredServer .name )
647- proxy .registeredServers = append (proxy .registeredServers , registeredServer )
648668 }
649669 return nil
650670}
0 commit comments