diff --git a/include/winsock.h b/include/winsock.h index 66c33d21670..02a6cc59c04 100644 --- a/include/winsock.h +++ b/include/winsock.h @@ -596,11 +596,13 @@ typedef struct WS(sockaddr_in) * Multicast group information */ +#if !defined(__WINE_WINSOCK2__) struct WS(ip_mreq) { struct WS(in_addr) imr_multiaddr; struct WS(in_addr) imr_interface; }; +#endif /* * WSAStartup diff --git a/include/ws2tcpip.h b/include/ws2tcpip.h index 5b08dbba3ec..4bd03fcd081 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 */