[quagga-dev 11425] [PATCH] isisd: type mix-up in 28a8cfc "don't require IPv4"

David Lamparter equinox at opensourcerouting.org
Mon Aug 18 17:19:31 BST 2014


Whoops, these are in6_addrs, not prefix_ipv6... funnily enough, it does the
right thing either way, if it compiles, which it only does on Linux because
IN6_IS_ADDR_LINKLOCAL contains a cast to the right type.  On BSD there is no
such cast, hence it explodes on trying to compile, trying to access struct
members of in6_addrs while operating on prefix_ipv6...

Fixes: 28a8cfc ("isisd: don't require IPv4 for adjacency")
Signed-off-by: David Lamparter <equinox at opensourcerouting.org>
---

Great, of course after pushing it out on git, I test it on FreeBSD and it
promptly tells me I messed it up...  Bleh.  Really need to add FreeBSD to
automated testing.

---
 isisd/isis_pdu.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/isisd/isis_pdu.c b/isisd/isis_pdu.c
index 5f18135..e0208fa 100644
--- a/isisd/isis_pdu.c
+++ b/isisd/isis_pdu.c
@@ -537,7 +537,7 @@ process_p2p_hello (struct isis_circuit *circuit)
     {
       /* TBA: check that we have a linklocal ourselves? */
       struct listnode *node;
-      struct prefix_ipv6 *ip;
+      struct in6_addr *ip;
       for (ALL_LIST_ELEMENTS_RO (tlvs.ipv6_addrs, node, ip))
 	if (IN6_IS_ADDR_LINKLOCAL (ip))
 	  {
@@ -1098,7 +1098,7 @@ process_lan_hello (int level, struct isis_circuit *circuit, u_char * ssnpa)
     {
       /* TBA: check that we have a linklocal ourselves? */
       struct listnode *node;
-      struct prefix_ipv6 *ip;
+      struct in6_addr *ip;
       for (ALL_LIST_ELEMENTS_RO (tlvs.ipv6_addrs, node, ip))
 	if (IN6_IS_ADDR_LINKLOCAL (ip))
 	  {
-- 
1.8.5.5





More information about the Quagga-dev mailing list