]> git.ipfire.org Git - thirdparty/knot-resolver.git/commitdiff
Remove *_PMTUD_DONT options as *_PMTUD_OMIT should be available everywhere anyway... dont-fragment-mtu
authorOndřej Surý <ondrej@sury.org>
Tue, 22 Nov 2016 08:35:54 +0000 (09:35 +0100)
committerOndřej Surý <ondrej@sury.org>
Tue, 22 Nov 2016 08:35:54 +0000 (09:35 +0100)
daemon/network.c

index dd7a2dad0f11df6b3a1658dce655bd47275a9df9..8ec7ef213e1a713cc7c49fccc3767c21ab7bb92e 100644 (file)
@@ -42,7 +42,6 @@ static int so_reuseport(uv_handle_t *handle) {
 }
 
 /* Linux 3.15 supports IP_PMTUDISC_OMIT.
- * Linux < 3.15 supports IP_PMTUDISC_DONT
  * Set DF=0 to disable pmtud, and don't honor
  * any path mtu information and not accepting
  * new icmp notifications.
@@ -51,28 +50,22 @@ static int so_reuseport(uv_handle_t *handle) {
 static int no_pmtud(uv_handle_t *handle, sa_family_t family) {
        uv_os_fd_t fd = 0;
        if (uv_fileno(handle, &fd) == 0) {
-               int on = 1;
                int ret;
 
                if (family == AF_INET6) {
 #if defined(IPV6_MTU_DISCOVER) && defined(IPV6_PMTUDISC_OMIT)
                        int pmtud = IPV6_PMTUDISC_OMIT;
                        if ((ret = setsockopt(fd, IPPROTO_IPV6, IPV6_MTU_DISCOVER,
-                                                 &pmtud, sizeof(pmtud))) < 0) {
+                                             &pmtud, sizeof(pmtud))) < 0) {
                                return kr_error(errno);
                        }
-#elif defined(IPV6_MTU_DISCOVER) && defined(IPV6_PMTUDISC_DONT)
-                       int pmtud = IPV6_PMTUDISC_DONT;
-                       if ((ret = setsockopt(fd, IPPROTO_IPV6, IPV6_MTU_DISCOVER,
-                                                 &pmtud, sizeof(pmtud))) < 0) {
-                               return kr_error(errno);
-                       }                       
 #elif defined(IPV6_USE_MIN_MTU)
+                       int use_min_mtu = 1;
                        if ((ret = setsockopt(fd, IPPROTO_IPV6, IPV6_USE_MIN_MTU,
-                                                 (void*)&on, (socklen_t)sizeof(on))) < 0) {
+                                             &use_min_mtu, sizeof(use_min_mtu))) < 0) {
                                return kr_error(errno);
                        }
-#elif defined(IPV6_MTU) /* defined(IPV6_USE_MIN_MTU */
+#elif defined(IPV6_MTU)
                        /* fallback to IPV6_MTU if IPV6_USE_MIN_MTU not available */
                        int ipv6_min_mtu = IPV6_MIN_MTU;
                        if((ret = setsockopt(fd, IPPROTO_IPV6, IPV6_MTU,
@@ -85,20 +78,14 @@ static int no_pmtud(uv_handle_t *handle, sa_family_t family) {
 #if defined(IP_MTU_DISCOVER) && defined(IP_PMTUDISC_OMIT)
                        int pmtud = IP_PMTUDISC_OMIT;
                        if ((ret = setsockopt(fd, IPPROTO_IP, IP_MTU_DISCOVER,
-                                                 &pmtud, sizeof(pmtud))) < 0) {
-                               return kr_error(errno);
-                       }
-#elif defined(IP_MTU_DISCOVER) && defined(IP_PMTUDISC_DONT)
-                       int pmtud = IP_PMTUDISC_DONT;
-                       if ((ret = setsockopt(fd, IPPROTO_IP, IP_MTU_DISCOVER,
-                                                 &pmtud, sizeof(pmtud))) < 0) {
+                                             &pmtud, sizeof(pmtud))) < 0) {
                                return kr_error(errno);
                        }
-#elif defined(IP_DONTFRAG)  /* !defined(IP_MTU_DISCOVER) || !(defined(IP_PMTUDISC_DONT) */
+#elif defined(IP_DONTFRAG)
                        /* BSDs and others */
                        int dontfrag_off = 0;
                        if ((ret = setsockopt(fd, IPPROTO_IP, IP_DONTFRAG,
-                                                 &dontfrag_off, sizeof(dontfrag_off))) < 0) {
+                                             &dontfrag_off, sizeof(dontfrag_off))) < 0) {
                                return kr_error(errno);
                        }
 #endif