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.
diff --git a/ospfd/ChangeLog b/ospfd/ChangeLog
index fa901ce..5c4a670 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 fe75a96..ccee1d6 100644
--- a/ospfd/ospf_dump.c
+++ b/ospfd/ospf_dump.c
@@ -325,12 +325,14 @@
 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 22611d8..71910dd 100644
--- a/ospfd/ospf_flood.c
+++ b/ospfd/ospf_flood.c
@@ -121,7 +121,7 @@
   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 4711f0f..b7550b1 100644
--- a/ospfd/ospf_lsa.c
+++ b/ospfd/ospf_lsa.c
@@ -2380,9 +2380,9 @@
       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 @@
       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 @@
       (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);
     }