@@ -23,6 +23,7 @@ const (
2323 txtTimeout
2424 txtCount
2525 txtEDNSSize
26+ txtQuerySize
2627 txtE2ETimeout
2728 numTextInputs
2829)
@@ -40,6 +41,7 @@ const (
4041 fSkipNXD
4142 fEDNS
4243 fEDNSSize
44+ fQuerySize
4345 fE2E // toggle: enables/disables e2e section
4446 fPubkey // e2e fields below
4547 fCert
@@ -69,6 +71,7 @@ var allFields = []fieldDef{
6971 {fSkipNXD , "Skip NXDOMAIN" , "" , "Skip NXDOMAIN hijack detection. Checks if resolver fakes responses." , - 1 },
7072 {fEDNS , "EDNS Check" , "" , "Test EDNS0 payload size support. Important for DNS tunneling throughput." , - 1 },
7173 {fEDNSSize , "EDNS Size" , "" , "EDNS0 UDP payload size in bytes. Larger = better throughput, lower if fragmented." , txtEDNSSize },
74+ {fQuerySize , "Query Size" , "" , "Cap upstream DNS query payload size (dnstt -mtu). 0 = max. Try 50-80 if e2e fails on filtered networks." , txtQuerySize },
7275 {fE2E , "E2E Testing" , "E2E (end-to-end tunnel test)" , "Enable end-to-end tunnel tests. Requires tunnel client binaries." , - 1 },
7376 {fPubkey , "Pubkey" , "" , "Hex public key for dnstt. Requires dnstt-client in PATH." , txtPubkey },
7477 {fCert , "Cert" , "" , "Path to slipstream TLS cert. Requires slipstream-client in PATH." , txtCert },
@@ -143,6 +146,11 @@ func initConfigInputs() []textinput.Model {
143146 inputs [txtEDNSSize ].SetValue ("1232" )
144147 inputs [txtEDNSSize ].CharLimit = 4
145148
149+ inputs [txtQuerySize ] = textinput .New ()
150+ inputs [txtQuerySize ].Placeholder = "0 (max)"
151+ inputs [txtQuerySize ].SetValue ("0" )
152+ inputs [txtQuerySize ].CharLimit = 4
153+
146154 inputs [txtE2ETimeout ] = textinput .New ()
147155 inputs [txtE2ETimeout ].Placeholder = "15"
148156 inputs [txtE2ETimeout ].SetValue ("15" )
@@ -286,6 +294,9 @@ func applyConfig(m Model) (Model, tea.Cmd) {
286294 if v , err := strconv .Atoi (m .configInputs [txtEDNSSize ].Value ()); err == nil && v > 0 {
287295 m .config .EDNSSize = v
288296 }
297+ if v , err := strconv .Atoi (m .configInputs [txtQuerySize ].Value ()); err == nil && v >= 0 {
298+ m .config .QuerySize = v
299+ }
289300 if v , err := strconv .Atoi (m .configInputs [txtE2ETimeout ].Value ()); err == nil && v > 0 {
290301 m .config .E2ETimeout = v
291302 }
0 commit comments