summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ospfd/ChangeLog6
-rw-r--r--ospfd/ospf_packet.c6
2 files changed, 9 insertions, 3 deletions
diff --git a/ospfd/ChangeLog b/ospfd/ChangeLog
index e4519a81..d0d40120 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 ea79ee79..0a6572d0 100644
--- a/ospfd/ospf_packet.c
+++ b/ospfd/ospf_packet.c
@@ -2341,11 +2341,11 @@ ospf_read (struct thread *thread)
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)
{