mirror of
https://git.proxmox.com/git/mirror_frr
synced 2025-08-15 13:05:11 +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>
|
2006-12-12 Andrew J. Schorr <ajschorr@alumni.princeton.edu>
|
||||||
|
|
||||||
* connected.c: (connected_up_ipv4, connected_down_ipv4,
|
* 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
|
#ifdef HAVE_IPV6
|
||||||
else if (af == AF_INET6)
|
else if (af == AF_INET6)
|
||||||
{
|
{
|
||||||
if (ifp->flags & IFF_POINTOPOINT)
|
if (if_ioctl_ipv6 (SIOCGLIFSUBNET, (caddr_t) & lifreq) < 0)
|
||||||
{
|
{
|
||||||
prefixlen = IPV6_MAX_BITLEN;
|
if (ifp->flags & IFF_POINTOPOINT)
|
||||||
}
|
prefixlen = IPV6_MAX_BITLEN;
|
||||||
|
else
|
||||||
|
zlog_warn ("SIOCGLIFSUBNET (%s) fail: %s",
|
||||||
|
ifp->name, safe_strerror (errno));
|
||||||
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
ret = if_ioctl_ipv6 (SIOCGLIFSUBNET, (caddr_t) & lifreq);
|
prefixlen = lifreq.lifr_addrlen;
|
||||||
if (ret < 0)
|
}
|
||||||
{
|
|
||||||
zlog_warn ("SIOCGLIFSUBNET (%s) fail: %s",
|
|
||||||
ifp->name, safe_strerror (errno));
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
prefixlen = lifreq.lifr_addrlen;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
#endif /* HAVE_IPV6 */
|
#endif /* HAVE_IPV6 */
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user