summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorajs <ajs>2004-12-29 20:41:26 +0000
committerajs <ajs>2004-12-29 20:41:26 +0000
commitef285188561431e9afa2043e96c19d064babd61e (patch)
treea7963a30cedef44d0e3ec9bad7c2371be5393a63
parent66d5b836f7644a990c987c21dde63c2c275b2044 (diff)
downloadquagga-ef285188561431e9afa2043e96c19d064babd61e.tar.bz2
quagga-ef285188561431e9afa2043e96c19d064babd61e.tar.xz
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.
-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)
{