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/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)
{