Make sure ip_mreq is not exported by winsock2.h.
Add ip_mreq, ip_mreq_source and ip_msfilter to ws2tcpip.h.
diff --git a/include/ws2tcpip.h b/include/ws2tcpip.h
index 5b08dbb..4bd03fc 100644
--- a/include/ws2tcpip.h
+++ b/include/ws2tcpip.h
@@ -28,6 +28,30 @@
/* FIXME: This gets defined by some Unix (Linux) header and messes things */
#undef s6_addr
+/*
+ * Multicast group information
+ */
+
+struct WS(ip_mreq)
+{
+ struct WS(in_addr) imr_multiaddr;
+ struct WS(in_addr) imr_interface;
+};
+
+struct WS(ip_mreq_source) {
+ struct WS(in_addr) imr_multiaddr;
+ struct WS(in_addr) imr_sourceaddr;
+ struct WS(in_addr) imr_interface;
+};
+
+struct WS(ip_msfilter) {
+ struct WS(in_addr) imsf_multiaddr;
+ struct WS(in_addr) imsf_interface;
+ u_long imsf_fmode;
+ u_long imsf_numsrc;
+ struct WS(in_addr) imsf_slist[1];
+};
+
typedef struct WS(in_addr6)
{
u_char s6_addr[16]; /* IPv6 address */