along with this program; if not, write to the Free Software
Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
- $Id: net_socket.c,v 1.1.2.36 2003/12/20 19:47:52 guus Exp $
+ $Id: net_socket.c,v 1.1.2.37 2003/12/20 21:09:33 guus Exp $
*/
#include "system.h"
{
bool choice;
- if(get_config_bool(lookup_config(myself->connection->config_tree, "DontFragment"), &choice) && choice) {
+ if(sa->sa.sa_family == AF_INET && get_config_bool(lookup_config(myself->connection->config_tree, "PMTUDiscovery"), &choice) && choice) {
option = IP_PMTUDISC_DO;
if(setsockopt(nfd, SOL_IP, IP_MTU_DISCOVER, &option, sizeof(option))) {
closesocket(nfd);
- logger(LOG_ERR, _("Can't set MTU discovery mode: %s"), strerror(errno));
+ logger(LOG_ERR, _("Can't set PMTU discovery mode: %s"), strerror(errno));
+ return -1;
+ }
+ }
+ }
+#endif
+
+#if defined(SOL_IPV6) && defined(IPV6_MTU_DISCOVER) && defined(IPV6_PMTUDISC_DO)
+ {
+ bool choice;
+
+ if(sa->sa.sa_family == AF_INET6 && get_config_bool(lookup_config(myself->connection->config_tree, "PMTUDiscovery"), &choice) && choice) {
+ option = IPV6_PMTUDISC_DO;
+ if(setsockopt(nfd, SOL_IPV6, IPV6_MTU_DISCOVER, &option, sizeof(option))) {
+ closesocket(nfd);
+ logger(LOG_ERR, _("Can't set PMTU discovery mode: %s"), strerror(errno));
return -1;
}
}