From: Alan T. DeKok Date: Tue, 1 Sep 2009 12:49:39 +0000 (+0200) Subject: Set DF flag for packets from the server, too X-Git-Tag: release_2_1_7~25 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=2e28aced9813fe0f0f6235ace6ba5eeb9d6bdbd1;p=thirdparty%2Ffreeradius-server.git Set DF flag for packets from the server, too --- diff --git a/src/main/listen.c b/src/main/listen.c index 140506d691e..372bd769edd 100644 --- a/src/main/listen.c +++ b/src/main/listen.c @@ -1506,6 +1506,31 @@ static int listen_bind(rad_listen_t *this) } #endif /* HAVE_STRUCT_SOCKADDR_IN6 */ + + if (sock->ipaddr.af == AF_INET) { + UNUSED int flag; + +#if defined(IP_MTU_DISCOVER) && defined(IP_PMTUDISC_DONT) + /* + * Disable PMTU discovery. On Linux, this + * also makes sure that the "don't fragment" + * flag is zero. + */ + flag = IP_PMTUDISC_DONT; + setsockopt(this->fd, IPPROTO_IP, IP_MTU_DISCOVER, + &flag, sizeof(flag)); +#endif + +#if defined(IP_DONTFRAG) + /* + * Ensure that the "don't fragment" flag is zero. + */ + flag = 0; + setsockopt(this->fd, IPPROTO_IP, IP_DONTFRAG, + &flag, sizeof(flag)); +#endif + } + /* * May be binding to priviledged ports. */