| /** |
| * This file has no copyright assigned and is placed in the Public Domain. |
| * This file is part of the w64 mingw-runtime package. |
| * No warranty is given; refer to the file DISCLAIMER.PD within this package. |
| */ |
| #ifndef _INC_WS2IPDEF |
| #define _INC_WS2IPDEF |
| |
| /* Make sure we included it for PSOCKADDR_IN6, ... */ |
| #include <ws2tcpip.h> |
| |
| #ifdef __cplusplus |
| extern "C" { |
| #endif |
| |
| typedef enum _MULTICAST_MODE_TYPE { |
| MCAST_INCLUDE = 0, |
| MCAST_EXCLUDE |
| } MULTICAST_MODE_TYPE; |
| |
| typedef struct _sockaddr_in6_pair { |
| PSOCKADDR_IN6 SourceAddress; |
| PSOCKADDR_IN6 DestinationAddress; |
| } SOCKADDR_IN6_PAIR, *PSOCKADDR_IN6_PAIR; |
| |
| typedef union _SOCKADDR_INET { |
| SOCKADDR_IN Ipv4; |
| SOCKADDR_IN6 Ipv6; |
| ADDRESS_FAMILY si_family; |
| } SOCKADDR_INET, *PSOCKADDR_INET; |
| |
| typedef struct group_filter { |
| ULONG gf_interface; |
| SOCKADDR_STORAGE gf_group; |
| MULTICAST_MODE_TYPE gf_fmode; |
| ULONG gf_numsrc; |
| SOCKADDR_STORAGE gf_slist[1]; |
| } GROUP_FILTER, *PGROUP_FILTER; |
| |
| typedef struct group_req { |
| ULONG gr_interface; |
| SOCKADDR_STORAGE gr_group; |
| } GROUP_REQ, *PGROUP_REQ; |
| |
| typedef struct group_source_req { |
| ULONG gsr_interface; |
| SOCKADDR_STORAGE gsr_group; |
| SOCKADDR_STORAGE gsr_source; |
| } GROUP_SOURCE_REQ, *PGROUP_SOURCE_REQ; |
| |
| #ifdef __cplusplus |
| } |
| #endif |
| |
| #endif /*_INC_WS2IPDEF*/ |