Fix TCPDNS and TLSDNS timers
After the TCPDNS refactoring the initial and idle timers were broken and only the tcp-initial-timeout was always applied on the whole TCP connection.
This broke any TCP connection that took longer than tcp-initial-timeout, most often this would affect large zone AXFRs.
This commit changes the timeout logic in this way:
- On TCP connection accept the tcp-initial-timeout is applied and the timer is started
- When we are processing and/or sending any DNS message the timer is stopped
- When we stop processing all DNS messages, the tcp-idle-timeout is applied and the timer is started again
Edited by Brian Conry