2003-06-27 Paul Jakma <paul@dishone.st>

        * ospf_vty.c: (global) add, unused, description array for lsa flags.
	  (show_ip_ospf_database_header): pretty print options, printf hex
          numbers as 0x, print lsa flags and note if it is a translated LSA.
          (show_lsa_detail_proc): print out OSPF_LSA_LOCAL_XLT LSAs.
	* ospf_packet.c: (ospf_write) print out destination IP in debug info
          if write fails.
diff --git a/ospfd/ospf_packet.c b/ospfd/ospf_packet.c
index 89d35c5..7bd4822 100644
--- a/ospfd/ospf_packet.c
+++ b/ospfd/ospf_packet.c
@@ -558,7 +558,8 @@
   ret = sendmsg (ospf->fd, &msg, flags);
   
   if (ret < 0)
-    zlog_warn ("*** sendmsg in ospf_write failed with %s", strerror (errno));
+    zlog_warn ("*** sendmsg in ospf_write to %s failed with %s", 
+               inet_ntoa (iph.ip_dst), strerror (errno));
 
   /* Retrieve OSPF packet type. */
   stream_set_getp (op->s, 1);
diff --git a/ospfd/ospf_vty.c b/ospfd/ospf_vty.c
index d02214d..392b7ae 100644
--- a/ospfd/ospf_vty.c
+++ b/ospfd/ospf_vty.c
@@ -3196,13 +3196,32 @@
 #endif /* HAVE_OPAQUE_LSA */
 };
 
+char *show_lsa_flags[] =
+{
+  "Self-originated",
+  "Checked",
+  "Received",
+  "Approved",
+  "Discard",
+#ifdef HAVE_NSSA
+  "Translated",
+#endif
+};
+
 void
 show_ip_ospf_database_header (struct vty *vty, struct ospf_lsa *lsa)
 {
   struct router_lsa *rlsa = (struct router_lsa*) lsa->data;
-
+  
   vty_out (vty, "  LS age: %d%s", LS_AGE (lsa), VTY_NEWLINE);
-  vty_out (vty, "  Options: %d%s", lsa->data->options, VTY_NEWLINE);
+  vty_out (vty, "  Options: 0x%-2x : %s%s", 
+           lsa->data->options,
+           ospf_options_dump(lsa->data->options), 
+           VTY_NEWLINE);
+  vty_out (vty, "  LS Flags: 0x%-2x %s%s",
+           lsa->flags, 
+           ((lsa->flags & OSPF_LSA_LOCAL_XLT) ? "(Translated from Type-7)" : ""),
+           VTY_NEWLINE);
 
   if (lsa->data->type == OSPF_ROUTER_LSA)
     {
@@ -3534,12 +3553,6 @@
       for (rn = start; rn; rn = route_next_until (rn, start))
 	if ((lsa = rn->info))
 	  {
-#ifdef HAVE_NSSA
-	    /* Stay away from any Local Translated Type-7 LSAs */
-	    if (CHECK_FLAG (lsa->flags, OSPF_LSA_LOCAL_XLT))
-	      continue;
-#endif /* HAVE_NSSA */
-
 	    if (show_function[lsa->data->type] != NULL)
 	      show_function[lsa->data->type] (vty, lsa);
 	  }