2009/4/1 Jeff Latimer <l...@yless4u.com.au>: > Alexandre Julliard wrote: >> >> Jeff Latimer <l...@yless4u.com.au> writes: >> >> >>> >>> diff --git a/include/ws2tcpip.h b/include/ws2tcpip.h >>> index a38ccda..9ddb3d1 100644 >>> --- a/include/ws2tcpip.h >>> +++ b/include/ws2tcpip.h >>> @@ -85,26 +85,41 @@ struct WS(ip_msfilter) { >>> struct WS(in_addr) imsf_slist[1]; >>> }; >>> -typedef struct WS(in_addr6) >>> -{ >>> - WS(u_char) s6_addr[16]; /* IPv6 address */ >>> +struct WS(in6_addr) { >>> + union { >>> + WS(u_char) Byte[16]; >>> + WS(u_short) Word[8]; >>> + } u; >>> } IN6_ADDR, *PIN6_ADDR, *LPIN6_ADDR; >>> +#define in_addr6 WS(in6_addr) >>> + >>> +#define _S6_un u >>> +#define _S6_u8 Byte >>> +#ifndef USE_WS_PREFIX >>> +#define s6_addr _S6_un._S6_u8 >>> +#else >>> +#define WS_s6_addr _S6_un._S6_u8 >>> +#endif >>> + >>> +#define s6_bytes u.Byte >>> +#define s6_words u.Word >>> >> >> This doesn't seem to match the PSDK, I don't see anything like this in >> ws2tcpip.h. >> > > What is the policy for selecting the Platform SDK? Do we always use the > latest (in this case Vista) PSDK? There does not appear to any guidance on > this matter on the various Wine sites.
It's rare for things to change much from one PSDK version to the next, so there have not been many cases like this before. However, generally newer is better. > > The following is from WS2tcpip.h in the XP PSDK that I have. I think > it looks similar to what I submitted. Have I got the wrong PSDK? > > /* IPv6 definitions */ > > #ifndef s6_addr > > struct in6_addr { > union { > u_char Byte[16]; > u_short Word[8]; > } u; > }; > > #define in_addr6 in6_addr > > /* > ** Defines to match RFC 2553. > */ > #define _S6_un u > #define _S6_u8 Byte > #define s6_addr _S6_un._S6_u8 > > /* > ** Defines for our implementation. > */ > #define s6_bytes u.Byte > #define s6_words u.Word > > #endif This looks right, but in recent PSDKs it has moved from ws2tcpip.h to in6addr.h. -- Rob Shearman