include: Bring in6_addr into line with the MS definition.

oldstable
Jeff Latimer 2009-04-22 23:09:14 +10:00 committed by Alexandre Julliard
parent d341cca616
commit b485ed2346
4 changed files with 63 additions and 22 deletions

View File

@ -244,6 +244,7 @@ SRCDIR_INCLUDES = \
idispids.h \
imagehlp.h \
imm.h \
in6addr.h \
initguid.h \
intshcut.h \
ipexport.h \

52
include/in6addr.h 100644
View File

@ -0,0 +1,52 @@
/*
* Copyright (C) 2009 Jeff Latimer
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
* version 2.1 of the License, or (at your option) any later version.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free Software
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
*/
#ifndef __IN6ADDR__
#define __IN6ADDR__
#ifdef USE_WS_PREFIX
#define WS(x) WS_##x
#else
#define WS(x) x
#endif
typedef 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)
#ifdef USE_WS_PREFIX
#define WS__S6_un u
#define WS__S6_u8 Byte
#define WS_s6_addr WS__S6_un.WS__S6_u8
#else
#define _S6_un u
#define _S6_u8 Byte
#define s6_addr _S6_un._S6_u8
#endif
#define s6_bytes u.Byte
#define s6_words u.Word
#undef WS
#endif /* __IN6ADDR__ */

View File

@ -19,7 +19,7 @@
#ifndef __WS2IPDEF__
#define __WS2IPDEF__
/* FIXME: #include <in6addr.h> */
#include <in6addr.h>
#ifdef USE_WS_PREFIX
#define WS(x) WS_##x
@ -27,21 +27,12 @@
#define WS(x) x
#endif
/* FIXME: This gets defined by some Unix (Linux) header and messes things */
#undef s6_addr
/* FIXME: should be in in6addr.h */
typedef struct WS(in_addr6)
{
WS(u_char) s6_addr[16]; /* IPv6 address */
} IN6_ADDR, *PIN6_ADDR, *LPIN6_ADDR;
typedef struct WS(sockaddr_in6_old)
{
short sin6_family; /* AF_INET6 */
WS(u_short) sin6_port; /* Transport level port number */
WS(u_long) sin6_flowinfo; /* IPv6 flow information */
struct WS(in_addr6) sin6_addr; /* IPv6 address */
SHORT sin6_family;
USHORT sin6_port;
ULONG sin6_flowinfo;
IN6_ADDR sin6_addr;
} SOCKADDR_IN6_OLD,*PSOCKADDR_IN6_OLD, *LPSOCKADDR_IN6_OLD;
typedef union sockaddr_gen
@ -131,11 +122,11 @@ typedef struct _INTERFACE_INFO
typedef struct WS(sockaddr_in6)
{
short sin6_family; /* AF_INET6 */
WS(u_short) sin6_port; /* Transport level port number */
WS(u_long) sin6_flowinfo; /* IPv6 flow information */
struct WS(in_addr6) sin6_addr; /* IPv6 address */
WS(u_long) sin6_scope_id; /* IPv6 scope id */
SHORT sin6_family;
USHORT sin6_port;
ULONG sin6_flowinfo;
IN6_ADDR sin6_addr;
ULONG sin6_scope_id;
} SOCKADDR_IN6,*PSOCKADDR_IN6, *LPSOCKADDR_IN6;
/*

View File

@ -29,9 +29,6 @@
#define WS(x) x
#endif
/* FIXME: This gets defined by some Unix (Linux) header and messes things */
#undef s6_addr
/* for addrinfo calls */
typedef struct WS(addrinfo)
{