summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ospf6d/ChangeLog5
-rw-r--r--ospf6d/ospf6_asbr.c5
-rw-r--r--ospf6d/ospf6d.h2
3 files changed, 9 insertions, 3 deletions
diff --git a/ospf6d/ChangeLog b/ospf6d/ChangeLog
index 01064aa5..6a0bb5e1 100644
--- a/ospf6d/ChangeLog
+++ b/ospf6d/ChangeLog
@@ -1,3 +1,8 @@
+2006-03-01 Yasuhiro Ohara <yasu@sfc.wide.ad.jp>
+
+ * ospf6_asbr.c: fix bug of needless forwarding address
+ * ospf6d.h: version 0.9.7r
+
2006-02-22 Yasuhiro Ohara <yasu@sfc.wide.ad.jp>
* valgrind check and memory fix
diff --git a/ospf6d/ospf6_asbr.c b/ospf6d/ospf6_asbr.c
index 7980a643..1b6ccbd9 100644
--- a/ospf6d/ospf6_asbr.c
+++ b/ospf6d/ospf6_asbr.c
@@ -59,6 +59,7 @@ ospf6_as_external_lsa_originate (struct ospf6_route *route)
char buffer[OSPF6_MAX_LSASIZE];
struct ospf6_lsa_header *lsa_header;
struct ospf6_lsa *old, *lsa;
+ struct ospf6_external_info *info = route->route_option;
struct ospf6_as_external_lsa *as_external_lsa;
char buf[64];
@@ -91,7 +92,7 @@ ospf6_as_external_lsa_originate (struct ospf6_route *route)
UNSET_FLAG (as_external_lsa->bits_metric, OSPF6_ASBR_BIT_E);
/* forwarding address */
- if (! IN6_IS_ADDR_UNSPECIFIED (&route->nexthop[0].address))
+ if (! IN6_IS_ADDR_UNSPECIFIED (&info->forwarding))
SET_FLAG (as_external_lsa->bits_metric, OSPF6_ASBR_BIT_F);
else
UNSET_FLAG (as_external_lsa->bits_metric, OSPF6_ASBR_BIT_F);
@@ -120,7 +121,7 @@ ospf6_as_external_lsa_originate (struct ospf6_route *route)
/* Forwarding address */
if (CHECK_FLAG (as_external_lsa->bits_metric, OSPF6_ASBR_BIT_F))
{
- memcpy (p, &route->nexthop[0].address, sizeof (struct in6_addr));
+ memcpy (p, &info->forwarding, sizeof (struct in6_addr));
p += sizeof (struct in6_addr);
}
diff --git a/ospf6d/ospf6d.h b/ospf6d/ospf6d.h
index 1dfd96b5..2790fc29 100644
--- a/ospf6d/ospf6d.h
+++ b/ospf6d/ospf6d.h
@@ -22,7 +22,7 @@
#ifndef OSPF6D_H
#define OSPF6D_H
-#define OSPF6_DAEMON_VERSION "0.9.7q"
+#define OSPF6_DAEMON_VERSION "0.9.7r"
/* global variables */
extern int errno;