cherry-pick: svcb dohpath support
Merge in DNS/adguard-home from 4463-ddr-support to master
Squashed commit of the following:
commit 99a149e9024354ad0341739c3c9b08cefbd74468
Author: Dimitry Kolyshev <dkolyshev@adguard.com>
Date: Tue Apr 12 14:13:17 2022 +0200
imp docs
commit 26150be8df8b35e47c108f6e3319c57b39fb8e38
Author: Dimitry Kolyshev <dkolyshev@adguard.com>
Date: Mon Apr 11 20:36:18 2022 +0200
imp code docs
commit 5a4607f71abba83a9ac8753abd74c9fb97e4a545
Merge: 00f0abf5 9f0fdc5e
Author: Dimitry Kolyshev <dkolyshev@adguard.com>
Date: Mon Apr 11 16:14:49 2022 +0200
Merge remote-tracking branch 'origin/master' into 4463-ddr-support
# Conflicts:
# internal/dnsforward/svcbmsg.go
commit 00f0abf5eea07aeeebc2a856a958215021a51ab7
Author: Dimitry Kolyshev <dkolyshev@adguard.com>
Date: Mon Apr 11 16:06:42 2022 +0200
svcb dohpath support
commit ace81ce1ea2fb96c4434c6c1fded4a79427cf17e
Author: Dimitry Kolyshev <dkolyshev@adguard.com>
Date: Thu Apr 7 14:31:32 2022 +0200
svcb dohpath support
commit a1b5df4fb2e87dab265d6ca55928610a6acc1c00
Author: Dimitry Kolyshev <dkolyshev@adguard.com>
Date: Wed Apr 6 16:53:17 2022 +0200
svcb dohpath support
This commit is contained in:
committed by
Ainar Garipov
parent
d021a67d66
commit
75c2eb4c8a
@@ -22,7 +22,7 @@ func TestServer_FilterDNSRewrite(t *testing.T) {
|
||||
Preference: 32,
|
||||
}
|
||||
svcbVal := &rules.DNSSVCB{
|
||||
Params: map[string]string{"alpn": "h3"},
|
||||
Params: map[string]string{"alpn": "h3", "dohpath": "/dns-query"},
|
||||
Target: dns.Fqdn(domain),
|
||||
Priority: 32,
|
||||
}
|
||||
@@ -164,10 +164,20 @@ func TestServer_FilterDNSRewrite(t *testing.T) {
|
||||
|
||||
require.Len(t, d.Res.Answer, 1)
|
||||
ans, ok := d.Res.Answer[0].(*dns.SVCB)
|
||||
require.True(t, ok)
|
||||
|
||||
assert.Equal(t, dns.SVCB_ALPN, ans.Value[0].Key())
|
||||
assert.Equal(t, svcbVal.Params["alpn"], ans.Value[0].String())
|
||||
require.True(t, ok)
|
||||
require.Len(t, ans.Value, 2)
|
||||
|
||||
assert.ElementsMatch(
|
||||
t,
|
||||
[]dns.SVCBKey{dns.SVCB_ALPN, dns.SVCB_DOHPATH},
|
||||
[]dns.SVCBKey{ans.Value[0].Key(), ans.Value[1].Key()},
|
||||
)
|
||||
assert.ElementsMatch(
|
||||
t,
|
||||
[]string{svcbVal.Params["alpn"], svcbVal.Params["dohpath"]},
|
||||
[]string{ans.Value[0].String(), ans.Value[1].String()},
|
||||
)
|
||||
assert.Equal(t, svcbVal.Target, ans.Target)
|
||||
assert.Equal(t, svcbVal.Priority, ans.Priority)
|
||||
})
|
||||
@@ -186,8 +196,18 @@ func TestServer_FilterDNSRewrite(t *testing.T) {
|
||||
ans, ok := d.Res.Answer[0].(*dns.HTTPS)
|
||||
|
||||
require.True(t, ok)
|
||||
assert.Equal(t, dns.SVCB_ALPN, ans.Value[0].Key())
|
||||
assert.Equal(t, svcbVal.Params["alpn"], ans.Value[0].String())
|
||||
require.Len(t, ans.Value, 2)
|
||||
|
||||
assert.ElementsMatch(
|
||||
t,
|
||||
[]dns.SVCBKey{dns.SVCB_ALPN, dns.SVCB_DOHPATH},
|
||||
[]dns.SVCBKey{ans.Value[0].Key(), ans.Value[1].Key()},
|
||||
)
|
||||
assert.ElementsMatch(
|
||||
t,
|
||||
[]string{svcbVal.Params["alpn"], svcbVal.Params["dohpath"]},
|
||||
[]string{ans.Value[0].String(), ans.Value[1].String()},
|
||||
)
|
||||
assert.Equal(t, svcbVal.Target, ans.Target)
|
||||
assert.Equal(t, svcbVal.Priority, ans.Priority)
|
||||
})
|
||||
|
||||
@@ -143,6 +143,12 @@ var svcbKeyHandlers = map[string]svcbKeyHandler{
|
||||
ECH: ech,
|
||||
}
|
||||
},
|
||||
|
||||
"dohpath": func(valStr string) (val dns.SVCBKeyValue) {
|
||||
return &dns.SVCBDoHPath{
|
||||
Template: valStr,
|
||||
}
|
||||
},
|
||||
}
|
||||
|
||||
// genAnswerSVCB returns a properly initialized SVCB resource record.
|
||||
|
||||
@@ -127,6 +127,10 @@ func TestGenAnswerHTTPS_andSVCB(t *testing.T) {
|
||||
svcb: dnssvcb("no-default-alpn", ""),
|
||||
want: wantsvcb(&dns.SVCBNoDefaultAlpn{}),
|
||||
name: "no_default_alpn",
|
||||
}, {
|
||||
svcb: dnssvcb("dohpath", "/dns-query"),
|
||||
want: wantsvcb(&dns.SVCBDoHPath{Template: "/dns-query"}),
|
||||
name: "dohpath",
|
||||
}, {
|
||||
svcb: dnssvcb("port", "8080"),
|
||||
want: wantsvcb(&dns.SVCBPort{Port: 8080}),
|
||||
|
||||
Reference in New Issue
Block a user