2004-12-29 Andrew J. Schorr <ajschorr@alumni.princeton.edu>

	* ospf_packet.c: (ospf_read) Always look up the interface if
	  ospf_recv_packet returns NULL ifp, since some platforms such
	  as Solaris 8 appear to support ifindex retrieval but don't.
diff --git a/ospfd/ChangeLog b/ospfd/ChangeLog
index e4519a8..d0d4012 100644
--- a/ospfd/ChangeLog
+++ b/ospfd/ChangeLog
@@ -1,3 +1,9 @@
+2004-12-29 Andrew J. Schorr <ajschorr@alumni.princeton.edu>
+
+	* ospf_packet.c: (ospf_read) Always look up the interface if
+	  ospf_recv_packet returns NULL ifp, since some platforms such
+	  as Solaris 8 appear to support ifindex retrieval but don't.
+
 2004-12-22 Hasso Tepper <hasso at quagga.net>
 
 	* ospf_dump.c: Show debug configuration in vtysh.
diff --git a/ospfd/ospf_packet.c b/ospfd/ospf_packet.c
index ea79ee7..0a6572d 100644
--- a/ospfd/ospf_packet.c
+++ b/ospfd/ospf_packet.c
@@ -2341,11 +2341,11 @@
   iph = (struct ip *) STREAM_DATA (ibuf);
   sockopt_iphdrincl_swab_systoh (iph);
 
-  /* openbsd lacks IP_RECVIF */
-#if !(defined(IP_PKTINFO) || defined(IP_RECVIF))
   if (ifp == NULL)
+    /* Handle cases where the platform does not support retrieving the ifindex,
+       and also platforms (such as Solaris 8) that claim to support ifindex
+       retrieval but do not. */
     ifp = if_lookup_address (iph->ip_src);
-#endif /* !((defined(IP_PKTINFO) || defined(IP_RECVIF)) */
   
   if (ifp == NULL)
     {