diff options
-rw-r--r-- | ospfd/ChangeLog | 8 | ||||
-rw-r--r-- | ospfd/ospf_dump.c | 4 | ||||
-rw-r--r-- | ospfd/ospf_flood.c | 2 | ||||
-rw-r--r-- | ospfd/ospf_lsa.c | 19 |
4 files changed, 23 insertions, 10 deletions
diff --git a/ospfd/ChangeLog b/ospfd/ChangeLog index fa901ced..5c4a6702 100644 --- a/ospfd/ChangeLog +++ b/ospfd/ChangeLog @@ -1,3 +1,11 @@ +2004-05-31 Sagun Shakya <sagun.shakya@sun.com> + + * ospf_dump.c: (ospf_lsa_header_dump) LOOKUP can return null if + index is out of range. + ospf_flood.c: endianness fix + ospf_lsa.c: Missing ntohl's on (struct lsa *)->data->ls_seqnum + in various places. + 2004-05-10 Hasso Tepper <hasso@estpak.ee> * ospf_zebra.c, ospfd.c: Move ospf_prefix_list_update() function diff --git a/ospfd/ospf_dump.c b/ospfd/ospf_dump.c index fe75a960..ccee1d6b 100644 --- a/ospfd/ospf_dump.c +++ b/ospfd/ospf_dump.c @@ -325,12 +325,14 @@ ospf_dd_flags_dump (u_char flags, char *buf, size_t size) void ospf_lsa_header_dump (struct lsa_header *lsah) { + char *lsah_type = LOOKUP (ospf_lsa_type_msg, lsah->type); + zlog_info (" LSA Header"); zlog_info (" LS age %d", ntohs (lsah->ls_age)); zlog_info (" Options %d (%s)", lsah->options, ospf_options_dump (lsah->options)); zlog_info (" LS type %d (%s)", lsah->type, - LOOKUP (ospf_lsa_type_msg, lsah->type)); + (lsah->type ? lsah->type : "unknown type")); zlog_info (" Link State ID %s", inet_ntoa (lsah->id)); zlog_info (" Advertising Router %s", inet_ntoa (lsah->adv_router)); zlog_info (" LS sequence number 0x%lx", (u_long)ntohl (lsah->ls_seqnum)); diff --git a/ospfd/ospf_flood.c b/ospfd/ospf_flood.c index 22611d8d..71910dd7 100644 --- a/ospfd/ospf_flood.c +++ b/ospfd/ospf_flood.c @@ -121,7 +121,7 @@ ospf_process_self_originated_lsa (struct ospf *ospf, if (IS_DEBUG_OSPF_EVENT) zlog_info ("LSA[Type%d:%s]: Process self-originated LSA seq 0x%lx", new->data->type, inet_ntoa (new->data->id), - (u_long)new->data->ls_seqnum); + ntohl(new->data->ls_seqnum)); /* If we're here, we installed a self-originated LSA that we received from a neighbor, i.e. it's more recent. We must see whether we want diff --git a/ospfd/ospf_lsa.c b/ospfd/ospf_lsa.c index 4711f0fe..b7550b13 100644 --- a/ospfd/ospf_lsa.c +++ b/ospfd/ospf_lsa.c @@ -2380,9 +2380,9 @@ ospf_router_lsa_install (struct ospf *ospf, area->router_lsa_self = ospf_lsa_lock (new); if (IS_DEBUG_OSPF (lsa, LSA_INSTALL)) - zlog_info("LSA[Type%d]: ID %s seq 0x%x is self-originated", - new->data->type, inet_ntoa (new->data->id), - new->data->ls_seqnum); + zlog_info("LSA[Type%d]: ID %s seq 0x%x is self-originated", + new->data->type, inet_ntoa (new->data->id), + ntohl(new->data->ls_seqnum)); } return new; @@ -2652,12 +2652,13 @@ ospf_lsa_install (struct ospf *ospf, struct ospf_interface *oi, can be originated. " */ - if (lsa->data->ls_seqnum - 1 == htonl(OSPF_MAX_SEQUENCE_NUMBER)) + if (ntohl(lsa->data->ls_seqnum) - 1 == htonl(OSPF_MAX_SEQUENCE_NUMBER) { if (ospf_lsa_is_self_originated(ospf, lsa)) { - lsa->data->ls_seqnum = htonl(OSPF_MAX_SEQUENCE_NUMBER); - if (!IS_LSA_MAXAGE(lsa)) + lsa->data->ls_seqnum = htonl(OSPF_MAX_SEQUENCE_NUMBER); + + if (!IS_LSA_MAXAGE(lsa)) lsa->flags |= OSPF_LSA_PREMATURE_AGE; lsa->data->ls_age = htons (OSPF_LSA_MAXAGE); @@ -2769,8 +2770,10 @@ ospf_lsa_install (struct ospf *ospf, struct ospf_interface *oi, (IS_LSA_MAXAGE (new) && !IS_LSA_SELF (new))) { if (IS_DEBUG_OSPF (lsa, LSA_INSTALL)) - zlog_info ("LSA[Type%d:%s]: Install LSA 0x%lx, MaxAge", - new->data->type, inet_ntoa (new->data->id), (u_long)lsa); + zlog_info ("LSA[Type%d:%s]: Install LSA 0x%p, MaxAge", + new->data->type, + inet_ntoa (new->data->id), + lsa); ospf_lsa_maxage (ospf, lsa); } |