Hi,
After updating to -current my gateway, I have a problem with dhcpcd.
I am sending the report to bugs@ because reverting changes in kernel solves the
problem. But it could be userland related too (even if it worked previously).
Nov 17 07:25:52 alf dhcpcd[49928]: if_learnaddrs: if_addrflags6: Invalid
argument
Nov 17 07:25:52 alf last message repeated 6 times
Nov 17 07:25:52 alf dhcpcd[49928]: if_ifa: if_addrflags6: Invalid argument
jca@ pointed to me that sys/netinet6/in6.c has recently changed and that
+ if (sa->sa_len != sizeof(struct sockaddr_in6))
+ return EINVAL;
looks suspicious
I patched it out, and dhcpcd started working again.
The related code in dhcpcd should be:
dhcpcd-8.1.2/src/if-bsd.c
1034 int
1035 if_addrflags6(const struct interface *ifp, const struct in6_addr *addr,
1036 __unused const char *alias)
1037 {
1038 int flags;
1039 struct in6_ifreq ifr6;
1040 struct priv *priv;
1041
1042 memset(&ifr6, 0, sizeof(ifr6));
1043 strlcpy(ifr6.ifr_name, ifp->name, sizeof(ifr6.ifr_name));
1044 ifr6.ifr_addr.sin6_family = AF_INET6;
1045 ifr6.ifr_addr.sin6_addr = *addr;
1046 ifa_setscope(&ifr6.ifr_addr, ifp->index);
1047 priv = (struct priv *)ifp->ctx->priv;
1048 if (ioctl(priv->pf_inet6_fd, SIOCGIFAFLAG_IN6, &ifr6) != -1)
1049 flags = ifr6.ifr_ifru.ifru_flags6;
1050 else
1051 flags = -1;
1052 return flags;
1053 }
I am unsure if the problem is kernel related or in dhcpcd ...
Thanks.
--
Sebastien Marie