On Thu, May 24, 2018 at 07:04:04AM -0400, David Higgs wrote:
> But shouldn’t the answer be the same, since I have a valid default route?
> 

It should but that's not how route(8) works for now :)

Barely tested diff, assumes that no netmask means /128 (similar to IPv4 handling
where no netmask means /32)

Index: route.c
===================================================================
RCS file: /cvs/src/sbin/route/route.c,v
retrieving revision 1.214
diff -u -p -r1.214 route.c
--- route.c     1 May 2018 18:14:10 -0000       1.214
+++ route.c     24 May 2018 15:54:37 -0000
@@ -800,13 +800,8 @@ inet6_makenetandmask(struct sockaddr_in6
                if (IN6_IS_ADDR_UNSPECIFIED(&sin6->sin6_addr) &&
                    sin6->sin6_scope_id == 0) {
                        plen = "0";
-               } else if ((sin6->sin6_addr.s6_addr[0] & 0xe0) == 0x20) {
-                       /* aggregatable global unicast - RFC2374 */
-                       memset(&in6, 0, sizeof(in6));
-                       if (!memcmp(&sin6->sin6_addr.s6_addr[8],
-                           &in6.s6_addr[8], 8))
-                               plen = "64";
-               }
+               } else
+                       plen = "128";
        }
 
        if (!plen || strcmp(plen, "128") == 0)

Reply via email to