* Change default value to 1232 As specified by DNS flag day 2020, good and decent default value avoiding fragmentation issues should be 1232. It is quite likely 1500 would work reliably on local ethernet networks. Value 512 is set implicitly and must be used for all clients, which did not include OPT RR with explicit value they support. Since MR #5368 it should work correctly. Signed-off-by: Petr Menšík <pemensik@redhat.com> * Adapt bufsize test to new default value Check also buffer size smaller than legacy value is not accepted. Signed-off-by: Petr Menšík <pemensik@redhat.com> * Update bufsize documentation Mention also increasing request size is not possible, it can only reduce the accepted size. Signed-off-by: Petr Menšík <pemensik@redhat.com> --------- Signed-off-by: Petr Menšík <pemensik@redhat.com>
47 lines
1.3 KiB
Go
47 lines
1.3 KiB
Go
package bufsize
|
|
|
|
import (
|
|
"strings"
|
|
"testing"
|
|
|
|
"github.com/coredns/caddy"
|
|
)
|
|
|
|
func TestSetupBufsize(t *testing.T) {
|
|
tests := []struct {
|
|
input string
|
|
shouldErr bool
|
|
expectedData int
|
|
expectedErrContent string // substring from the expected error. Empty for positive cases.
|
|
}{
|
|
{`bufsize`, false, 1232, ""},
|
|
{`bufsize "1220"`, false, 1220, ""},
|
|
{`bufsize "5000"`, true, -1, "plugin"},
|
|
{`bufsize "512 512"`, true, -1, "plugin"},
|
|
{`bufsize "511"`, true, -1, "plugin"},
|
|
{`bufsize "abc123"`, true, -1, "plugin"},
|
|
}
|
|
|
|
for i, test := range tests {
|
|
c := caddy.NewTestController("dns", test.input)
|
|
bufsize, err := parse(c)
|
|
|
|
if test.shouldErr && err == nil {
|
|
t.Errorf("Test %d: Expected error but found %s for input %s", i, err, test.input)
|
|
}
|
|
|
|
if err != nil {
|
|
if !test.shouldErr {
|
|
t.Errorf("Test %d: Error found for input %s. Error: %v", i, test.input, err)
|
|
}
|
|
|
|
if !strings.Contains(err.Error(), test.expectedErrContent) {
|
|
t.Errorf("Test %d: Expected error to contain: %v, found error: %v, input: %s", i, test.expectedErrContent, err, test.input)
|
|
}
|
|
}
|
|
|
|
if !test.shouldErr && bufsize != test.expectedData {
|
|
t.Errorf("Test %d: Bufsize not correctly set for input %s. Expected: %d, actual: %d", i, test.input, test.expectedData, bufsize)
|
|
}
|
|
}
|
|
}
|