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