diff --git a/ospfd/ChangeLog b/ospfd/ChangeLog
index 5702732..453036e 100644
--- a/ospfd/ChangeLog
+++ b/ospfd/ChangeLog
@@ -1,3 +1,10 @@
+2004-07-23 Paul Jakma <paul@dishone.st>
+
+	* ospf_network.c: Replace PKTINFO/RECVIF with call to
+	  setsockopt_pktinfo
+	* ospf_packet.c: Use getsockopt_pktinfo_ifindex and
+	  SOPT_SIZE_CMSG_PKTINFO_IPV4.
+
 2004-07-14 Paul Jakma <paul@dishone.st>
 
 	* ospf_packet.c: (ospf_ls_upd_send_queue_event) Partial fix for 
diff --git a/ospfd/ospf_network.c b/ospfd/ospf_network.c
index 2766abd..6385187 100644
--- a/ospfd/ospf_network.c
+++ b/ospfd/ospf_network.c
@@ -201,27 +201,9 @@
   zlog_warn ("IP_HDRINCL option not available");
 #endif /* IP_HDRINCL */
 
-#if defined (IP_PKTINFO)
-  ret = setsockopt (ospf_sock, IPPROTO_IP, IP_PKTINFO, &hincl, sizeof (hincl));
-   if (ret < 0)
-     {
-       if ( ospfd_privs.change (ZPRIVS_LOWER) )
-         zlog_err ("ospf_sock_init: could not lower privs, %s",
-                   strerror (errno) );
-       zlog_warn ("Can't set IP_PKTINFO option");
-     }
-#elif defined (IP_RECVIF)
-  ret = setsockopt (ospf_sock, IPPROTO_IP, IP_RECVIF, &hincl, sizeof (hincl));
-   if (ret < 0)
-     {
-       if ( ospfd_privs.change (ZPRIVS_LOWER) )
-         zlog_err ("ospf_sock_init: could not lower privs, %s",
-                   strerror (errno) );
-       zlog_warn ("Can't set IP_RECVIF option");
-     }
-#else
-#warning "cannot be able to receive link information on this OS"
-#endif
+  ret = setsockopt_pktinfo (AF_INET, ospf_sock, 1);
+  if (ret < 0)
+     zlog_warn ("Can't set pktinfo option");
 
   if (ospfd_privs.change (ZPRIVS_LOWER))
     {
diff --git a/ospfd/ospf_packet.c b/ospfd/ospf_packet.c
index 990fe6a..67215eb 100644
--- a/ospfd/ospf_packet.c
+++ b/ospfd/ospf_packet.c
@@ -31,6 +31,7 @@
 #include "sockunion.h"
 #include "stream.h"
 #include "log.h"
+#include "sockopt.h"
 #include "md5-gnu.h"
 
 #include "ospfd/ospfd.h"
@@ -1880,17 +1881,17 @@
   unsigned int ifindex = 0;
   struct iovec iov;
   struct cmsghdr *cmsg;
-#if defined (IP_PKTINFO)
-  struct in_pktinfo *pktinfo;
-#elif defined (IP_RECVIF)
-  struct sockaddr_dl *pktinfo;
-#else
-  char *pktinfo; /* dummy */
-#endif
-  char buff [sizeof (*cmsg) + sizeof (*pktinfo)];
-  struct msghdr msgh = {NULL, 0, &iov, 1, buff,
-			sizeof (*cmsg) + sizeof (*pktinfo), 0};
-    
+  char buff [sizeof (*cmsg) + SOPT_SIZE_CMSG_PKTINFO_IPV4()];
+  struct msghdr msgh;
+
+  msgh.msg_name = NULL;
+  msgh.msg_namelen = 0;
+  msgh.msg_iov = &iov;
+  msgh.msg_iovlen = 1;
+  msgh.msg_control = (caddr_t) buff;
+  msgh.msg_controllen = sizeof (buff);
+  msgh.msg_flags = 0;
+  
   ret = recvfrom (fd, (void *)&iph, sizeof (iph), MSG_PEEK, NULL, 0);
   
   if (ret != sizeof (iph))
@@ -1928,33 +1929,7 @@
   iov.iov_len = ip_len;
   ret = recvmsg (fd, &msgh, 0);
   
-  cmsg = CMSG_FIRSTHDR (&msgh);
-  
-  if (cmsg != NULL && //cmsg->cmsg_len == sizeof (*pktinfo) &&
-      cmsg->cmsg_level == IPPROTO_IP &&
-#if defined (IP_PKTINFO)
-      cmsg->cmsg_type == IP_PKTINFO
-#elif defined (IP_RECVIF)
-      cmsg->cmsg_type == IP_RECVIF
-#else
-      0
-#endif
-      )
-    {
-#if defined (IP_PKTINFO)
-      pktinfo = (struct in_pktinfo *)CMSG_DATA(cmsg);
-      ifindex = pktinfo->ipi_ifindex;
-#elif defined (IP_RECVIF)
-#ifdef SUNOS_5
-      ifindex = *(uint_t *)CMSG_DATA(cmsg);
-#else
-      pktinfo = (struct sockaddr_dl *)CMSG_DATA(cmsg);
-      ifindex = pktinfo->sdl_index;
-#endif /* SUNOS_5 */
-#else
-      ifindex = 0;
-#endif
-    }
+  ifindex = getsockopt_pktinfo_ifindex (AF_INET, &msgh);
   
   *ifp = if_lookup_by_index (ifindex);
 
