From e63bf48a1ad76bc4fe4b25ce8005d20e4950dbcc Mon Sep 17 00:00:00 2001
From: Simon Zolin <s.zolin@adguard.com>
Date: Fri, 2 Aug 2019 18:45:12 +0300
Subject: [PATCH] + AddressToUpstream(): "recursive": create recursive DNS
 resolver

---
 upstream/upstream.go | 5 +++++
 1 file changed, 5 insertions(+)

diff --git a/upstream/upstream.go b/upstream/upstream.go
index b819b71c..f15b101c 100644
--- a/upstream/upstream.go
+++ b/upstream/upstream.go
@@ -39,6 +39,11 @@ type Options struct {
 // * https://dns.adguard.com/dns-query -- DNS-over-HTTPS
 // * sdns://... -- DNS stamp (see https://dnscrypt.info/stamps-specifications)
 func AddressToUpstream(address string, opts Options) (Upstream, error) {
+
+	if address == "recursive" {
+		return &recursiveDNS{}, nil
+	}
+
 	if strings.Contains(address, "://") {
 		upstreamURL, err := url.Parse(address)
 		if err != nil {
-- 
GitLab