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)