This relies on default settings of tcp tuning values set in system.
I like the change in 50adf82199c362da6c542f1d22be2eeab7481211 adding
timeout variable check.
But using SO_SNDTIMEO would allow setting it in time units, regardless
default tcp values. And should be supported also on BSD and in general
more portable variant. Do you have a reason to use only linux-specific
variant? 2 tries seems too little if 6 is the default. I wish we had
some value to tell system just retry (a bit) faster than usual. Haven't
found that. I would use 3-4 to overcome short connection break at least.
20-30 seconds should be better default value.
I think the final fix would be making connections non-blocking and in
parallel, accepting first reply which arrives. This is just small tuning
to be not so terrible. It has to be sooner than alarm kills the TCP
client, at least 3 servers should be tried before that happens. I think
previous default allowed just one, so my changed server report over pipe
did not happen.
I am also not sure we should log every truncated packet without some
limit. I think it might lead to denial of service attack. Just stats
counter should be incremented, which can be watched by polling. Number
of accepted TCP connections is not counted if I see well. As is not
number of truncated messages. Would be useful for the service monitoring.
On 26. 05. 23 18:53, Simon Kelley wrote:
Setting TCP_SYNCNT to 2 limits the delay for a non responsive address
to about 8 seconds, which is mouch more sensible.
Simon.
--
Petr Menšík
Software Engineer, RHEL
Red Hat, http://www.redhat.com/
PGP: DFCF908DB7C87E8E529925BC4931CA5B6C9FC5CB
_______________________________________________
Dnsmasq-discuss mailing list
Dnsmasq-discuss@lists.thekelleys.org.uk
https://lists.thekelleys.org.uk/cgi-bin/mailman/listinfo/dnsmasq-discuss