Jeff Latimer lats@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.
Alexandre Julliard wrote:
Jeff Latimer lats@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.
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 he 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
Alexandre Julliard wrote:
Jeff Latimer lats@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.
Jeff
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
2009/4/1 Jeff Latimer lats@yless4u.com.au:
Alexandre Julliard wrote:
Jeff Latimer lats@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 wrote:
This looks right, but in recent PSDKs it has moved from ws2tcpip.h to in6addr.h.
Thanks, I knew that the latest PSDK had split this out but as none of the PSDK other changes had been worked into the tree, I was reluctant and unsure of whether that PSDK should be used. I have resubmitted the set with in6addr.h.