Add IP_MTU-based maxmtu estimation.
authorEtienne Dechamps <etienne@edechamps.fr>
Wed, 31 Dec 2014 16:12:11 +0000 (16:12 +0000)
committerEtienne Dechamps <etienne@edechamps.fr>
Fri, 2 Jan 2015 09:55:54 +0000 (09:55 +0000)
commitbce17c83e871cb8a8c9158045eaf13f1be4b3d13
tree27eb06469409e96752dec9a6cd2af0a764239867
parentc1532035e2850dc4ec0eb22a6d51208e3128eb94
Add IP_MTU-based maxmtu estimation.

Linux provides a getsockopt() option, IP_MTU, to get the kernel's best
guess at a connection MTU. In practice, it seems to return the MTU of
the physical interface the socket is using.

This patch uses this option to initialize maxmtu to a better value when
MTU discovery starts.

Unfortunately, this is not supported on Windows. Winsock has options
such as SO_MAX_MSG_SIZE, SO_MAXDG and SO_MAXPATHDG but they seem useless
as they always return absurdly large values (typically, 65507), as
confirmed by http://support.microsoft.com/kb/822061/
src/net_packet.c