https://www.mediawiki.org/wiki/Special:Code/MediaWiki/114965

Revision: 114965
Author:   diederik
Date:     2012-04-19 17:49:03 +0000 (Thu, 19 Apr 2012)
Log Message:
-----------
ip_mreqn is not compatible with OS X, added alternative for OSX.

Modified Paths:
--------------
    trunk/udplog/srclib/Socket.cpp

Modified: trunk/udplog/srclib/Socket.cpp
===================================================================
--- trunk/udplog/srclib/Socket.cpp      2012-04-19 14:10:42 UTC (rev 114964)
+++ trunk/udplog/srclib/Socket.cpp      2012-04-19 17:49:03 UTC (rev 114965)
@@ -4,13 +4,27 @@
        int level, optname;
        void *optval;
        socklen_t optlen;
-       struct ip_mreqn mreq4;
+    
+    #ifdef __APPLE__
+               // NOTE: The ip_mreqn structure is not supported on Mac OS X,
+               // NOTE: so we use ip_mreq and ignore the interface parameter
+               struct ip_mreq mreq4;
+       #elif __unix__
+               struct ip_mreqn mreq4;
+       #endif
+       
        struct ipv6_mreq mreq6;
 
        if (addr.GetType() == AF_INET) {
                addr.CopyBinaryData(&mreq4.imr_multiaddr.s_addr);
-               IPAddress::any4.CopyBinaryData(&mreq4.imr_address);
-               mreq4.imr_ifindex = 0;
+               
+               #ifdef __APPLE__
+                       IPAddress::any4.CopyBinaryData(&mreq4.imr_multiaddr);   
+               #elif __unix__
+                       IPAddress::any4.CopyBinaryData(&mreq4.imr_address);
+                       mreq4.imr_ifindex = 0;
+               #endif
+               
                level = IPPROTO_IP;
                optname = IP_ADD_MEMBERSHIP;
                optval = &mreq4;


_______________________________________________
MediaWiki-CVS mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-cvs

Reply via email to