Hi Michael,

I'm using Linux for development but the software should also run on FreeBSD.

I also did some research on how to get the result of the Path MTU discovery and I also ended up with this unpleasant #define statement. The only place I could find that #define in a header file was

linux/in.h

But when I include this file a whole lot of other things break. So I ended up with the same hack. To my disappointment I couldn't find a way to figure out the correct PMTU on FreeBSD. The only feedback you get on this platform is the error EMSGSIZE which essentially tells you that your packet was too big. But it does not tell you how big the packet may be.

-Daniel

Michael Tüxen wrote:
Hi Daniel,

I looked at the code for path MTU discovery, which is pretty
broken.

crypto/bio/bss_diagram.c contains

#define IP_MTU      14 /* linux is lame */

if ((ret = getsockopt(b->num, IPPROTO_IP, IP_MTU, (void *)&sockopt_val,
            &sockopt_len)) < 0 || sockopt_val < 0)

which is broken if the socket option ID is not correct. On Mac OS X we have
#define IP_MULTICAST_VIF        14   /* set/get IP mcast virt. iface */

So it might work on Linux, but one should never define the
socket option ID...

Which OS are you using?

I'll talk to Robin, how we can handle that...

Best regards
Michael

______________________________________________________________________
OpenSSL Project                                 http://www.openssl.org
User Support Mailing List                    openssl-users@openssl.org
Automated List Manager                           majord...@openssl.org

Reply via email to