2005-01-04 Andrew J. Schorr <ajschorr@alumni.princeton.edu>

	* configure.ac: Added test for broken CMSG_FIRSTHDR macro
	  (relevant for Solaris 8 and unpatched Solaris 9, don't know
	  whether other platforms are affected).
	* zebra.h: Define ZCMSG_FIRSTHDR appropriately based on whether
	  config.h indicates HAVE_BROKEN_CMSG_FIRSTHDR (as determined
	  by the configure test program).
	* sockopt.c: (getsockopt_cmsg_data) Use ZCMSG_FIRSTHDR instead
	  of CMSG_FIRSTHDR.
	* rtadv.c: (rtadv_recv_packet,rtadv_send_packet) Use ZCMSG_FIRSTHDR
	  instead of CMSG_FIRSTHDR.
	* ripd.c: (rip_recvmsg) Use ZCMSG_FIRSTHDR instead of CMSG_FIRSTHDR.
	* ripngd.c: (ripng_recv_packet) Use ZCMSG_FIRSTHDR instead of
	  CMSG_FIRSTHDR.
diff --git a/lib/sockopt.c b/lib/sockopt.c
index d755746..81db88d 100644
--- a/lib/sockopt.c
+++ b/lib/sockopt.c
@@ -42,7 +42,7 @@
   struct cmsghdr *cmsg;
   void *ptr = NULL;
   
-  for (cmsg = CMSG_FIRSTHDR(msgh); 
+  for (cmsg = ZCMSG_FIRSTHDR(msgh); 
        cmsg != NULL;
        cmsg = CMSG_NXTHDR(msgh, cmsg))
     if (cmsg->cmsg_level == level && cmsg->cmsg_type)