mirror of
https://github.com/tladesignz/dnstt.git
synced 2026-10-05 21:38:09 +03:00
TODO about TLSPacketConn redial failure.
This commit is contained in:
@@ -1,3 +1,24 @@
|
||||
In -dot mode, if, after the TLS connection may become disconnected, the
|
||||
redial fails to connect, it results in "operation on closed connection"
|
||||
errors and a useless connection up until idleTimeout (2 to 4 minutes
|
||||
later), when the stream ends. For example, see
|
||||
1-12c59bf6/quad9_dot_1.dnstt.client.log from the 2021-08-02 dnstt-tests
|
||||
performance measurement:
|
||||
2021/08/02 10:00:49 recvLoop: read tcp 10.0.1.2:34788->9.9.9.9:853: read: connection reset by peer
|
||||
2021/08/02 10:00:49 sendLoop: write tcp 10.0.1.2:34788->9.9.9.9:853: write: broken pipe
|
||||
2021/08/02 10:00:50 tls.Dial: dial tcp 9.9.9.9:853: connect: connection refused
|
||||
2021/08/02 10:00:50 recvLoop: read dummy dummy: operation on closed connection
|
||||
2021/08/02 10:00:50 send: write dummy dummy: operation on closed connection
|
||||
2021/08/02 10:00:52 send: write dummy dummy: operation on closed connection
|
||||
...
|
||||
2021/08/02 10:03:02 send: write dummy dummy: operation on closed connection
|
||||
2021/08/02 10:03:06 send: write dummy dummy: operation on closed connection
|
||||
2021/08/02 10:03:09 end stream cde4ab0c:3
|
||||
To fix this, we could be more persistent in redialing, and/or cause a
|
||||
redial failure to cause the stream and session to terminate immediately.
|
||||
We already close TLSPacketConn; we should perhaps also terminate
|
||||
DNSPacketConn.sendLoop.
|
||||
|
||||
Randomize the source port for each query in plain-UDP mode. Currently we
|
||||
create a socket with net.ListenUDP and use it for all queries, which
|
||||
means all queries have the same source address. ValdikSS reports that in
|
||||
|
||||
Reference in New Issue
Block a user