mirror of
https://git.proxmox.com/git/mirror_frr
synced 2025-08-15 13:27:53 +00:00
[zebra] For solaris IPv6 PtP interfaces, try to support prefixlen != 128
2006-12-13 Andrew J. Schorr <ajschorr@alumni.princeton.edu> * if_ioctl_solaris.c: (if_get_addr) For IPv6, stop assuming that all IFF_POINTOPOINT have prefixlen of IPV6_MAX_BITLEN. Instead, always try the SIOCGLIFSUBNET ioctl; if that fails, then we fall back to IPV6_MAX_BITLEN for PtP interfaces.
This commit is contained in:
parent
e4529636b7
commit
fb6724a6b9
@ -1,3 +1,10 @@
|
||||
2006-12-13 Andrew J. Schorr <ajschorr@alumni.princeton.edu>
|
||||
|
||||
* if_ioctl_solaris.c: (if_get_addr) For IPv6, stop assuming
|
||||
that all IFF_POINTOPOINT have prefixlen of IPV6_MAX_BITLEN.
|
||||
Instead, always try the SIOCGLIFSUBNET ioctl; if that fails,
|
||||
then we fall back to IPV6_MAX_BITLEN for PtP interfaces.
|
||||
|
||||
2006-12-12 Andrew J. Schorr <ajschorr@alumni.princeton.edu>
|
||||
|
||||
* connected.c: (connected_up_ipv4, connected_down_ipv4,
|
||||
|
@ -309,23 +309,18 @@ if_get_addr (struct interface *ifp, struct sockaddr *addr, const char *label)
|
||||
#ifdef HAVE_IPV6
|
||||
else if (af == AF_INET6)
|
||||
{
|
||||
if (ifp->flags & IFF_POINTOPOINT)
|
||||
{
|
||||
prefixlen = IPV6_MAX_BITLEN;
|
||||
}
|
||||
if (if_ioctl_ipv6 (SIOCGLIFSUBNET, (caddr_t) & lifreq) < 0)
|
||||
{
|
||||
if (ifp->flags & IFF_POINTOPOINT)
|
||||
prefixlen = IPV6_MAX_BITLEN;
|
||||
else
|
||||
zlog_warn ("SIOCGLIFSUBNET (%s) fail: %s",
|
||||
ifp->name, safe_strerror (errno));
|
||||
}
|
||||
else
|
||||
{
|
||||
ret = if_ioctl_ipv6 (SIOCGLIFSUBNET, (caddr_t) & lifreq);
|
||||
if (ret < 0)
|
||||
{
|
||||
zlog_warn ("SIOCGLIFSUBNET (%s) fail: %s",
|
||||
ifp->name, safe_strerror (errno));
|
||||
}
|
||||
else
|
||||
{
|
||||
prefixlen = lifreq.lifr_addrlen;
|
||||
}
|
||||
}
|
||||
{
|
||||
prefixlen = lifreq.lifr_addrlen;
|
||||
}
|
||||
}
|
||||
#endif /* HAVE_IPV6 */
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user