pathmtu/pathmtu.c: Use IP_PMTUDISC_PROBE for sending the lookups.
Linux's behaviour is very strange if you set IP_PMTUDISC_DO. Suppose we
have this situation:
host A <-1500-> router B <-1432-> ... <-1500-> host Z
We send a 1500-byte probe from A. Router B sends back `fragmentation
needed' with maximum size 1432. Linux reports EMSGSIZE back to us, but
when we read IP_MTU, we get 1500 again. OK: we send another probe with
1500, for old times' sake, but the write(2) fails with EMSGSIZE. At
this point we give up and try binary search. The next size we try is
1038, but write(2) fails again, inexplicably. Subsequent binary search
succeeds, so we end up with an MTU of 1037. This is too small for IPv6.
Using IP_PMTUDISC_PROBE instead seems to prevent Linux from being
hopeless at write(2) time.